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.

[参考译文] RTOS/CC2640:ADS1292 SPI

Guru**** 2576195 points
Other Parts Discussed in Thread: CC2640, ADS1292

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/590266/rtos-cc2640-ads1292-spi

器件型号:CC2640
主题中讨论的其他器件: ADS1292

工具/软件:TI-RTOS

我正在使用 RTOS SPI 驱动程序对 CC2640进行编程以读取 ADS1292。 当 SPI 时钟低至100K 至200K 时、我可以读取/写入 ADS 寄存器。 当尝试在中断服务例程中读取 ADC 数据时、SPI 读取似乎卡住了。 无论我将 SPI 时钟设置为100KHz 还是500kHz、我都无法在中断服务路由中直接读取 ADC 数据。

这是在中断服务例程中调用的 SPI 数据读取

bool ADS1292_SPI_read (uint8_t * buf、uint8_t len)

   uint8_t wbuf[9];
   SPI_Transaction masterTransaction;
   wbuf[0]= ADS1292_RDATA;
   wbuf[1]= 0;
   wbuf[2]= 0;

   masterTransaction.count = len;
   masterTransaction.txBuf = wbuf;
   masterTransaction.arg =空;
   masterTransaction.rxBuf = buf;

   返回 SPI_transfer (spiHandle、&masterTransaction)? 1:0;

我错过了什么吗?

谢谢。

Jin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不应将 SPI 读取置于中断服务例程中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢。 您能否分享更多有关为何不在中断中读取 SPI 的见解? 在100KHz SPI 时钟时、90个 SPI 读取片段大约需要900um、看起来并不是很长。 我是否应该在中断服务例程中触发事件并在单独的任务中读取 ADS1292?

    谢谢。

    Jin