之前使用过ADS1246 24bit ADC 设计过产品。该芯片功能强大,可编程能力强。不过它的缺点是参数设置和通道选择,数据读写都是通过SPI 读写,无法实现DMA 模式数据传送。经测试,无法满足振动信号采集的要求。所以在设计振动信号测试IO板时,我们选择ADS1274 芯片。在本博文中,介绍如何使用STM32F429实现ADS274 的高速数据传送。内容会随着项目进展不断更新。
ADS1274 介绍
ADS1274 是TI公司的四路、128kHz、24 位同步采样 Σ-Δ ADC。相比于其它ADC 芯片而言:
- 它的所有功能都通过硬件引脚来选择,而不是使用SPI访问内部寄存器。
- 多路ADC 的采样数据通过不同的DOUT 输出,而不是使用SPI 命令来选择不同的模拟通道,所以每个通道的ADC 是同步输出的。不过这需要 FPGA 支持才可以。
- DOUT1 还具有SPI-TDM 的输出方式,即所有通道的数据已时分复用的方式在该通道上发送。
- 支持支持SPI和Frame-Sync两种模式。
- 支持TDM 模式,也就是在SPI 可以连续读取四个通道,不需要软件选择通道。我们选择SPI-TDM 模式
时钟输入(CLK)
ADS1274 需要一个外部时钟输入,当最大数据速率时,低压模式可以输入27M或者13.5Mhz
低速模式可以为27M或者5.4MHz
接口模式(FORMAT[2:0])
FORMAT[2:0] |
接口协议 |
数据模式 |
数据位置 |
000 |
SPI |
TDM |
动态 |
001 |
SPI |
TDM |
固定 |
010 |
SPI |
离散 |
– |
011 |
Frame-Sync |
TDM |
动态 |
100 |
Frame-Sync |
TDM |
固定 |
101 |
Frame-Sync |
离散 |
– |
110 |
Modulator |
– |
– |
本项目选择001 固定 SPI TDM 方式
采样模式(Mode)
MODE【1:0】 | 模式选择 | max f Data |
---|---|---|
00 | 高速 | 144,531 |
01 | 高分别率 | 52,734 |
10 | 低功耗 | 52,734 |
11 | 低速 | 10,547 |
本项目选择 00.
接口
ADS1274 使用串口方式获取数据。有两种协议SPI TDM和Frame-Sync。
SPI-TDM 方式
SPI 兼容格式是只读模式。DRDY 下降沿表示数据就绪,然后通过SCLK 移出。ADC 是从模式,MCU 为主模式。sclk 在转换过程中,可以保持低电平,或者free run。
Frame-Sync方式
类似与音频ADC 的方式,它是一种被动方式,处理器必须发送FSYNC和串行时钟信号
DRDY/FSYNC
在Frame-Sync 模式下,这一引脚是FSYNC 的输入。在SPI-TDM 模式下是DRDY 输入。
SCLK
在Frame-Sync 模式下,SCLK 是连续的。在一个帧周期(FSYNC 时钟)内,SCLK 的脉冲数量是CLK 周期的 2幂分频数(也就是1,1/2,1/4 等)
同步信号SYNCHRONIZATION (SYNC)
当sync 为低电平时,adc 停止转换,内部计数器清零。当sync 为高电平时,转换重新启动
TEST 【1:0】
应该为00.
TDM 模式
在TDM模式下所有通道的数据都依次在一个引脚(DOUT1)顺序输出。
固定位置模式和动态位置模式
固定模式是不管通道是否power down 都输出通道的值,当power down 时,输出为0.ao
而动态模式时,如果某个通道power down 就不再tdm 中输出。
与STM32F4 连接的方案
我们使用过ADS1246芯片与STM32 通过SPI方式相连.使用软件读取SPI实现数据传送。传送速度不高。要提高传输速率,要做到两件事:
1 去掉软件选择模拟通道。采用所谓SPI-TDM 模式。
2 实现SPI 的DMA 传输。
本项目希望实现
- 采样频率 :15KHz
- 采样精度:24bits
- 模拟通道数:4
本方案选用ADS1274芯片。实现一次采集4 个通道64个采样,采用DMA 方式实现ADS1274 与STM32F429 之间的数据传送。
设计的关键是时钟系统(我们不希望使用FPGA)。具体考虑如下:
- 采样周期 15KHz
- 数据传送速率:15KHz*24*4=1.44MHz
设计方案
采用SPI-TDM 模式
- 使用TIM2 产生CLK,频率 1MHz
- 使用TIM3 ETR 输入对DRDY 计数一个脉冲 产生触发信号 触发SPI TX DMA 产生 SCLK 时钟,每次发送12 个字节
- SPI DMA 要开启两个DMA stream 一个是SPI TX 另一个是SPI RX DMA
- SPI TX DMA 设置成循环模式。
SPI 的传输速率 4MHz (高于CLK,应该没有问题吧?)
软件没有写,本文可能有错误。
2020/2 修改
今天的文章STM32F429 DMA 方式连接 ADS1274分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/33360.html