ADS127L11与单片机HC32采用SPI 通信时候,不能采用DMA的方式进行连续采样,配制成3线值,采集不到数据,配制成4线制,没采集24bit数据,需要软件拉低一次CS 信号 ,才能再采集下一个24bit数据,需要软件干预,不能直接由DMA 持续采集数据,请问哪里配置有可能有问题?
补充:配制成4线SPI ,不能连续采集数据,每次传输24 bit 数据 ,滞后就需要控制一次CS 信号 ,不能实现DMA的持续传输 。
另外配制成三线制,CS一致拉低 ,导致DRDY 信号不符合时序要求,没有数据传输,请问下,有没有办法配置好三线制的 SPI ,与MCU 的DMA 配置 ,持续传输数据,而不需要干预。
- SPI采集由DMA完成,每采集4096个24 bit adc数据,产生中断,MCU介入处理ADC数据。
- ADC芯片每完成一次24 bit数据后,DRDY(转换完成)产生一次下降沿,通知MCU转换完成
- 软件设计为,ADC的DRDY引脚接MCU GPIO事件触发脚,通过事件作为源触发后台启动DMA。
设计流程具体为:
将SPI设置成DMA模式,8bit传输,3帧数据传输,4线模式。DRDY 事件源触发DMA的TX ,SPI作为源触发触发DMA RX。
DMA RX/TX传输计数设置成4096,配置RX中断,当4096传输完进入中断模式,重新配置DMA传输计数,MCU处理数据。
黄色DRDY信号,频率128K,蓝色是spi的片选信号CS,8字节传输模式
图 1 SPI CS与DRDY信号波形
黄色DRDY信号,频率128K,蓝色是spi clk信号
图 2 DRDY与CLK信号波形
问题:无法读取到正确的ADC转换数据(信号源输出正弦到芯片模拟输入端,软件采集数据无法还原正弦波)