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

TMS320F28035: TZINT中断的误触发问题

Xiao Dong阅读(29)

Part Number:TMS320F28035

项目中使用28035的TZINT中断在ISR中做过流保护。初始化TZ模块的时候设置TZCLR为0xFFFF,清除所有TZ标志。

但是发现只要一使能TZ中断,马上就会触发TZ事件,此时TZFLG寄存器不为0,这时候再次向TZCLR写入0xFFFF清除TZ标志以后正常。

如果不使能TZ中断,TZFLG也不会置位。整个过程中TZ1-TZ3三个管脚都是高电平,实际上并没有TZ事件。

请问应该如何初始化TZ模块才能保证无误触发TZ事件和中断?

Yale Li:

我找到一个类似的问题:TMS320F28075: TZ interrupt without source? – C2000 microcontrollers forum – C2000Tm︎ microcontrollers – TI E2E support forums

Xiao Dong 说:整个过程中TZ1-TZ3三个管脚都是高电平,实际上并没有TZ事件。

最好是用示波器抓一下波形,排除尖峰之类的干扰因素;

如果实在找不出原因,可以在初始化ePWM模块之前失能总中断,使能TZ中断前后都向TZCLR写入0xFFFF,TZ中断成功初始化之后再使能总中断。

TMS320F28379D: adc采样和dac输出在同一工程中应用

heng yao阅读(32)

Part Number:TMS320F28379D

28379D的adc采样和dac模拟输出能在一个工程下一起使用吗 ,就比如c2000例程中的adc_ex2_soc_epwm和buffdac_sine_cpu01可以合并成一个工程一起使用吗

Yale Li:

可以

TMS320F28035: DSP28035中断计数,太快有问题吗

zhou harry阅读(29)

Part Number:TMS320F28035

在10us周期的中断中,对一个50Hz周期的正弦波采样,计算有效值,但是加了下面的采样代码,就有莫名其妙的问题,比如影响通信等;这些代码有问题吗?

interrupt void isr()
{//10US
     EPwm6Regs.ETCLR.bit.INT = 1; // Clear INT flag for this timer
     PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Acknowledge this int to receive more int from group 3

if(bACSamplyFinish == 0)
{//10us
   TimCount200us++;

   if(TimCount200us >= 20)
   {//200us
      TimCount200us = 0;

      u16AcIbAdc = AdcMirror.ADCRESULT3;
      u16AcIcAdc = AdcMirror.ADCRESULT4;

      g_u32AcIbAdc[ACSamplyCount] = u16AcIbAdc ;

      g_u32AcIbAdc[ACSamplyCount] =u16AcIcAdc ;

                      ACSamplyCount++;

      if(ACSamplyCount >= 100)
      {//20ms
        bACSamplyFinish = 1;
        ACSamplyCount = 0;
      }
   }
}

Barbecue:

代码中并没有耗时的操作,问题似乎不在这里。

注释掉下面这行试试看问题有没有改善

bACSamplyFinish = 1;

,

zhou harry:

这行是为了采样一个周期就开始计算有效值;我刚才用示波器抓过,加了这段代码,至少需要0.65us的时间

,

Ben Qin:

zhou harry 说:但是加了下面的采样代码,

这里指的是哪一部分?

,

zhou harry:

整个

if(bACSamplyFinish == 0){//10us

………………….

}

,

Ben Qin:

AdcMirror.ADCRESULT3这个参数是什么?

TMS320F28377D: 28377dWT

user10074192阅读(39)

Part Number:TMS320F28377DOther Parts Discussed in Thread:C2000WARE

最近在调试串口,用dsp的串口和Fpga通讯,现在测试是将dsp28337d(wt)的串口直接通过fpga的引脚引出,但是无论如何配置串口,都没有数据输出,已排除fpga至硬件的串口问题。
参考例程,修改代码如下:

发送函数:

IO的配置检查了,应该硬件端口测试过,但是就是没有数据发出来。请大家帮忙分析一下。

Yale Li:

参考一下TI的例程:C:\ti\c2000\C2000Ware_5_01_00_00\device_support\f2837xd\examples\cpu1\sci_echoback

TMS320F28335: ECAP检测到错误脉冲

Liwen Jia阅读(26)

Part Number:TMS320F28335

想请问一下ecap检测上升沿和下降沿可以通过软件的方式实现错误脉冲(比如信号尖刺)的排除吗?硬件电路上已经添加了电容,但是发现方波信号上还是有比较大的尖刺,导致ecap检测到的信号不正确。

Yale Li:

eCAP没有,GPIO输入有。请看一下sprui07_TMS320x2833x, TMS320x2823x Technical Reference Manual 1.4.4 Input Qualification

,

Liwen Jia:

好的,非常感谢!

,

Yale Li:

客气了~

TMS320F28377D: 在编译官方提供的can例程时,报错Unrecognized COMPILER!

阅读(38)

Part Number:TMS320F28377DOther Parts Discussed in Thread:C2000WARE, CONTROLSUITE

在编译官方提供的can例程时,报错Unrecognized COMPILER!

双击跳转usblib.h

大佬们有解决办法吗

Ben Qin:

查看下工程属性中的编译器选项,看是不是TI c2000的编译器。

,

?? ?:

是C2000的编译器

,

Ben Qin:

你使用的CCS版本是什么?C2000ware版本是什么?编译的是哪个例程?

,

?? ?:

CCS12.5.0 

例程是来自controlsuite:D:\controlsuite\controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Cpu1\can_external_transmit下的

直接从安装文件夹里将例程复制出来到自己建立的377模板文件夹下的,未安装C2000ware

,

Ben Qin:

直接在CCS中点击导入工程试试:

,

?? ?:

controlsuite提供的例程不是完整的CCS工程,如何导入呢

,

Ben Qin:

点击上图的按钮,搜索你上面发的路径就可以了

,

?? ?:

好的,感谢帮助!

C2000 编译器问题

Charles Ji阅读(21)

使用c2000 编译的遇到的问题,编译器版本 LTS 22.6.1

定义两个变量,一个是结构体数组,一个是结构体里成员是数组,用sizeof 测试二者大小一样 都是 99,但 TEST1 就可以指定到.cfgdata段,TEST2 会报内存空间size不够,请问这是为什么?

    

cmd文件如下

Ben Qin:

我认为应该是结构体在存储时是需要地址对其原因,也就是说,虽然你这里size of 的值是一样的,但在实际存储变量的过程中实际需要的空间可能会更大。

可以参考下这个博客:

C/C++ sizeof函数解析——解决sizeof求结构体大小的问题_sizeof结构体数组-CSDN博客

TMS320F280039C: TZ触发后,如何发完一个完整脉冲后再封波?

qijing zhang阅读(27)

Part Number:TMS320F280039C

如下图所示,TZ低电平触发后,PWM会立即封波,但我想等待一个完整脉冲发完后,也就是一个周期结束后,再封波。软件需要怎么配置?

Yale Li:

从ePWM模块的角度来说,是不能的,TZ的动作都是立即执行;

从整个器件来说,可以使用CLB自己来做相关的逻辑。

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