主题中讨论的其他器件: HALCOGEN
您好!
我在一个项目中使用 TMS570LS1224 µC,并且必须将其与多个传感器连接,包括 AnalogDevice ()的 ADIS16210。
我的 SPI 通信有问题,我想得到任何帮助:-)
1) 1)正如您在 ADIS16210数据表第7页(共20页)中看到的:所需的时钟配置为极性= 1、相位= 1。 我配置了这个(使用 halcogen)、但它不起作用。 后来、我更加注意本数据表20的第8页上的时间记录、并将与 TMS570技术手册第588/589页上的说明和时间记录进行比较、我意识到正确的配置似乎极性= 1且相位= 0。 我的 µC 是:传感器数据表中给出的配置与实际工作配置之间为什么会有如此大的差异。请注意: 我认为相位 EN 极性中存在标度参数、在相同值下具有相同的行为吗?
2) 2)当我从 POL/PHASE = 11切换到 POL/PHASE = 1/0时、效果更好、但仍然不完美:有时我会错过数据、不知道原因... 我将要看一个示波器、但我仍然注意到:在传感器数据表中、指定2个 SPI 事务之间的 DE 延迟必须至少为40µs μ s。 我想使用 wdelay 参数在 halcogen 中对其进行编程、但这里是我的问题:wdelay 是通过将 VCLK1频率除以8位预分频器计算得出的。 当 VCLCK 为80MHz 时、我无法达到40µs μ s 的延迟、但仅达到2µs μ s 左右。
我转到时钟树参数并将 VCLCK1频率降至10MHz (最小值)、但 halcogen 中的最大预分频器值为63、这会导致6.5µs μ s 的 wdelay:这对于通信来说太短了。 是否知道我应该怎么做? µs 现在我进行1次传输、至少等待100 μ s (使用 FreeRTOS)、然后再执行第二次传输、但我希望得到更干净的数据。
现在:
TransmitData (spiREG3、&(Accelerometer->SPI_conf_register)、1、TxData);
vTaskDelay (20);
ReceiveData (spiREG3、&(Accelerometer->SPI_conf_register)、1、 RxData);
我想这么做
TransmitAndReceiveData (spiREG3、&(Accelerometer->SPI_conf_register)、2、 TxData、 RxData); 正确的延时
谢谢