项目场景:
通过AD2S1210解码芯片对旋转变压器进行硬解码与DSP28335通过SPI通信获得转子位置,实现闭环控制。
问题描述
软件配置过程中不论读哪个寄存器数据读到全为1,检查了好几遍配置程序也没找到问题,通过示波器实际测量发现1210的SDO引脚确实一直为高所以传到28335的MISO引脚上也全为高。但我读取控制寄存器理论上应该要都读回来0x7E才对。用示波器测量了28335输出的CS、MOSI、MISO以及WR、SAMPLE都是正常按照配置发出的信号,但SDO引脚就一直处于高电平。
原因分析:
由于SDO引脚上的数据全为1,让我想到了1210可能处于高阻态,由于SDO外部有上拉电阻,当1210无信号输出时,就一直处于高电平,后面想到1210输入端的波形没测可能是这里有问题,后面测了一下发现果然我发过来的WR控制信号没有传到1210的WR引脚,导致WR一直处于低电平没有下降沿使得SDO脱离高阻态。找到原因了就是28335输出WR控制信号到1210WR这条线路有问题。后来用示波器从28335输出端一步一步往外排查,发现是到1210 WR输入端的一颗电阻有问题。
解决方案:
更换了WR引脚外的那颗电阻,成功解决了问题,这件事情教会了我,配置软件要先确定硬件没问题(手动狗头)不然软件就算写得再好也是无用功!