干扰导致SPI DMA数据移位,后续数据全部无法对应上,有什么办法?找到头帧数据的位置再重新定义DMA的个数这个办法可行不?
评分
查看全部评分
这是由SPI机制决定的!
评分
查看全部评分
不是完全通讯错误,有时会出现,有时不会出现。这个也跟发不发0XFF有关系吗
关键软件不懂处理,DMA也就那么几个寄存器。用示波器挂信号,主发的没问题,从收到也没问题,但从回主的信号有移位。如何让从去纠正呢,这个DMA做的也太简单了。
SPI_NSS? 我现在用的就是TI模式,NSS用到了。
你1楼说是“干扰导致”,我理解就是信号不干净,有硬件干扰。你到底找到原因没有?
接线要牢靠,走线远离干扰源,NSS脚处理,有时小细节表现出大毛病如果空闲了一段时间再发送数据时还应重新先发一个或级联个0xff,
相当于填满回路,才能虹吸原理差不多,之后正式发送数据就不会错位了
PWM有输出时SPI信号就不干净,但这个干扰没有办法完全避免,或多或少都有。
从机:软件NSS(SSM=1),检测NSS低电平有效时SSI=0,并开启DMA接收。检测NSS高电平有效时SSI=1,关闭DMA接收,重新更新需发送数据,如果数据有异常,复位SPI,重新初始化。
改原来的TI模式为MOTO模式,这个方案不知道能不能纠正干扰错位的问题?