各位前辈:
最近用SPC3做DP从站的开发,遇到一个问题请大家解答!
状态机执行完set_prm,cfg_check等流程后,在数据交换前的diag2过程中,我子站回复的报文一直有静态诊断stat_diag=1。按照规范,这属于从站未准备好不能进行数据交换,我的疑问是:
1.这个stat_diag(静态诊断位)=1是怎么被置上的,芯片是判断什么条件才会置位1? 我看的资料都只说明该位为1带来的后果,没有讲为何为1、以及怎么解决它?
2.我在写SPC3的mode0寄存器,写完之后,我监测该寄存器数据一直没变化为0 (之前用VPC3开发时,写完检测该位是可以正确回读数据的),地址16H以后的寄存器我都能正常读写,排除SPI或者硬件上的问题。 讲道理这两片子应该一脉相承,如果正确写入的话SPC3应该也会有数据的吧? 所以mode0此时是不是没有被 正确写入?以及是否因为它没被正确写导致DP_MODE=1带来后面的静态诊断为 1,从站未准备从而不能进入数据交换?