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

TMS320F28034: 为什么仿真看不到 Hrcap 寄存器?

user1303469阅读(35)

Part Number:TMS320F28034

 为什么仿真看不到 Hrcap 寄存器?

Ben Qin:

你好,我查看下相关资料后回复您

,

Ben Qin:

你这里使用的CCS版本是多少?能否尝试仿真下相关的例程看看是否有HRCAP寄存器?

,

user1303469:

ccs9   例程也看不到,  但是28062 能看到 hrcap

,

Ben Qin:

能否尝试下最新版本的CCS?

TMS320F28335: 使用xintf官方例程,运行后异常停止,是外部ram或者线路有问题吗

cheng hao阅读(26)

Part Number:TMS320F28335

Example_2833xCodeRunFromXintf [Code Composer Studio – Device Debugging] Texas Instruments XDS2xx USB Debug Probe/C28xx (Suspended – SW Breakpoint) ILLEGAL_ISR() at DSP2833x_DefaultIsr.c:185 0x00906E _args_main() at args_main.c:137 0x00975F cpu_timer0_isr() at Example_2833xCodeRunFromXintf.c:236 0x200001 _system_post_cinit() 0x1F3000 (an error occurred: failed to parse the previous frame FP)

Yale Li:

我已经咨询了相关工程师,请关注下方链接:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1325809/tms320f28335-using-the-xintf_run_from-routine-an-exception-occurs-after-running-and-the-program-stops

,

cheng hao:

the questio has been resolved, weld problem, ths very much.

TMS320F28379D: 程序烧写到主芯片的flash中,断电上电后,程序不能自己运行问题。

lu shiguang阅读(73)

Part Number:TMS320F28379D

根据手册,boot引脚GPIO72和GPIO84为高电平,程序烧写到主芯片的flash中,断电上电后,程序才能自己运行。

但是我硬件没有引出GPIO84引脚,不能将其配置为高电平了,引出了GPIO72,GPIO73,GPIO74引脚,请问怎样更改配置才能通过其它引脚代替GPIO84引脚功能,实现断电上电后,程序自己运行。

lu shiguang:

是不是可以通过更改BOOTCTRL寄存器,配置启动引脚,请问BOOTCTRL是在那个文件中更改的。

,

lu shiguang:

选择debug configureations ->target->flash settings->Z1-BOOTCTRL(0x7801E)(32bits)

将该寄存器值烧写为48490B5A,就可以配置成,GPIO72,GPIO73高电平,flash自启动了吧。

,

Yale Li:

是的

,

lu shiguang:

谢谢,程序已经可以启动了,但是出现了个新问题。

我们dsp伺服控制程序,通过仿真器debug模式全部功能可以正常工作,但是release模式烧写进flash,上电启动后,传感器数据都能采集正确,发送控制命令伺服没有响应(就是有部分功能不能使用了),请问可能是什么原因,需要什么办法才能解决。

有部分代码是在cla中编写的,包括部分数据采集代码和控制代码,是否可能有部分代码功能有没正常运行。

,

lu shiguang:

主要我的GPIO72,GPIO73,GPIO74直接连接到了fpga上,没有上拉电阻之类的东西,靠fpga给这几个引脚高电平和复位信号启动的dsp。

,

lu shiguang:

并且我们在程序里也增加了把cla程序加载到flash里的代码,cla里有部分数据采集代码,这部分代码采集的数据也是正常的。

extern uint32_t Cla1funcsRunStart, Cla1funcsLoadStart, Cla1funcsLoadSize; extern uint32_t CLA1mathTablesRunStart, CLA1mathTablesLoadStart, CLA1mathTablesLoadSize;

EALLOW;

#ifdef _FLASH // Copy over code from FLASH to RAM memcpy((uint32_t *)&Cla1funcsRunStart, (uint32_t *)&Cla1funcsLoadStart, (uint32_t)&Cla1funcsLoadSize);#ifndef CLA_MATH_TABLES_IN_ROM memcpy((uint32_t *)&CLA1mathTablesRunStart, (uint32_t *)&CLA1mathTablesLoadStart, (uint32_t)&CLA1mathTablesLoadSize);#endif //CLA_MATH_TABLES_IN_ROM

#endif //_FLASH

,

Yale Li:

我们在你的新问题中讨论:TMS320F28379D: 程序烧写进flash中不正确问题 – C2000Tm︎ 微控制器论坛 – C2000 微控制器 – E2ETm 设计支持

TMS320F28377D: EMIF

阅读(175)

Part Number:TMS320F28377D

注释(3)中32位接口指的是地址线还是数据线,还有注释(3)中的最后一句话是什么意思,为什么使用16位内存,最大内存大小会变为1M*16

Yale Li:

我已经咨询了相关工程师,请关注下方链接:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1323067/tms320f28377d-emif

TMS320F280039C: VCRC 實現 CRC16 X25

Max Su阅读(40)

Part Number:TMS320F280039C

請問如何用VCRC 實現 CRC16 X25校驗

Yale Li:

我已经咨询了相关工程师,请关注下方链接:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1322667/tms320f280039c-vcrc-implements-crc16-x25

TMS320F28388D: flash_kernel_c28x_cm_ex1_c28x1–The routine doesn't run

阅读(49)

Part Number:TMS320F28388D

Hello, everyone.

I am debugging the writing of CM kernel kernel of 28388D chip, the reference routine is: flash_kernel_c28x_cm_ex1_c28x1, I burn the routine to cpu1 core through JATG simulation interface, and then write the CM kernel txt format kernel file through SCIA according to the routine process, the process is roughly as follows: Send "A" for baud rate recognition, and then send the instruction, I sent is RESET_CPU1_LOAD_CM, this instruction first executes setBootModeForCM() function, set the BOOT state of CM core, and CM core starts to run from S0RAM. Device_bootCM function in the last while(SysCtl_isCMReset() == 0x1U) function, the execution of this function passed, does it mean that CM core has been started? When copyDataToCPU1ToCMMSGRAM() is executed, it will be stuck in the IPC_sync(IPC_CPU1_L_CM_R, IPC_FLAG1) function. First, IPC_SET of FLAG1 is set. Simulation when saw ,Cpu1toCmIpcRegs. CPU1TOCMIPCFLG. Bit. IPC1 already setting, but the program card in IPC_waitForFlag function, waiting for Cpu1toCmIpcRegs. CMTOCPU1IPCSTS. Bit. IPC1, This register should be in the S0RAM area of CM core and will be set when the boot runs, so is the CM core boot not running? What do I need to do to run the CM core bootstrap? The CM core BOOT status is shown as follows: ,The above operations are performed under cpu1 simulation.

Yale Li:

I already transferred this issue to the relevant engineer. Pls focus on the link below:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1322663/tms320f28388d-flash_kernel_c28x_cm_ex1_c28x1–the-routine-doesn-t-run

TMS320F28388D: flash_kernel_c28x_cm_ex1_c28x1例程跑不通

LD阅读(54)

Part Number:TMS320F28388D

大家好:

我在调试28388D芯片的CM核kernel的写入,参考例程是:flash_kernel_c28x_cm_ex1_c28x1,我是通过JATG仿真接口将例程烧录到cpu1核中,然后通过SCIA按照例程流程写入CM核txt格式的kernel文件,流程大致为:发送“A”进行波特率识别,然后发送指令,我发送的是RESET_CPU1_LOAD_CM,该指令首先执行setBootModeForCM()函数,设置CM核的BOOT状态,且CM核从S0RAM开始运行,Device_bootCM函数中最后有while(SysCtl_isCMReset() == 0x1U)函数,此函数执行通过了,是不是代表了CM核已经启动了?执行到函数copyDataToCPU1ToCMMSGRAM()的时候,会卡在IPC_sync(IPC_CPU1_L_CM_R, IPC_FLAG1)这个函数里面,首先对IPC1的IPC_SET进行设置,仿真时看到了 Cpu1toCmIpcRegs.CPU1TOCMIPCFLG.bit.IPC1已经置位,但是程序卡在IPC_waitForFlag函数,在等待Cpu1toCmIpcRegs.CMTOCPU1IPCSTS.bit.IPC1,这个寄存器应该是CM核S0RAM区的引导程序跑起来后会置位,所以是不是CM核的引导程序没运行?我需要进行哪些操作才可以运行CM核引导程序?CM核BOOT状态如图: ,以上操作均是在cpu1仿真下进行的。

Yale Li:

https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/800863/tms320f28388d-flash_kernel_c28x_cm_ex1_c28x1–the-routine-doesn-t-run 

,

Yale Li:

LD 说:Device_bootCM函数中最后有while(SysCtl_isCMReset() == 0x1U)函数,此函数执行通过了,是不是代表了CM核已经启动了?

是的。

在CCS中,在执行该过程之前是否reset并运行CM? 运行示例CPU1-CM Flash Kernel后,我们的工程师能够在不使用CCS JTAG的情况下为CM内核下载。 我们的工程师需要更多时间来看看这是否仅与CCS使用相关。

TMS320F2800157: PWM死区时间设置的问题

John Pan阅读(43)

Part Number:TMS320F2800157

想在PWM的下降沿设置时区时间,设置PWM死区时间的代码如下

测试结果是,只在PWMB上看到了死区时间,但是在PWMA上没有看到死区时间(波形如下图),

请问是什么原因? 是我的代码有问题吗?

EPWM_setDeadBandCounterClock(PWM_BASE1,EPWM_DB_COUNTER_CLOCK_FULL_CYCLE);
        //EPWM_setRisingEdgeDelayCount(PWM_BASE1,pwm_dbred_ticks);
EPWM_setFallingEdgeDelayCount(PWM_BASE1,HBRIDGE_DEADBAND_PWM_COUNT);
EPWM_setDeadBandDelayMode(PWM_BASE1,EPWM_DB_RED,false);
EPWM_setDeadBandDelayMode(PWM_BASE1,EPWM_DB_FED,true);
       //EPWM_setRisingEdgeDeadBandDelayInput(PWM_BASE1,EPWM_DB_INPUT_EPWMA);
       //EPWM_setRisingEdgeDeadBandDelayInput(PWM_BASE1,EPWM_DB_INPUT_EPWMB);
EPWM_setFallingEdgeDeadBandDelayInput(PWM_BASE1,EPWM_DB_INPUT_EPWMA);
EPWM_setFallingEdgeDeadBandDelayInput(PWM_BASE1,EPWM_DB_INPUT_EPWMB);
       //EPWM_setDeadBandDelayPolarity(PWM_BASE1,EPWM_DB_RED,EPWM_DB_POLARITY_ACTIVE_HIGH);
EPWM_setDeadBandDelayPolarity(PWM_BASE1,EPWM_DB_FED,EPWM_DB_POLARITY_ACTIVE_HIGH);

John Pan:

我想要的效果是:

,

John Pan:

总结来说,就是PWMA和PWMB在下降沿时,死区时间都有效

,

Yale Li:

理解整个DB模块可能会更有帮助。

使用DB模块的时候,就看它的框图就可以了:

DB模块很简单,就是由两部分组成的,延时计数器和开关。

延时计数器用于检测上升(上面的)及下降沿(下面的)并通过延迟的方式增加死区;开关的作用是选择信号的路径,熟悉了之后会更加理解控制每个开关的寄存器名称的含义。

所以无论通过寄存器还是库函数的编程方式,本质就是控制这些开关以及延迟的时间。TRM中的各种名词反而把事情复杂化了。

结合本问题,两路是不可能同时使用下降沿延时的。实现的方式大致是A路输出使用A路输入、上升沿延时并反向,B路输出还是使用A路输入、下降沿延时:

也就是TRM P1367~1368中所说的Active Low Complementary (ALC):

https://www.ti.com.cn/cn/lit/ug/spruiy4a/spruiy4a.pdf 

TMS320F280039C: MCAN模块的bus-off问题咨询

阅读(33)

Part Number:TMS320F280039C

  CAN标准协议应该是错误计数器达到255才会认为进入bus-off状态。但我在测试时发现错误计数器的值为248时,bus-off标志位就置位了。请问280039的判断标准是有所不同吗?

Ben Qin:

你好,我查看一下相关资料后回复您。

,

? ?:

你好,请问查到相关资料了吗

,

Ben Qin:

你好,抱歉回复晚了。

判断标准应该是一致的:

TMS320F28377D: 如何修改sys/bios的clock tick 周期

Wei Junnan阅读(41)

Part Number:TMS320F28377D

Hi everyone!

clockParams.period = 4;/* every 4 Clock ticks */

我将任务的周期时设置为每4个clock tick运行一次,但实际测试发现任务是5ms运行一次,因此我反推一个clock tick周期为1.25ms,我想请问如何修clock tick的周期,使其一个clock tick周期为1ms或更低。

期待各位的解答。

Yale Li:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/980126/minimum-tick-using-sys-bios-on-a-f28375d-delfino

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/984093/tms320f28335-sys-bios-tick-max-rate

,

Wei Junnan:

Thanks,Yale

,

Yale Li:

You're welcome

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