使用DMA出现数据移位,如何纠正?
干扰导致SPI DMA数据移位,后续数据全部无法对应上,有什么办法?找到头帧数据的位置再重新定义DMA的个数这个办法可行不?移位肯定是时序哪有问题了,你这治标不治本,你会移位,还很有可能直接溢出了, 在正式传输数据前,先发送一个0xff
这是由SPI机制决定的! 反复重复发送固定 字节如 0x44,用示波器检查SPI clk 和 data 波形,观察时序是否正确。再调整您的时序。 aiherong 发表于 2019-12-16 23:16
在正式传输数据前,先发送一个0xff
这是由SPI机制决定的!
不是完全通讯错误,有时会出现,有时不会出现。这个也跟发不发0XFF有关系吗 如果干扰源不排除,始终DMA会把干扰也算作正常的信号,唯有软件判断数据是否有错+有错请求重发,会影响速度。 radio2radio 发表于 2019-12-17 11:08
如果干扰源不排除,始终DMA会把干扰也算作正常的信号,唯有软件判断数据是否有错+有错请求重发,会影响速度 ...
关键软件不懂处理,DMA也就那么几个寄存器。用示波器挂信号,主发的没问题,从收到也没问题,但从回主的信号有移位。如何让从去纠正呢,这个DMA做的也太简单了。 SPI-CS干嘛用的,就是干这个用的 yklstudent-1794 发表于 2019-12-17 19:52
SPI-CS干嘛用的,就是干这个用的
SPI_NSS? 我现在用的就是TI模式,NSS用到了。 scfor123456 发表于 2019-12-17 19:07
关键软件不懂处理,DMA也就那么几个寄存器。用示波器挂信号,主发的没问题,从收到也没问题,但从回主的 ...
你1楼说是“干扰导致”,我理解就是信号不干净,有硬件干扰。你到底找到原因没有?
页:
[1]
2