This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS127L11: ADS127L11 与单片机 DMA 通信异常

Part Number: ADS127L11

ADS127L11与单片机HC32采用SPI 通信时候,不能采用DMA的方式进行连续采样,配制成3线值,采集不到数据,配制成4线制,没采集24bit数据,需要软件拉低一次CS 信号 ,才能再采集下一个24bit数据,需要软件干预,不能直接由DMA 持续采集数据,请问哪里配置有可能有问题?

  补充:配制成4线SPI  ,不能连续采集数据,每次传输24 bit 数据 ,滞后就需要控制一次CS 信号 ,不能实现DMA的持续传输 。

另外配制成三线制,CS一致拉低 ,导致DRDY 信号不符合时序要求,没有数据传输,请问下,有没有办法配置好三线制的 SPI ,与MCU 的DMA 配置 ,持续传输数据,而不需要干预。

  • SPI采集由DMA完成,每采集409624 bit adc数据,产生中断,MCU介入处理ADC数据。
  • ADC芯片每完成一次24 bit数据后,DRDY(转换完成)产生一次下降沿,通知MCU转换完成
  • 软件设计为,ADCDRDY引脚接MCU GPIO事件触发脚,通过事件作为源触发后台启动DMA

设计流程具体为:

SPI设置成DMA模式,8bit传输,3帧数据传输,4线模式。DRDY 事件源触发DMATX SPI作为源触发触发DMA RX

DMA RX/TX传输计数设置成4096,配置RX中断,当4096传输完进入中断模式,重新配置DMA传输计数,MCU处理数据。

黄色DRDY信号,频率128K,蓝色是spi的片选信号CS8字节传输模式

1 SPI CSDRDY信号波形

黄色DRDY信号,频率128K,蓝色是spi clk信号

2 DRDYCLK信号波形

问题:无法读取到正确的ADC转换数据(信号源输出正弦到芯片模拟输入端,软件采集数据无法还原正弦波)

  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 补充:

           SPI采集由DMA完成,每采集409624 bit adc数据,产生中断,MCU介入处理ADC数据。

    • ADC芯片每完成一次24 bit数据后,DRDY(转换完成)产生一次下降沿,通知MCU转换完成
    • 软件设计为,ADCDRDY引脚接MCU GPIO事件触发脚,通过事件作为源触发后台启动DMA

    设计流程具体为:

    SPI设置成DMA模式,8bit传输,3帧数据传输,4线模式。DRDY 事件源触发DMATX SPI作为源触发触发DMA RX

    DMA RX/TX传输计数设置成4096,配置RX中断,当4096传输完进入中断模式,重新配置DMA传输计数,MCU处理数据。

    黄色DRDY信号,频率128K,蓝色是spi的片选信号CS8字节传输模式

    1 SPI CSDRDY信号波形

    黄色DRDY信号,频率128K,蓝色是spi clk信号

    2 DRDYCLK信号波形

    问题:无法读取到正确的ADC转换数据(信号源输出正弦到芯片模拟输入端,软件采集数据无法还原正弦波)

    可能原因:因为是GPIO事件自动触发4线spi传输,CS的由DMA自动输出,程序不介入SPI传输,只处理DMA RX完成中断(4096转换完成),无法有效的将波形输出与规格书一致。

    • SPI采集由DMA完成,每采集409624 bit adc数据,产生中断,MCU介入处理ADC数据。
    • ADC芯片每完成一次24 bit数据后,DRDY(转换完成)产生一次下降沿,通知MCU转换完成
    • 软件设计为,ADCDRDY引脚接MCU GPIO事件触发脚,通过事件作为源触发后台启动DMA

    设计流程具体为:

    SPI设置成DMA模式,8bit传输,3帧数据传输,4线模式。DRDY 事件源触发DMATX SPI作为源触发触发DMA RX

    DMA RX/TX传输计数设置成4096,配置RX中断,当4096传输完进入中断模式,重新配置DMA传输计数,MCU处理数据。

    黄色DRDY信号,频率128K,蓝色是spi的片选信号CS8字节传输模式

    1 SPI CSDRDY信号波形

    黄色DRDY信号,频率128K,蓝色是spi clk信号

    2 DRDYCLK信号波形

    问题:无法读取到正确的ADC转换数据(信号源输出正弦到芯片模拟输入端,软件采集数据无法还原正弦波)

    可能原因:因为是GPIO事件自动触发4线spi传输,CS的由DMA自动输出,程序不介入SPI传输,只处理DMA RX完成中断(4096转换完成),无法有效的将波形输出与规格书一致。

    就是说 4线制SPI配置需要控制CS ,导致DMA控制一次只能取一次采集的数据 ,不能连续采集,

    三线制的话,调试不出需要的波形,CS不控制,DRDY信号没有 。

  • 您好,

         您的问题好像和单片机的驱动相关, HC32不是TI的芯片,建议您联系MCU厂家咨询SPI+DMA驱动问题。

         一个原则,想要ADS127L11工作需要满足ADC的时序要求。