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

TMS320F28335: DSP复位过程中IO电平异常

BC L阅读(34)

Part Number:TMS320F28335

  1. 3
Yale Li:

1. GPIO在复位期间的状态取决于内部的上拉电阻器:

GPIO0-GPIO11 引脚上的上拉电阻器在复位时并不启用。GPIO12-GPIO87 引脚上的上拉电阻器复位时被启用。

https://www.ti.com.cn/cn/lit/ds/zhcs889q/zhcs889q.pdf P22

2. 具体是哪个管脚,最好是有波形看一下。

3. 最好还是有波形来看一下。

,

BC L:

感谢您的回复,您所描述的内容芯片手册上是有说明,在这个芯片手册里我同时发现里如下这个地方写有上拉或者下拉,我想实现的是DSP在复位信号为低电平的时候普通GPIO12-87为下拉,这样就算我不加下拉电阻这个IO口也能输出低电平,就算输出不了低电平做成高阻态也可以,我可以通过外部下拉电阻拉到低电平,请问一下这个有什么方法可以实现吗,谢谢!

,

Yale Li:

没有,这个实现不了。复位过程中IO的状态用户是不能修改的。

,

BC L:

好的,非常感谢

,

Yale Li:

客气了

TMS320F280025: 问题描述如下:

Jianping Tian阅读(41)

Part Number:TMS320F280025

最近在优化硬件过流保护功能,想请教一下

电机的V相电压采到 Analog Subsystem的C2中,U相电压采到了Analog Subsystem的C4中。

由于C2,C4共用cmpss3,仅通道不同。这导致了V相和U相的硬件过流保护需要设计复用轮询功能

具体需求:手册里没有明确说明Analog Subsystem进入CMPHP能否进行分时复用。

       需求1:我在底层配置了C2作为CMPSS3 CMPHP的输入源能否将C4也同时作为CMPSS3 CMPHP的输入源?

       需求2:能否实现这一时刻CMPHP的输入信号是C2过几纳秒后CMPHO的输入信号变为C4,再过几纳秒再变换C2,周期性的切换输入信号。

Yale Li:

这两个问题是同一个问题,我会在原问题中继续跟进的:

https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/799934/tms320f280025-cmpss-cmphp

TMS320F280049C: F280049C项目工程能否定义两个cla文件

阅读(53)

Part Number:TMS320F280049C

C2000的有关CLA例程中只定义了一个cla文件,,想问下以下操作能否实现

定义两个cla文件;

文件1: ClaTask.cla  定义8个cla task;

文件2,ClaTask_Stub.cla,定义一些cla task需要调用的函数;

Ex. 

In ClaTask.cla

interrupt void ClaTask1(void)

{

     ClaTask1CallbackFucntion();

}

In ClaTask_Stub.cla, define the callback function.

void  ClaTask1CallbackFucntion(void)

{

…………………..

}

Yale Li:

https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/800255/tms320f280049c-f280049-cla

TMS320F280049C: F280049项目工程能否定义两个cla文件编译?

阅读(58)

Part Number:TMS320F280049C

C2000的有关CLA例程中只定义了一个cla文件,,想问下以下操作能否实现

定义两个cla文件;

文件1: ClaTask.cla  定义8个cla task;

文件2,ClaTask_Stub.cla,定义一些cla task需要调用的函数;

Ex. 

In ClaTask.cla

interrupt void ClaTask1(void)

{

     ClaTask1CallbackFucntion();

}

In ClaTask_Stub.cla, define the callback function.

void  ClaTask1CallbackFucntion(void)

{

…………………..

}

Yale Li:

不能的,全部放在一个CLA文件中实现就可以了。

,

ZHUANG TIAN:

可以这样使用,建立两个.cla文件,其中一个cla文件存放task可以调用的子函数。本人在28374s平台验证是可以的。

,

Yale Li:

感谢分享~

TMS320F28379D: 采集光电编码器信号计算无刷电机速度,得到的结果异常

user18914063阅读(50)

Part Number:TMS320F28379DOther Parts Discussed in Thread:LAUNCHXL-F28379D

CPU板:LAUNCHXL-F28379D   功率驱动板:自制     无刷电机自带1000线光编,线缆带屏蔽层    28379D的EQep初始化配置的分辨率为4000线,实际配置值为3999      

编码器信息采集在AD转换中完成,AD采样和转换周期为20KHZ,即50us一次,速度采集3ms一次

现象

1 电机恒定一个旋转方向旋转,无论怎样改变速度,测量得到的速度值均正常,开启速度闭环PID控制,效果良好

2 开环或闭环模式下,电机做正反转连续切换运行,得到的速度值有异常,且方向切换越快,速度异常越频繁,闭环PID模式下,在速度测量异常点,会出现电机原地剧烈抖动不旋转,电流异常。具体如下截图:

 图1

 图2

图1中,为了查明错误来源,在第61行处,实时获取寄存器 EQep1Regs.QEPSTS的值,以便判断当前是正转还是反转;代码第62行SpeedLoop.MeasureBuf5用来记录上一次得到的位置计数器值;代码第63行记录当前位置计数器值;64行SpeedLoop.MeasureBuf2获取前后两次位置计数器值的差,用于后续速度计算;65行SpeedLoop.MeasureBuf3也是记录差值,但后续计算不改变其内容;后续68行—–82行,用于计算电机速度;第83行,如果发生速度异常,程序进死循环。

图2中根据SpeedLoop.QEPST记录的结果,可知EQep1Regs.QEPSTS.bit.QDF = 1,是正向旋转,寄存器EQep1Regs.QPOSCNT在正向旋转条件下,其值变化规律就应该是0—1—2—3………3999—-0—–1—–2—–3………….,SpeedLoop.MeasureBuf2的采集值为-4,也就意味着前后两次采样值的差是3995,转换为当前速度,就是19975转/分,但这显然是错误的速度值,因为我的电机供电是给的额定24V,最大占空比下,速度最大也才4000多点。出现该错误速度值的时候,已验证过,该错误并未发生在正向和反向切换的中间点,也就是速度靠近0的附近。

SpeedLoop.MeasureBuf2的采集值为-4,表明SpeedLoop.MeasureBuf1 – SpeedLoop.MeasureBuf5 = -4,也就是当前值小于过去的值。要想出现当前值小于过去值,只能是在位置计数器EQep1Regs.QPOSCNT的值靠近3999附近才可能出现。即便手头的电机在24V条件下,最大占空比下能跑到5000转/分,按我的系统配置,3ms的采集周期,前后两次采集值之差,最大也不过1000左右。

以上是我的分析过程,对应采用过一些方法,均告失败,感觉还是得从源头解决,不知道是我读取寄存器EQep1Regs.QPOSCNT的值,和后续计算速度方法就有问题,还是哪里没对,折腾两天了。另外,也基本可以排除干扰之类的情况,因为固定一个方向旋转,比如正向旋转,然后速度按0—-最大—–0……….这个方式来做闭环或者开环,速度值均未出现异常;同样当正反连续切换速率非常低的时候,大概一秒一次到一秒两次,都正常的。

Yale Li:

user18914063 说:编码器信息采集在AD转换中完成,AD采样和转换周期为20KHZ,即50us一次,速度采集3ms一次

这个意思是说在ADC的中断中、完成对eQEP采集到的光编的数据的处理?ADC是用来采集什么?3ms是怎么来的?

user18914063 说:SpeedLoop.MeasureBuf2的采集值为-4,表明SpeedLoop.MeasureBuf1 – SpeedLoop.MeasureBuf5 = -4,也就是当前值小于过去的值。要想出现当前值小于过去值,只能是在位置计数器EQep1Regs.QPOSCNT的值靠近3999附近才可能出现。

这个未必吧,差值差了-4,或者说有3995这么多,是可能出现在光编的任意位置的。

user18914063 说:即便手头的电机在24V条件下,最大占空比下能跑到5000转/分,按我的系统配置,3ms的采集周期,前后两次采集值之差,最大也不过1000左右。

是的;所以单方向运行是没有问题的。

现在推断下来问题大概率可能就是出在由于要切换运行方向,导致通过eQEP计数值计算的速度不准。建议还是从这个角度再看一下

TMS320F28034: 编译器问题

XIE FENGTIAN阅读(38)

Part Number:TMS320F28034

问题:在CCS3.3编译出来的文件是可以正常运行的,在CCS11.0编译出来文件运行会有bug

问题详情:我有一个工程是在CCS3.3上创建且编译的,用的complier version为TI V4.1.3版本;由于目前更新较快所以希望能将它移植到CCS11.0的环境下去运行;在CCS11.0编译不会报错,但是在不同编译器环境下会有不同的bug,我已经尝试过的complier version有TI V21.6.0 LTS、TI V20.12.0 STS、TI V6.0.1;都无法像在CCS 3.3上编译出来的文件一样正常运行

所以我怀疑是编译器环境配置问题或者是编译器本身问题,请提供一些帮助来解决这个问题

Ben Qin:

可以将具体的报错发上来吗?不同的编译器报错是一致的吗?

CCS 3.3工程在新版本的CCS上也是可以导入的

,

XIE FENGTIAN:

两款编译器出来都是没有报错的,只是会有warning,俩款编译结果的warning数量不一样

将生成的.out文件烧录至控制板表现不一样,CCS3.3编译出来烧录至机器是可以正常运行的,CC11.0编译出来烧录至机器会报故障

,

Ben Qin:

您先参考下这个文件:

www.ti.com/…/spracr4a.pdf

TMS320F28035: TMS320F28035:

hao zhang阅读(37)

Part Number:TMS320F28035

您好,请问我在做并联下垂控制的时候,使用两台变换器,分别生成了50Hz的调制波,两个调制波都是用Invsine函数生成的,20kHz中断频率。但是生成的两个调制波在示波器观测的时候,波形频率不同,且每台都是在50Hz范围左右波动,请问这个问题是dsp固有问题吗?

Ben Qin:

抱歉不太懂你说的dsp固有问题指的是什么。C2000器件也没有相关下垂控制的例程。

TMS320F28069: 大佬们,DSP有没有电源监测功能?

Bohu Tang阅读(46)

Part Number:TMS320F28069

大佬们,DSP自身有没有带电源监测的电路或者寄存器?(比如说DSP一掉电,该寄存器会置位;或者DSP一上电,该寄存器会置位)

Yale Li:

有一个RESC寄存器(reset source),可以监测复位的原因,复位的原因就能体现电源的状况,甚至更精细。

但是读取是比较麻烦的,与boot rom相关。

,

Bohu Tang:

大佬,方便发一下有关文件链接吗?没找到有关寄存器。

,

Yale Li:

不好意思,我给记岔了,这个特性是在新型号的器件上才有。

所以F28069上是不能实现你想要的功能的。

,

Bohu Tang:

大佬,28335和28377上有这个功能吗?

,

Yale Li:

F2833x没有;F2837x有,可以看一下https://www.ti.com.cn/cn/lit/ug/spruhm8j/spruhm8j.pdf P85 3.3 Resets

,

Bohu Tang:

好的,谢谢大佬

TMS320F280039C: ePWM AQ模块寄存器配置更改后生效时间

Han Meng阅读(31)

Part Number:TMS320F280039C

Hi experts:

我们在应用中需要在中断中根据条件实时更改EPwm3Regs.AQCTLB.bit.PRD寄存器,否则会出现驱动常开的问题。想问一下EPwm3Regs.AQCTLB.bit.PRD更改后是立即生效吗?我需要再确定更改生效后再执行CMPA装载语句,否则驱动会出问题。

Yale Li:

是的,立即生效

,

Han Meng:

好的,谢谢!

,

Yale Li:

客气了

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1