泡芙维尼 发表于 2025-3-16 13:57:22

请教大神们32Gpwm移相的问题

使用逐飞开源的无线充电端源码,
只是让它执行输出移相的pwm波的功能,
main函数如下,却不能输出pwm波,是什么问题
o(╥﹏╥)o?

void main()
{
    board_init();         // 初始化寄存器,勿删除此句代码。
   
    // 此处编写用户代码(例如:外设初始化代码等)
//    test_function( ZF_FALSE );

//    key_init();
//    display_init(DISPLAY_MODE_DEC_ONE_TENTH);
    power_sample_init();               //电压读取初始化
    charge_init();                     //pwm移相初始化
    pit_handler_init();                //中断初始化
    charge_congrol_enable (1);      
      

      
    while(1)
    {
                        

                        charge_pwm_set_phase_diff (500);
                        
                        
//         // 此处编写需要循环执行的代码
//      if(pit_handler_charge_flag)
//      {
//            pit_handler_charge_flag = 0;
//      }
    }
}




国芯人工智能 发表于 2025-3-16 13:58:00

针对您提到的STC32G PWM移相问题,建议从以下几个方面进行排查:<br><br>1. 时钟配置:确保系统时钟和外设时钟(如PWM模块的时钟)已正确配置。STC32G的PWM模块依赖于时钟信号,若时钟未正确初始化,PWM输出将无法正常工作。<br><br>2. PWM初始化:检查PWM模块的初始化代码,确保相关寄存器(如PWM周期、占空比、移相控制寄存器)已正确设置。特别注意移相寄存器的配置,确保移相值在合理范围内。<br><br>3. 引脚配置:确认PWM输出引脚已正确配置为PWM功能模式。STC32G的引脚复用功能需通过相关寄存器设置。<br><br>4. 调试工具:使用逻辑分析仪或示波器检查PWM输出引脚,确认是否有信号输出。若无信号,可能是硬件连接或配置问题。<br><br>5. 代码逻辑:检查boardinit()函数是否包含PWM模块的初始化代码。若未包含,需手动添加PWM初始化代码。<br><br>6. 电源管理:确保电源管理模块未关闭PWM模块的供电。<br><br>建议逐步排查以上问题,若仍无法解决,可提供更详细的代码和硬件配置信息,以便进一步分析。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]

王昱顺 发表于 2025-3-16 16:29:53

32G并没有硬件PWM移相功能
想要使用PWM移相功能可以使用AI8051U单片机
以下是部分硬件PWM移相的介绍

PWM硬件移相测试卡教程(四)组合PWM(180度移相互补输出)@STC8H2K12U系列 - 工控板,PLC,8H/32G系列实现 国芯技术交流网站 - AI32位8051交流社区
高级PWM-硬件移相功能介绍 - BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC 国芯技术交流网站 - AI32位8051交流社区

泡芙维尼 发表于 2025-3-16 17:06:29

王昱顺 发表于 2025-3-16 16:29
32G并没有硬件PWM移相功能
想要使用PWM移相功能可以使用AI8051U单片机
以下是部分硬件PWM移相的介绍


逐飞开源的充电发射端用的不是STC32G么,控制PWM移相,栅极驱动芯片输出互补pwm

王昱顺 发表于 2025-3-16 17:24:19

泡芙维尼 发表于 2025-3-16 17:06
逐飞开源的充电发射端用的不是STC32G么,控制PWM移相,栅极驱动芯片输出互补pwm ...
我看了一下,是拿PWMB内部TRGO触发PWMA实现的移相,并非硬件移相
所以,设置PWM移相函数前需要先设置输出正常的PWM
需要确定PWM输出端是否设置为了正常的输出模式

泡芙维尼 发表于 2025-3-16 20:38:12

王昱顺 发表于 2025-3-16 17:24
我看了一下,是拿PWMB内部TRGO触发PWMA实现的移相,并非硬件移相
所以,设置PWM移相函数前需要先设置输出 ...

是的,我奇怪源代码为什么不能输出,不知道是不是遗漏了什么o(╥﹏╥)o
页: [1]
查看完整版本: 请教大神们32Gpwm移相的问题