找回密码
 立即注册
查看: 487|回复: 9

STC8H PWM寄存器配置 踩坑分享

[复制链接]
  • TA的每日心情
    奋斗
    2024-2-26 14:31
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    23

    回帖

    166

    积分

    注册会员

    积分
    166
    发表于 2023-9-27 08:43:30 | 显示全部楼层 |阅读模式
    昨天调试一个样品,芯片使用STC8H1K08,用到了两组PWM,一组PWM2P,一组PWM3N,配置完成烧写程序,2P是正常输出了,参数设置都对,但3N一直未有反应。示波器测试无任何波形输出,

    尝试使用直接控制IO的方式,输出可控无异常,看来还是PWM配置出了问题。
    从PWMA_ENO到PWMA_BKR,配置都没发现问题。参照例程,好像也没有问题。昨天时间太急,来不急论坛发贴求助了,静下心来把各寄存器再看一遍。恍然间发现问题确实出在配置PWMA_CCER2这里。
    参照下图:因为我用了PWM3的N通道,那么我应该设置PWMA_CCER2的B2位CC3NE,OC3N的输出使能。而不是配置CC3E,OC3P的输出使能。
    这是我踩的一个坑,希望不要再有同行遇到,总结这次坑主要责任还在于自己看规格书大意。BUT,官方做规格书能更严谨一些,如果CC3E那里你使用CC3PE,或着底下描述那里写CC3P的比较/输出使能,你写的是OC3,我误以为整个3都是它控制。
    截图202309270829123382.jpg 截图202309270837111260.jpg

    截图202309270830375063.jpg
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-2-26 14:31
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    23

    回帖

    166

    积分

    注册会员

    积分
    166
     楼主| 发表于 2023-9-27 08:53:49 | 显示全部楼层
    本帖最后由 bogejiayou 于 2023-9-27 08:56 编辑

    另外分享一下第二个坑,其实也不算,一开始我查我的电脑有两个版本的STC8H的规格书,一个2021年,一个2020年,那就看新一点的20210308版本,就在看规格书内的例程,发现有PWMA_PS的配置,但我搜遍全规格书也没发现对这个寄存器的描述,很是无语,然后把2020年的规格书打开,找到了描述,原来是切换功能脚位。这里什么情况?这么重要的寄存器是在整理文档给删除了,于是乎今早去官网下载了最新的20230920版,嗯不错,日期看着真新鲜。还好PWMx_PS的寄存器描述又回来了,不过PWMx_CCER寄存器那里的描述依旧。希望官方看到能处理一下哈。
    截图202309270853313708.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 23:22
  • 签到天数: 146 天

    [LV.7]常住居民III

    34

    主题

    325

    回帖

    627

    积分

    高级会员

    积分
    627
    发表于 2023-9-27 09:09:52 | 显示全部楼层
    感谢分享,我也是第一次用,看这些多寄存器,没经验,一头雾水。
    纸上得到终觉浅,绝知此事要躬行。
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-2-26 14:31
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    23

    回帖

    166

    积分

    注册会员

    积分
    166
     楼主| 发表于 2023-9-27 11:58:16 | 显示全部楼层
    飞捷 发表于 2023-9-27 09:09
    感谢分享,我也是第一次用,看这些多寄存器,没经验,一头雾水。

    别看规格书洋洋洒洒几十页的PWM描述,我看完也不知道从何下手,只能说规格书做该有的描述,但对使用思路一字未提,并且寄存器的描述又好散乱,总之还有很多需要改进的地方了。但这些缺点确实掩盖不了它是一颗功能强大的MCU,学习的方法只能是实践出真知,使用例程,然后一点点去试去琢磨了。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9359

    回帖

    1万

    积分

    管理员

    积分
    13900
    发表于 2023-9-27 12:46:08 | 显示全部楼层
    收到PWM的 心灵鸡汤后,我们PWM团队连夜 筑基/修炼到 圣境

    1,最新 STC8H数据手册,全面更新 PWM 描述和例程
    http://www.stcmcudata.com/STC8F-DATASHEET/STC8H.pdf
    ===2023/9/20, 多了视频讲解
    截图202309271241196620.jpg
    截图202309271242159503.jpg


    2,请山东大学教授级专家来敲打我们PWM快速成长,
    留下如下精华探讨【PWM应用宝典视频
    截图202309271245352122.jpg
    https://www.stcaimcu.com/forum.p ... 3184&extra=page%3D1

    截图202309271250587611.jpg




    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2979

    回帖

    6713

    积分

    超级版主

    积分
    6713
    发表于 2023-9-27 14:12:14 | 显示全部楼层
    可能理解的问题。
    OC3,表示通道3。
    CC3E,表示允许/禁止通道3,整个通道3都由CC3E允许或禁止。
    CC3P:表示通道3输入/输出的极性。
    CC3NE:表示通道3允许/禁止比较输出。
    CC3NP:表示通道3比较输出极性。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-2-26 14:31
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    23

    回帖

    166

    积分

    注册会员

    积分
    166
     楼主| 发表于 2023-9-27 14:18:43 | 显示全部楼层
    神农鼎 发表于 2023-9-27 12:46
    收到PWM的 心灵鸡汤后,我们PWM团队连夜 筑基/修炼到 圣境

    1,最新 STC8H数据手册,全面更新 PWM 描述和例 ...

    感谢老大分享的教程,赶紧学习去了。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-2-26 14:31
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    23

    回帖

    166

    积分

    注册会员

    积分
    166
     楼主| 发表于 2023-9-27 14:30:43 | 显示全部楼层
    梁工 发表于 2023-9-27 14:12
    可能理解的问题。
    OC3,表示通道3。
    CC3E,表示允许/禁止通道3,整个通道3都由CC3E允许或禁止。

    规格书上CC1NE和CC1E功能是写的一样,只是P通道有输入捕获功能,N通道没有,所以文字描述上也只有这点出入。
    实际我用 PWMA_CCER2 = 0x04;正常打开了3N的输出,但用PWMA_CCER2 = 0x01;并未能打开。
    2P通道配置为PWMA_CCER1 = 0x10;正常工作,所以才有了本贴的理解,难道终究还是错了?

    截图202309271430247691.jpg


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-2-22 09:29
  • 签到天数: 38 天

    [LV.5]常住居民I

    5

    主题

    51

    回帖

    285

    积分

    中级会员

    积分
    285
    发表于 2023-11-22 14:58:32 | 显示全部楼层
    大佬 可以分享一下配置流程吗  我用例程修改  也无法正确得到pwm输出,自己一时之间也不知道哪里出了问题
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-2-26 14:31
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    23

    回帖

    166

    积分

    注册会员

    积分
    166
     楼主| 发表于 2023-11-28 10:45:03 | 显示全部楼层
    Honsiti 发表于 2023-11-22 14:58
    大佬 可以分享一下配置流程吗  我用例程修改  也无法正确得到pwm输出,自己一时之间也不知道哪里出了问题 ...

    以下是我上次用到的代码,水平有限,你可以参照一下,


    //-------------------------PWM初始化--------------------------------
    void PWM_Init()  
    {
            P_SW2 = 0x80;                      //特殊功能寄存器位于扩展RAM区域
                                         //需先将P_SW2的BIT7设置为1,才可正常读写
            PWMA_CCER1 = 0x00;                 //写CCMRx前必须先清零CCERx以关闭通道
            PWMA_CCER2 = 0x00;
           
           
            PWMA_CCMR2 = 0x60;                 //通道2为PWM模式1
            PWMA_CCMR3 = 0x60;                 //通道3为PWM模式1
           
            PWMA_CCER1 = 0x10;                 //配置通道2输出使能和高电平有效
            PWMA_CCER2 = 0x04;                 //配置通道3输出使能和高电平有效
           
           
           
            PWMA_PSCRH = 119/256;               //系统时钟12分频
            PWMA_PSCRL = 119%256;              //PWM时钟频率100KHz
            PWMA_ARRH  = 99/256;                  //计数100,PWM输出频率1K
            PWMA_ARRL  = 99%256;
           
            PWMA_BKR   = 0x80;                                //打开PWMA主输出使能
            PWMA_CR1   = 0x01;                   //预装载缓冲,边沿对齐,向上计数。
                   EA  = 1;                                  //开总中断
            //PWMA_EGR |= 0x01;                                //置位UG,产生更新事件,清零各寄存器
            //PWMA_EGR |= 0x01;
           
           
           
            //PWMA_PS = 0x00;
            //PWMB_PS = 0x04;            //PWM输出引脚切换
           
            //PWMA_ENO |= 0x14;          //打开PWM2P,PWM3P输出

    }               

    /**************************************************
    //----------------PWM端口开关函数---------------------
    void Red_PWM_ON()  {
            PWMA_CCMR2 |= 0x60;                //转换回PWM1模式
            PWMA_CCMR2 &= 0xef;
            PWMA_ENO |= 0x04;}

    void Red_PWM_OFF() { PWMA_ENO &= 0xfb;}


    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-10 09:15 , Processed in 0.072775 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表