单片机/MCU论坛
直播中

远风

9年用户 972经验值
擅长:MEMS/传感技术 模拟技术 存储技术
私信 关注
[问答]

ADUCM360在SPI从机当中有一个CSERR位是什么意思?

使用条件:CPOL:CPHA都 = 1
1、在SPI从机当中有一个CSERR位,表示是否有不正常的CS发生!
      但是若SPI多移一位,不会触发CSERR变化,
     (如下拉图,前面不是多了5个位,多一个位,就不会触发,多两个位会触发。)

2、若在SPI接收过程中,断点程序,也会导致CSERR不正常响应,0XBB的数据会接收到0X07
     后面数据一直都不对, 这个时候,若在接收中断里断点一次后,上位机再次发送数据会触发CSERR变化。  

当SPI出现多移位的状况后,后续的数据全部会出现移位的状况,导致后续数据不正常,只有复位SPI后才能正常接收。而CSERR不正常变化导致了不能自动触发复位时序。
BCRST 置位后也不能自动复位SPI接收时序。
请问这个是芯片BUG吗?要怎么规避这个问题?

回帖(1)

张国厚

2024-1-15 16:48:35
在ADUCM360中,SPI从机有一个CSERR位,用于表示是否发生了不正常的CS(片选信号)的变化。当CSERR位为1时,表示发生了不正常的CS变化,可能是由于SPI多移位或者在SPI接收过程中发生中断导致。根据给出的条件,当SPI从机多移一位时,不会触发CSERR的变化。但是,如果多移两个位,就会触发CSERR的变化。

在SPI接收过程中,如果在断点程序的情况下,可能会导致CSERR不正常响应。例如,当接收到0x07而不是0xBB的数据时,后面的数据都会出错。但是,如果在接收中断中设置断点,然后再次发送数据给上位机,就会触发CSERR的变化。

当SPI发生多移位的情况后,后续的数据可能会乱序或者出错。这可能是由于时钟同步问题或者数据传输错误导致的。你可以检查SPI的时钟设置、数据传输格式等,以确保数据的正确传输。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分