硬汉嵌入式论坛

 找回密码
 立即注册
查看: 255|回复: 4
收起左侧

请问最新H7的ADS1256驱动支持差分扫描吗

[复制链接]

2

主题

4

回帖

10

积分

新手上路

积分
10
发表于 2024-3-26 09:06:08 | 显示全部楼层 |阅读模式
请问最新H7的ADS1256驱动支持差分扫描吗,以前F4标准库的是在ADS1256_StartScan(uint8_t _ucScanMode)里填0和1选择,H7版本的是在哪里修改单端和差分呀
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-3-26 10:40:49 | 显示全部楼层
[C] 纯文本查看 复制代码
/*
*********************************************************************************************************
*	函 数 名: ADS1256_SetDiffChannal
*	功能说明: 配置差分通道号。多路复用。
*	形    参: _ch : 通道号,0-3;共4对
*	返 回 值: 8bit状态寄存器值的高4位
*********************************************************************************************************
*/
void ADS1256_SetDiffChannal(uint8_t _ch)
{
	/*
	Bits 7-4 PSEL3, PSEL2, PSEL1, PSEL0: Positive Input Channel (AINP) Select
		0000 = AIN0 (default)
		0001 = AIN1
		0010 = AIN2 (ADS1256 only)
		0011 = AIN3 (ADS1256 only)
		0100 = AIN4 (ADS1256 only)
		0101 = AIN5 (ADS1256 only)
		0110 = AIN6 (ADS1256 only)
		0111 = AIN7 (ADS1256 only)
		1xxx = AINCOM (when PSEL3 = 1, PSEL2, PSEL1, PSEL0 are “don’t care”)

		NOTE: When using an ADS1255 make sure to only select the available inputs.

	Bits 3-0 NSEL3, NSEL2, NSEL1, NSEL0: Negative Input Channel (AINN)Select
		0000 = AIN0
		0001 = AIN1 (default)
		0010 = AIN2 (ADS1256 only)
		0011 = AIN3 (ADS1256 only)
		0100 = AIN4 (ADS1256 only)
		0101 = AIN5 (ADS1256 only)
		0110 = AIN6 (ADS1256 only)
		0111 = AIN7 (ADS1256 only)
		1xxx = AINCOM (when NSEL3 = 1, NSEL2, NSEL1, NSEL0 are “don’t care”)
	*/
	if (_ch == 0)
	{
		ADS1256_WriteReg(REG_MUX, (0 << 4) | 1);	/* 差分输入 AIN0, AIN1 */
	}
	else if (_ch == 1)
	{
		ADS1256_WriteReg(REG_MUX, (2 << 4) | 3);	/* 差分输入 AIN2, AIN3 */
	}
	else if (_ch == 2)
	{
		ADS1256_WriteReg(REG_MUX, (4 << 4) | 5);	/* 差分输入 AIN4, AIN5 */
	}
	else if (_ch == 3)
	{
		ADS1256_WriteReg(REG_MUX, (6 << 4) | 7);	/* 差分输入 AIN6, AIN7 */
	}
}

回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-3-28 00:53:28 | 显示全部楼层
eric2013 发表于 2024-3-26 10:40
[mw_shl_code=c,true]/*
**************************************************************************** ...

我想问下这个ADS1256_SetDiffChannal(uint8_t _ch)函数在哪里调用呀,是不是只要把ADS1256_ReadAdc 和 ADS1256_ISR中的ADS1256_SetChannal函数替换成ADS1256_SetDiffChannal(uint8_t _ch)就可以了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-3-29 09:48:59 | 显示全部楼层
Ming104 发表于 2024-3-28 00:53
我想问下这个ADS1256_SetDiffChannal(uint8_t _ch)函数在哪里调用呀,是不是只要把ADS1256_ReadAdc 和 AD ...

对,是这样的。
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-4-16 11:46:11 | 显示全部楼层

你好,我再打扰你一下,我看到你的文章说1256最大速率是1000sps,意思是这个代码采样率最大就是1000sps吗,比如我用你的代码,配置成2000sps, ADS1256_CfgADC(ADS1256_GAIN_1, ADS1256_2000sps);实际采样率也只有1000sps吗?下面是原话:
93.4.7 ADS1256支持的采样率
ADS1256支持的采样率如下,这里特别注意,因为切换通道和读数据耗时 123微秒, 因此扫描中断模式工作时,最大速率 = DRATE_1000SPS。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 05:32 , Processed in 0.160569 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表