scfor123456 发表于 2019-12-16 17:59:15

使用DMA出现数据移位,如何纠正?

干扰导致SPI DMA数据移位,后续数据全部无法对应上,有什么办法?找到头帧数据的位置再重新定义DMA的个数这个办法可行不?

天臆弄人 发表于 2019-12-16 18:06:18

移位肯定是时序哪有问题了,你这治标不治本,你会移位,还很有可能直接溢出了,

aiherong 发表于 2019-12-16 23:16:09

在正式传输数据前,先发送一个0xff
这是由SPI机制决定的!

mikecai 发表于 2019-12-17 08:43:33

反复重复发送固定 字节如 0x44,用示波器检查SPI clk 和 data 波形,观察时序是否正确。再调整您的时序。

scfor123456 发表于 2019-12-17 08:44:22

aiherong 发表于 2019-12-16 23:16
在正式传输数据前,先发送一个0xff
这是由SPI机制决定的!

不是完全通讯错误,有时会出现,有时不会出现。这个也跟发不发0XFF有关系吗

radio2radio 发表于 2019-12-17 11:08:41

如果干扰源不排除,始终DMA会把干扰也算作正常的信号,唯有软件判断数据是否有错+有错请求重发,会影响速度。

scfor123456 发表于 2019-12-17 19:07:21

radio2radio 发表于 2019-12-17 11:08
如果干扰源不排除,始终DMA会把干扰也算作正常的信号,唯有软件判断数据是否有错+有错请求重发,会影响速度 ...

关键软件不懂处理,DMA也就那么几个寄存器。用示波器挂信号,主发的没问题,从收到也没问题,但从回主的信号有移位。如何让从去纠正呢,这个DMA做的也太简单了。

yklstudent-1794 发表于 2019-12-17 19:52:13

SPI-CS干嘛用的,就是干这个用的

scfor123456 发表于 2019-12-17 20:04:58

yklstudent-1794 发表于 2019-12-17 19:52
SPI-CS干嘛用的,就是干这个用的

SPI_NSS? 我现在用的就是TI模式,NSS用到了。

radio2radio 发表于 2019-12-17 20:40:30

scfor123456 发表于 2019-12-17 19:07
关键软件不懂处理,DMA也就那么几个寄存器。用示波器挂信号,主发的没问题,从收到也没问题,但从回主的 ...

你1楼说是“干扰导致”,我理解就是信号不干净,有硬件干扰。你到底找到原因没有?
页: [1] 2
查看完整版本: 使用DMA出现数据移位,如何纠正?