TI中文支持网
TI专业的中文技术问题搜集分享网站

F28069M 的CSM模块影响了ADC采样?

使用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产品线上的工程师交流下。谢谢!

10#:

需要看一下你的.cmd文件,请使用添加附件的方式附上来。应该是有部分不被CSM保护的代码或数据,会去访问被CSM保护的代码或数据。

使用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产品线上的工程师交流下。谢谢!

Qun Wang:

回复 10#:

您好,已付附件。请问,如果有不被CSM保护的代码,访问了会被保护的代码,会出现什么样的情况呢?

谢谢!

使用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产品线上的工程师交流下。谢谢!

Qun Wang:

回复 10#:

您好,已付附件。请问,如果有不被CSM保护的代码,访问了会被保护的代码,会出现什么样的情况呢?

谢谢!

使用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产品线上的工程师交流下。谢谢!

10#:

回复 Qun Wang:

没有看出什么问题,至少应该跟我上面提到的原因没有关系,可能还需要看完整的工程,但我想可能你需要更详细地描述一下ADC是如何不工作的。

使用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产品线上的工程师交流下。谢谢!

Qun Wang:

回复 10#:

您好,这里有一个阻碍调试的点,就是插着仿真器,从ccs启动程序时,不论是否激活了CSM(秘钥不全为FFFF),都是正常运行的。

但是拔下仿真器,在激活CSM时,ADC采样就不工作了。

我们是如下方法判断ADC不工作的:

由于不能使用仿真器,我们使用CAN将ADC的结果转为float类型发出来。同时在中断函数里面读取ADC result的地方,设置一个计数器,将该值一起发出来。

可以看到,当激活CSM模块时,计数器正常增进,但ADC的值为一个随机的常量不变了。

谢谢!

使用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产品线上的工程师交流下。谢谢!

10#:

回复 Qun Wang:

正常来说,这应该没有问题,我现在不确定会不会跟instaspin有关系。你试试用TI的ADC例程看看在使能CSM加密后会不会有同样的问题,或者在你现有工程里,不要调用instaspin相关的部分。

使用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产品线上的工程师交流下。谢谢!

Qun Wang:

回复 10#:

好的我尝试一下,谢谢!

使用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产品线上的工程师交流下。谢谢!

Qun Wang:

回复 10#:

您好,请问您是在上海吗?如果是的话,我可否来您这里请教?或者请问,我能联系到instaspin的开发组吗?现已确认里面的部分功能还是有问题的。谢谢!

使用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产品线上的工程师交流下。谢谢!

10#:

回复 Qun Wang:

不好意思,我在深圳。

有关加密和ADC采样的问题,请在做完上述测试后更新一下结果,同时把对应之前.cmd文件编译后生成的.map文件也附上来。

至于instaspin的问题,我已经联系我们更熟悉instaspin的同事来回复,请你将具体问题列出来。

使用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产品线上的工程师交流下。谢谢!

Qun Wang:

回复 10#:

好的,谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » F28069M 的CSM模块影响了ADC采样?
分享到: 更多 (0)