使用F28069M做电机驱动,程序在不使用CSM的时候可以正常运行。(在线调试,或者不连接仿真器时从flash启动都正常)
使用了CSM(暂时使用高位加密,即LSB的4个short都是FFFF)后,使用仿真器(XDS100V3)在ccs6下,可以正常烧录,点击绿色三角按钮,可以正常运行。
此时拆下仿真器,直接上电,从flash启动,程序正常启动,但是ADC采样就不再更新了,输出的是ADC result register里面的初始随机值,并且不会改变。
驱动器逻辑是严格按照motorware下instaspin motion下的例程实施的,PWM触发ADC的SOC,ADC采样结束后触发算法中断。中断函数进得去,但是ADC却采不到东西了。。
而一切异常,将CSM的密码全部改为FFFF后,就不再出现了。将高四位任何一个16bit的密码改为其他值,都会重现这个bug。我没有擅自修改.cmd文件。对.cmd文件仔细检查,csm模块的地址分配和adc的地址分配没有任何冲突的。
谢谢能看到此处的工程师!虚心求教!
另外,大约是两三个月前发现,SpinTAC.lib的QEP测速模块是有严重bug及安全隐患的,(库的版本不记得了,可能更新后已经修复也说不定)希望能与TI在28069M或者spinTAC产品线上的工程师交流下。谢谢!