aiherong 发表于 2019-12-17 22:10:54

如果级联的话,发0xff次数还要与级联数一致,当然无硬件干扰是前提!
接线要牢靠,走线远离干扰源,NSS脚处理,有时小细节表现出大毛病如果空闲了一段时间再发送数据时还应重新先发一个或级联个0xff,
相当于填满回路,才能虹吸原理差不多,之后正式发送数据就不会错位了

scfor123456 发表于 2019-12-18 08:34:43

radio2radio 发表于 2019-12-17 20:40
你1楼说是“干扰导致”,我理解就是信号不干净,有硬件干扰。你到底找到原因没有?
...

PWM有输出时SPI信号就不干净,但这个干扰没有办法完全避免,或多或少都有。

scfor123456 发表于 2019-12-18 15:15:58

主机:软件NSS(SSM=1),定时4MS发送,发送之前SSI=1,NSS输出低电平使能从设备。DMA接收完毕后SSI=1,NSS输出高电平,如果数据有异常,复位SPI,重新初始化。
从机:软件NSS(SSM=1),检测NSS低电平有效时SSI=0,并开启DMA接收。检测NSS高电平有效时SSI=1,关闭DMA接收,重新更新需发送数据,如果数据有异常,复位SPI,重新初始化。
改原来的TI模式为MOTO模式,这个方案不知道能不能纠正干扰错位的问题?

butterflyspring 发表于 2020-1-7 17:33:05

是不是有从机启动或者关闭SPI的动作。关闭或启动,主从一定要同步,而且关闭时要参考手册中处理好才行。否则容易引起不同步,也就是错位接收的现象
页: 1 [2]
查看完整版本: 使用DMA出现数据移位,如何纠正?