Quantcast
Channel: C2000™︎ 微控制器论坛 - 最近的话题
Viewing all 12277 articles
Browse latest View live

interrupt void PIE_illegalIsr(void) 非法中断的机制是什么?

$
0
0

interrupt void PIE_illegalIsr(void)       非法中断的机制是什么?   什么情况下回进入非法中断(还是只是在仿真器的情况下?),一旦进入非法中断看门狗都不起作用了


这是一个关于clb的bug吗

$
0
0

这个工程师我从c2000ware中导入的

如下图所示,计数器设置为从4000递减,递减到2000时生成一个高电平,但是match1和match2设置一样输出却不一样

请问F28379D的GPIO引脚初始电平状态信息从哪儿可以查到

$
0
0

你好,请问F28379D的GPIO引脚初始电平状态信息从哪儿可以查到?我通过调试程序发现,有的GPIO引脚上电是高电平,比如GPIO12,有的引脚上电是低电平,比如GPIO14。请问这个初始电平状态信息从哪儿可以查到?我找遍了F28379D数据手册和外设指南,都没有找到。

28377中,同一个CMPSS的Ctriph信号与Ctripl信号能不能分别传递给trip4(假设)与trip5(假设),然后分别控制DCAEVT2与DCBEVT2?

$
0
0

问题背景描述如下:

cmpss3的输入信号为正弦波,设定高阈值与低阈值,一个周期之内,在高阈值以上PWM开波,低阈值以下PWM关波。我们使用CMPSS3、X-bar、Trip4、Trip5、DCAEVT2、DCBEVT2来配置。

问题描述如下:

cmpss3的CtripH和CtripL信号通过如下配置能不能分别传递Trip4和Trip5,再由Trip4和Trip5分别控制DCAEVT2和DCBEVT2,在一个周期内实现需求。

相关代码配置如下:

              EALLOW;

              //Configure DCA  to be TRIP5

                  EPwmxRegs->TZDCSEL.bit.DCAEVT2 = TZ_DCAH_HI;//011: DCAL = HI, DCAH = don't care

                  EPwmxRegs->DCTRIPSEL.bit.DCAHCOMPSEL = 0xf;             //Configure Trip5 to be DCAHCOMPSEL                                                                                              EPwmxRegs->DCAHTRIPSEL.bit.TRIPINPUT5 = 1;

              //Configure DCB  to be TRIP4

                  EPwmxRegs->TZDCSEL.bit.DCBEVT2 = TZ_DCBH_HI;//100: DCBL = high, DCBH = don't care

                  EPwmxRegs->DCTRIPSEL.bit.DCBHCOMPSEL = 0011; //Configure Trip4 to be DCBHCOMPSEL                             

                  EPwmxRegs->DCBHTRIPSEL.bit.TRIPINPUT4 = 1;  //Trip Input 4 selected as combinational ORed input to DCBL mux Reset type: SYSRSn

                  //Configure EVT2 DCA/DCB as CBC

                  EPwmxRegs->TZSEL.bit.DCAEVT2 = 1;//Enable DCAEVT2 as a CBC trip source for this ePWM module Reset type: SYSRSn

                  EPwmxRegs->TZSEL.bit.DCBEVT2 = 1;//Enable DCBEVT2 as a CBC trip source for this ePWM module Reset type: SYSRSn

              //Configure DCA/DCB path to be unfiltered & async

                  EPwmxRegs->DCACTL.bit.EVT2SRCSEL = DC_EVT2;//Source Is DCBEVT2 Signal

                  EPwmxRegs->DCACTL.bit.EVT2FRCSYNCSEL = DC_EVT_ASYNC;       //DCAEVT2 Force Synchronization Signal Select

                  EPwmxRegs->DCBCTL.bit.EVT2SRCSEL = DC_EVT2;                             //Source Is DCBEVT2 Signal

                  EPwmxRegs->DCBCTL.bit.EVT2FRCSYNCSEL = DC_EVT_ASYNC;      //DCBEVT2 Force Synchronization Signal Select*/

              EDIS;

实验结果现在是,如果DCTRIPSEL.bit.DCAHCOMPSEL这个寄存器配置成0100(即选定TRIP5),那么将得不到理论的效果,只有将其配置成0xf,才有需求的效果,但同时,DCBEVT也会触发,导致EPWMB动作,这种耦合一直存在。

如何将这两个TRIP和DCAEVT、DCBEVT分别对应起来呢?

盼望恢复,谢谢。

motorware怎么用啊

$
0
0

安装完毕后,打开 motoware 直接就是一片空白。win10家庭版操作系统,安装过程中没有报错。装在D盘,安装路径没有中文。

图是借的别人的,现象一样的。

28379boot方式选择问题

$
0
0

之前用28335的时候,没有考虑程序引导方式的问题。最近发现,28335的四个boot选择引脚默认是内部上拉的,不接外部电路会默认选择为从flash引导。

但是到了28379这里,好像GPIO84,GPIO72这两个引脚必须要接外部上拉电路才行?希望工作人员能简单直接的讲解一下这个问题,相关技术文档查了一晚上也没有搞清楚。

多谢!

28004x FLASH可以作为EEPROM使用么?没找到对应的API函数和例程

28335中IQ标幺值(PU)问题请教

$
0
0

在TI例程中标幺值的设定,比如实际运行中的电压是根据功率板支持的最大母线电压进行标幺的,还是根据实际检测到的母线电压进行标幺的?

例程中哪一句话,或者在代码何处体现了是以这些基准量进行标幺的?

Base_Current和Base_VOLTAGE有什么联系嘛?

程序中各个参量的基准值如何找?

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_CURRENT 10 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_TORQUE // Base torque (N.m)
#define BASE_FLUX // Base flux linkage (volt.sec/rad)
#define BASE_FREQ 200 // Base electrical frequency (Hz)


如何计算HRCAP捕捉到的脉冲数?芯片TMS320F28069

$
0
0

你好,现有一个脉冲输入到HRCAP口,需要得到输入的脉冲数

问题1:查看F28069手册发现HRCAP没有记录脉冲数的寄存器,于是采用HRCAP上升沿中断,进行脉冲计数累加及脉冲频率计算(利用HRCAP的HCCAPCNTRISE和HCCAPCNTFALL),但当脉冲频率大于13k时,计算得到的频率正确,但脉冲数不对

问题2:程序中开启了多个中断,除HRCAP中断外另还有有5个中断,是否是造成问题1的原因?尝试关闭部分中断,再测试,脉冲计数有所增加,但仍然有丢失。

问题3:采用HRCAP捕捉脉冲,除问题1中的方法外,是否有其他方法获取脉冲数?

谢谢!

28335 AQCTLA生效时间问题

$
0
0

大家好!

我在第一张图中的A点更新了AQCTLA的值,期望在C点生效。也就是说在第二张图中(CH1: AQCTLA.bit.CAU (AQCTLA.bit.CAD 设置相反), CH2:TBCTR, CH3: PWM, CH4: CMPA),PWM在中间处置0,但是实际在半个周期内都是1.

请问下有什么办法可以在C点处先让PWM置0,然后比较值等于计数器时置1呢?

谢谢!

想下载SPRC147.zip,但无法下载,现在还可以提供吗?

CLB 模块干预PWM输出问题

$
0
0

你好,在技术手册中有如下描述:

(1) PWMA[OE] and PWMB[OE] refer to trip outputs from the respective PWM module.(2) PWMA[AQ] and PWMB[AQ] refer to the output of the AQ submodule in the respective PWM module.(3) PWMA[DB] and PWMB[DB] refer to the output of the DB submodule in the respective PWM module.

除此之外就看不到CLB模块和ePWM模块关联关系的详细描述了。这里的ePMW AQ/OE/DB究竟是指ePWM AQ/DB子模块中的哪些寄存器,CLB干预这些ePWM模块后的输出效果是什么?

简单介绍一下我的应用背景:

CLB模块在电机控制器中应用,正常情况下,PWM信号由C28核根据调制方式给出,但在故障触发后,希望CLB辨识出故障信号,并能够接管PWM输出的控制,对PWM输出进行封锁。所以不知道以目前的CLB输出关系的设计,这样的用途是否能够实现?或者能够有更详细的关于CLB模块与PWM输出的关联关系描述?

谢谢!

TMS320F2837xD Microcontroller Workshop

$
0
0

 (请访问站点以查看此文件)

SMO 中两个参数BASE_VOLTAGE / BASE_CURRENT怎么定义的啊?

$
0
0

最近在搞SMO 算法的实现, 不知他那个例程里面BASE_VOLTAGE /  BASE_CURRENT 怎么定义的啊?

如果应用到我们自己的系统中,这两个值肯定要调的, 那怎么调呢?

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_CURRENT 10.f // Base peak phase current (amp), Max. measurable peak curr.

这两个值应该要跟我们自己的系统相匹配,不然计算出来的系数就不太准了:

#define SMO_CONST_MACRO(v) \
\
v.Fsmopos = exp((-v.Rs/v.Ls)*(v.Ts)); \
v.Gsmopos = (v.Vb/v.Ib)*(1/v.Rs)*(1-v.Fsmopos);

#endif

谢谢指教;

28004x内部温度采样无法找到相关.c文件

$
0
0

13.3.5 Internal Temperature Sensor
The internal temperature sensor measures the junction temperature of the device. The output of the
sensor can be sampled with the ADC through an internal connection. This can be enabled on channel
ADCIN14 on ADCB by setting the ENABLE bit in the TSNSCTL register.
To convert the temperature sensor reading into a temperature, pass the temperature sensor reading to the
GetTemperatureC() function in F28004x_TempSensorConv.c.
Note that this function assumes that the temperature reading was taken with VREFHI = 2.5V. If a different
reference voltage is used, the sample should be scaled appropriately before passing it to the function by
using the below formula.
adjusted sensor reading = raw sensor reading * (VREFHI / 2.5V)

F28004x_TempSensorConv.c没有这个文件,可以参考使用其他型号的么?


28335用外部中断触发,外部信号的频率是200HZ,但是,根据时钟计算,发现中断一直在触发,触发频率不是200HZ,

$
0
0

28335用外部中断触发,外部信号的频率是200HZ,但是,根据时钟计算,发现中断一直在触发,触发频率不是200HZ,

请教CCS的Lab问题

$
0
0

本人新手,想用TI的TIDA-00643方案做个无人机电调,但是CCS里面从Lab1到Lab11,有哪些需要下载到控制器卡执行的?也就是电机辨识和校准需要哪些步骤?Lab1到Lab11哪个可以作为最终的程序控制电机运行?

关于instaspin中gMotorVars.Flag_Run_Identify设置问题

$
0
0

本人用的是28069m与drv8305的组合,工程运行的是lab5b,想实现的功能是:按键按下,gMotorVars.Flag_Run_Identify设置为1,但是目前实现的是:除非手动置1之后,再按键才会出现变化。

    if(HAL_readGpio(halHandle,gpioNumber1) == LOW)
    {
        usDelay(100000);
        if(HAL_readGpio(halHandle,gpioNumber1) == LOW)
       {
            gMotorVars.Flag_Run_Identify = true;
        }
        else
        {
            gMotorVars.Flag_Run_Identify = false;
        }
    }

先手动置1之后,按键按下为1,弹起为0,之后才能正常使用按键设置标志。所以想请问如何把手动置1去除掉,前提是不能在main.h中改变值(因为前面有关于标志值的程序运行)

F280049 ADC采样参考问题

$
0
0

F280049C芯片的ADC参考电压引脚VREFHIA/B/C是否必须外部引入一个电压,无论在程序里面配置为内部参考和外部参考?我的状况是在VREFHIA/B/C与VREFLOA/B/C引脚外接一个电容,代码里配置为内部参考,ADCRESULT寄存器无数据输出,外部再引入一个3.3V给VREFHIA/B/C后寄存器有输出。这和我的理解有点冲突,我的理解是配置为内部参考后,无需再引入外部参考电压到VREFHIA/B/C引脚。

位置基准生成 不太明白,大神能讲解一下吗?

$
0
0

// ============================================
// position reference generation test module
// ============================================
int32 posArray[8] = { _IQ(1.5), _IQ(-1.5), _IQ(2.5), _IQ(-2.5) },
ptrMax = 2, cntr1=0, ptr1=0, posSlewRate = _IQ(0.001);
int32 refPosGen(int32 out)
{
int32 in = posArray[ptr1];

out = ramper(in, out, posSlewRate);

if (in == out)
if (++cntr1 > 1000)
{
cntr1 = 0;
if (++ptr1 >= ptrMax)
ptr1 = 0;
}
return (out);
}

Viewing all 12277 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>