OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2554|回复: 3

STM32F407实现软硬件SPI协议驱动ADS1256

[复制链接]

17

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-10-8
在线时间
217 小时
发表于 2023-11-1 17:55:11 | 显示全部楼层 |阅读模式
ADS1256驱动需要注意以下几个事项:

1、SPI的通信时钟的周期(在30Ksps的转换速率下计算所得)必须在(0.52us----0.3ms之间)

2、SPI通信时钟的SCLK的高电平和低电平的持续时间必须满足200ns以上

3、在RDATA指令下发完毕之后,需要等待6.5us以上,才能从ADS1256中读取采集的数据

4、对于STM32来讲,要在SCLK的上升沿发送数据到DIN引脚,这样才能保证ADS1256的SCLK在下降沿接收到
     要在SCLK的下降沿接收来自DOUT引脚的数据,因为ADS1256的SCLK在上升沿对外发出的
5、ADS1256的初始化流程如下
   在DRDY为低的情况下,开始向ADS1256中写入数据
    5.1、首先初始化STATUS状态寄存器(用来确定是否需要开启缓冲)

    5.2、初始化AD控制寄存器(用来决定放大增益)
    5.3、初始化速率寄存器(更改A/D转换速率)
    5.4、初始化I/O端口寄存器
    在初始化完成之后,接下来将进行读取操作
    5.5、首先更改MUX通道寄存器,选择合适的通道(在DRDY为低的情况下,向ADS1256中MUX通道寄存器中写入数据)
    然后延时2us,随后将CS片选信号拉低(对于硬件SPI实现驱动来讲至关重要)
   5.6、随后向ADS125下发指令SYNC,WAKEUP,RDATA
   此时需要延迟至少6.5us后,才能读取数据
   5.7、读取数据


ADS1256代码备份.zip

15.21 MB, 下载次数: 119

代码

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-10-8
在线时间
217 小时
 楼主| 发表于 2023-11-3 10:24:49 | 显示全部楼层
补充:在步骤第5.5部分的时候,更改MUX通道后,可以直接判断DRDY是否为低,当为低电平的时候,拉低CL片选,然后开始传输数据,也是可以测试通过的。
回复 支持 反对

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11406
金钱
11406
注册时间
2014-4-1
在线时间
1282 小时
发表于 2023-11-3 12:01:30 | 显示全部楼层

ADS1255,ADS1256,这两个芯片还是很经典的。


回复 支持 反对

使用道具 举报

17

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-10-8
在线时间
217 小时
 楼主| 发表于 2023-11-3 20:14:59 | 显示全部楼层
xuande 发表于 2023-11-3 12:01
ADS1255,ADS1256,这两个芯片还是很经典的。

确实,调试过程中,时序稍微错一点都很难测试通过
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 03:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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