自己做的28335电机控制板,大致情况是:曾经调试成功过,后来因为电源芯片烧坏导致ADC模块坏了。然后又焊了1块板,结果AD转换结果全为4095,经检查发现ADCREFP管脚对地阻值很小,上电输出接近0V。
不知道会不会因为这个对其他模块产生影响,还是其他什么原因?在此基础上再次调试SPI时,读写编码器计数芯片内部寄存器,发现同一段代码全速运行时写不进去,且读出来的全是0xFF,而单步调试就是对的(CCS5.4下)。
测试代码如下:
调了好久都找不到原因,求指点!谢谢!
Chen Jones:
我建议楼主还是先找一个EVM,或者好使的板子来验证软件的正确性。
因为ADC模块已经烧坏,有可能芯片内部其他部分也有损伤,所以很难说明具体SPI是否有损伤。
自己做的28335电机控制板,大致情况是:曾经调试成功过,后来因为电源芯片烧坏导致ADC模块坏了。然后又焊了1块板,结果AD转换结果全为4095,经检查发现ADCREFP管脚对地阻值很小,上电输出接近0V。
不知道会不会因为这个对其他模块产生影响,还是其他什么原因?在此基础上再次调试SPI时,读写编码器计数芯片内部寄存器,发现同一段代码全速运行时写不进去,且读出来的全是0xFF,而单步调试就是对的(CCS5.4下)。
测试代码如下:
调了好久都找不到原因,求指点!谢谢!
Di Wang2:
回复 Chen Jones:
感谢您的回复!
找了块开发板试了一下可以了,说明确实是DSP出问题了
自己做的28335电机控制板,大致情况是:曾经调试成功过,后来因为电源芯片烧坏导致ADC模块坏了。然后又焊了1块板,结果AD转换结果全为4095,经检查发现ADCREFP管脚对地阻值很小,上电输出接近0V。
不知道会不会因为这个对其他模块产生影响,还是其他什么原因?在此基础上再次调试SPI时,读写编码器计数芯片内部寄存器,发现同一段代码全速运行时写不进去,且读出来的全是0xFF,而单步调试就是对的(CCS5.4下)。
测试代码如下:
调了好久都找不到原因,求指点!谢谢!
Di Wang2:
回复 Di Wang2:
换了1片DSP,发现仍然不行,后来将输出到3-8译码器ABC和使能端的GPIO赋值语句由GPCDAT改成GPCCLEAR和GPCSET,就可以了。
但是之前第1块板子就是用GPBDAT赋值,且一度成功过,后来调第2块板时只是把赋值语句顺序改变了一下。
由
#define LS7366R_1_CS_L GpioDataRegs.GPCDAT.bit.GPIO66 = 1;\ // 138使能端 GpioDataRegs.GPCDAT.bit.GPIO67 = 1;\ // C GpioDataRegs.GPCDAT.bit.GPIO68 = 1;\ // B GpioDataRegs.GPCDAT.bit.GPIO69 = 0 // A
改成了
#define LS7366R_1_CS_L GpioDataRegs.GPCDAT.bit.GPIO67 = 1;\ // C GpioDataRegs.GPCDAT.bit.GPIO68 = 1;\ // B GpioDataRegs.GPCDAT.bit.GPIO69 = 1;\ // A GpioDataRegs.GPCDAT.bit.GPIO66 = 1 // 138使能端