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.

[参考译文] AM2432:SPI 事务延迟

Guru**** 1831610 points
Other Parts Discussed in Thread: ADS131M08, AM2432
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1113890/am2432-spi-transaction-delays

器件型号:AM2432
主题中讨论的其他器件:ADS131M08

你好

我正在努力将 ads131m08能量计芯片连接到 Sitara AM2432。

我在能量计 DRDY 引脚的下降沿信号中断上启动 SPI 事务。

中断触发40字节 SPI 事务以时钟输出数据帧。

我将 ADC 配置为  SCLK = 25MHz 、 CLKIN = 8.192MHz

我在这种配置下会遇到间歇性 CRC 故障、但当我将 SCLK 降低到14MHz 时、这些故障消失。 我使用~15cm 跳线电缆将 am2432 GP EVM J1安全连接器连接到 ads131m08 EVM。 这些 CRC 是否可能由于使用跳线电缆的限制而发生故障?

此外、在下面的照片中、黄色线是 SCLK、蓝色线是 DRDY。

为什么在启动 SPI 事务之前存在~20us 延迟、以及为什么在 SPI 事务的中间存在延迟?

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

    我将在此发布的另一个相关问题:

    MCSPI_Transaction_init( &( tzSpiDrvInfo->spiTransaction ) );
    tzSpiDrvInfo->spiTransaction.channel   = 0U;
    tzSpiDrvInfo->spiTransaction.dataSize  = 8;
    tzSpiDrvInfo->spiTransaction.csDisable = TRUE;
    tzSpiDrvInfo->spiTransaction.count     = ADC_DRV_ADS131M06_SPI_NUM_WORDS_FRAME * gSpiDataSizeBytes;
    tzSpiDrvInfo->spiTransaction.txBuf     = ( void * )tzSpiDrvInfo->pTxBuffer;
    tzSpiDrvInfo->spiTransaction.rxBuf     = ( void * )tzSpiDrvInfo->pRxBufferCurr;
    tzSpiDrvInfo->spiTransaction.args      = NULL;
    transferOK = MCSPI_transfer( tzSpiDrvInfo->spi_hdl, &( tzSpiDrvInfo->spiTransaction ) );
    
    

    当 csDisable = true 时、芯片选择工作为:

    黄色是时钟、蓝色是 CS

    当 csDisable = false 时、芯片选择不起作用:

    这是已知的驱动程序错误吗?

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

    您好、Michael、

    我可以看到、在 SPI 传输开始前有16us 延迟、在 SPI 传输停止后有大约20us 延迟(CS 处于低电平时)。 这是一个已知的错误。 为了实现兼容性、SPI 驱动器添加了这些功能。 我们计划对 SPI 驱动器进行大修以解决此问题。

    我不确定 ADC  间歇 性 CRC 错误的原因。 我猜是跳线电缆可能会损坏信号完整性。

     csDisable 到现在、我的理解是当它设置为 false 时、CS 强制为低电平。 如果要传输大量数据、它将减少 SPI 传输前后的延迟。

    此致、

    Ming