硬汉嵌入式论坛

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

[有问必答] ADS1256的问题,读取ID错误

[复制链接]

20

主题

94

回帖

154

积分

初级会员

积分
154
发表于 2024-1-14 21:58:42 | 显示全部楼层 |阅读模式
硬汉哥,请教一下,做了一个ADS1256的小板子,用的您的BSP的库中的驱动代码,读取ID都失败了。

用示波器测量晶振的脚,看不到振荡波形。ADS1256很容易不起振吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106848
QQ
发表于 2024-1-15 01:45:02 | 显示全部楼层
起振还可以,可以参考下我们的1256模组原理图。
回复

使用道具 举报

20

主题

94

回帖

154

积分

初级会员

积分
154
 楼主| 发表于 2024-1-15 08:29:53 | 显示全部楼层
eric2013 发表于 2024-1-15 01:45
起振还可以,可以参考下我们的1256模组原理图。

谢谢,发现是测量方法有问题。测量晶振,需要把探头调到X10的档位,否则测不到信号。

另外,代码读取ID失败,是因为延时函数的问题。
[C] 纯文本查看 复制代码
static void ADS1256_DelaySCLK(void)
{
	volatile uint16_t i;

	/* 
		取 5 时,实测高电平200ns, 低电平250ns <-- 不稳定 
		取 10 以上,可以正常工作, 低电平400ns 高定400ns <--- 稳定
	*/
	for (i = 0; i < 10; i++);
}

因为代码使用AC6编译,O3优化等级,需要把变量i的定义加上volatile。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 14:19 , Processed in 0.255064 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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