工具与软件:
我一直在 SPI 0上使用 SPI RTC ,我在 RTC 的一个寄存器上传输数据,然后读取该寄存器,我在 POCI 引脚上得到正确的数据波形,但当读取 RX_DATA 缓冲区时,我在使用 XDS110调试时得到变量中的0xFF 数据
我一直在使用 SPI_RX_DATA = DL_SPI_receiveData8 (SPI_0_INST);
请帮助
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.
工具与软件:
我一直在 SPI 0上使用 SPI RTC ,我在 RTC 的一个寄存器上传输数据,然后读取该寄存器,我在 POCI 引脚上得到正确的数据波形,但当读取 RX_DATA 缓冲区时,我在使用 XDS110调试时得到变量中的0xFF 数据
我一直在使用 SPI_RX_DATA = DL_SPI_receiveData8 (SPI_0_INST);
请帮助
> SPI_RX_DATA = DL_SPI_receiveData8 (SPI_0_INST);
我怀疑您没有等待更换(Rx)完成。 请尝试改用类似以下内容:
> SPI_RX_DATA = DL_SPI_receiveDataBlocking8 ((SPI_0_INST);
我只是猜测这里的背景,但它可能看起来像:
DL_SPI_transmitDataBlocking8(SPI_0_INST, register_read); // Request DL_SPI_transmitDataBlocking8(SPI_0_INST, 0xFF); // Dummy byte to receive value (void)DL_SPI_receiveDataBlocking8(SPI_0_INST); // Read and throw away Request Rx SPI_RX_data = DL_SPI_receiveDataBlocking8(SPI_0_INST); // Capture register value
数据是按位还是按字节移位?
对于逐位:
1) 1)确保 SCK 极性和相位(CPOL/CPHA)与 RTC 匹配。 这会在 RTC 数据表中。
2)长导线可能会引入传播延迟。 我已经看到6MHz 的12cm 导线发生了位移/位涂片。 尝试降低 SPI 速度。
对于字节寻址:
1)对于 SPI、每个 Tx 字节都会生成一个 Rx 字节(如上所示)。 您需要考虑每一个来维持通信。