HET IDE软件生成的PWM占空比是固定,在用户程序中修改哪个值可以实时改变占空比并且带死区?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
HET IDE软件生成的PWM占空比是固定,在用户程序中修改哪个值可以实时改变占空比并且带死区?
Hi David,
HET的中断使能操作如下。
1. 操作HET的中断使能寄存器HETINTENAS。
例:hetREG1->INTENAS |= (1<<15); // 使能了第15+0,15+32,15+64...条指令的中断
2. 操作HET指令的Control字中的中断控制位,中断控制位在TRM中指令的介绍部分可以查看到。
例:hetRAM1->Instruction[15U].Control |= 0x01; // 假设第15条指令是ECMP指令
3. 使能全局中断。
_enable_interrupts();
Regards,
Jay
David,
HET与普通的定时器不一样。
用HET产生PWM,PWM周期是通过CNT指令来控制的。
那么,可以再加一条指令ECMP来判断CNT的计数值与设定比较值是否匹配,匹配时可以产生中断,这个中断一定是与PWM周期相同的。而且可以根据设定比较值的不同,中断时间点可以发生在PWM周期的任何时刻。
Regards,
Jay
关于mcu的CPU自检,HALCoGen生成的自检函数stcSelfChech(),只执行到_gotoCPUIdle()_,没有判断TEST_DONE是否执行完,我在程序中加入
while((stcREG->STCGSTAT & 0x01U) != 0x01U)
{
;
}
程序无法继续执行,没有产生CPU复位,ERROR引脚一直拉低。
自检程序执行是否有顺序要求,比如efu,stc,ccm,时钟监控自检等?
ESM模块是否有各个error通道具体是什么error的说明,HALCoGen中只有group1的说明
Hi Messi,
关于STC的测试例程你可以参考我们TRM上面的STC章节,里面有关于具体设置STC的一个STC configuration example的例程。通过一步步的设置,最后可以去查询CPUd的自检程序是否通过。你可以先试试看,如果有什么问题,我们再讨论。
对于CPU自检程序是否有顺序要求,按照我们芯片内部safety island的设计理念,一般都是最核心的部分先自检,在确认自己没问题的时候,再去检测其他部分的功能。所以我们一般都会把STC的测试放在比较前面,然后其他的放后面一点。我们官网上面有一份关于系统初始化的文档,里面推荐了系统从上电到运行到main程序之间进行了哪些初始化的操作。文档的名字叫 Initialization of Hercules ARM Cortex-R4F Microcontrollers (Rev. D),你可以参考一下。
最后对于ESM 的error通道的信息你可以在我们芯片的datasheet上面找得到,不是TRM。里面的ESM章节有详细列举了各个group1的配置。
在HALCOGEN里面,我们目前的版本只支持对group1的操作。后续的版本应该会慢慢的完善这些功能。
谢谢!
Ken