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.

[参考译文] CCS/ADS1220:ADS1220 SPI 与 MCU 的24位通信

Guru**** 2539500 points
Other Parts Discussed in Thread: ADS1220

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/675490/ccs-ads1220-ads1220-spi-24bit-communication-with-mcu

器件型号:ADS1220

工具/软件:Code Composer Studio

我正在设计使用 ADS1220测量模拟器的项目。 现在、我遇到了 SPI 接口问题、ADS1220配备了充当从设备的24位 SPI 接口、但通常 MCU 的 SPI 是充当主设备的16位接口、例如 TI 的 ARM 处理器 TM4C1294系列。 它认为 TM4Cx 和 ADS1220之间的 SPI 格式不兼容。 我将 MCU 的 GPIO 配置为 SPI 模式的替代功能、它有四条导线、分别是 MOSI、MISO、CLK 和 CS。 手动写入、在 SPI 发送16位后、CS 将自动变为高电平、并且时钟信号结束。 但 ADS1220需要24位时钟、然后 CS 变为高电平。 我不知道如何解决这个问题。 许多 ADC SPI 接口在 TI ADC 目录中为24位。 我认为这是一个常见的问题。 有适合我的解决方案吗? 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、user5266678、

    您不仅会看到读取数据结果的 CS 问题、还会看到读取或写入寄存器的 CS 问题。  ADS1220设置为使用字节导向传输、但 CS 必须在整个通信事务期间保持低电平。  与使用微外设的 SS (CS)不同、最好使用 GPIO 引脚来控制 ADS1220的 CS、其中 CS 在通信开始时手动设置为低电平、在通信结束时返回高电平。  在某些情况 下、如果没有其他器件在 SPI 总线上通信、客户将 CS 始终绑定为低电平。

    对于 TM4C1294、建议以字节为单位操作 SPI 传输、而不是短接(16位) 、因为 ADS1220以字节为增量工作、这使得发送命令和读取数据变得更加容易。  Tiva SSI 外设的长度可以指定为4至16位。  使用 driverlib 文件夹(ssi.c、ssi.h)中的 Tivaware API、有一个函数被调用:

    SSIConfigSetExpClk (uint32_t ui32Base、uint32_t ui32SSIClk、
                      uint32_t ui32协议、uint32_t ui32模式、
                      uint32_t ui32BitRate、uint32_t ui32DataWidth);

    上述函数将外设基址设置为指定的时钟速度、SPI 模式等。  上述函数中的最后一个参数设置传输的数据长度(或宽度)。  如果使用8、则传输将以字节为增量。  您仍需要在外设之外单独控制 CS (SS) 、以便 CS 在整个通信事务期间保持低电平。  

    此致、

    Bob B

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答、我答对了。 我认为使用 GPIO 是一种很好的解决方案、而不是 CS 模式。