[国产单片机] 辉芒微全系列的 PWM 占空比更新的问题请教

[复制链接]
2600|11
 楼主| panxiaoyi 发表于 2023-7-27 15:41 | 显示全部楼层 |阅读模式

就是辉芒微全系列的 PWM 的占空比的问题
PWM,大于8位,例如16位,就会有 xxxH 和 xxxL 两个占空比的比较寄存器(包含影子寄存器)
问题是,我查了所有系列的数据手册,都没有说明要先写 xxxH 寄存器还是先写 xxxL 寄存器。
如果我正在写 xxxH(还没有来得及写 xxxL) ,这时,计数器刚刚好计数溢出,然后从0开始下一轮的计数,器件这时就会把 xxxH 和 xxxL 的数据同时加载到比较寄存器,很明显,这个比较值并不是我想要的。

特别是在 LED 调光时,在 LED 微弱发光的时候
本来我要从原来的
xxxH=0x00; xxxL=0xFF
调整到
xxxH=0x01;xxxL=0x00;(就是占空比+1)
而实际上PWM加载进比较寄存器的值却是
H=0x01; L=0xFF
这样,LED光线 就会出现抖动的现象
 楼主| panxiaoyi 发表于 2023-7-27 15:52 | 显示全部楼层
本帖最后由 panxiaoyi 于 2023-7-27 15:53 编辑

我测试了 FT61E13x ,它的确有这个现象的存在。
我查阅了包括 FT61E13x,FT61F14X,FT62F08X,FT62F0Gx 的数据手册,它们都说有缓冲寄存器(影子寄存器),先后写的顺序都说没有区分
但是,下面的 FT61E13x 代码,每运行一条语句,LED都会有明显的变化,NOP()是断点观察用途,已经打开了溢出更新(否则就是立即更新)
  1. P1ADTL=255;
  2. NOP();
  3. P1ADTH=2;
  4. NOP();

  5. P1ADTH=0;
  6. NOP();
  7. P1ADTL=50;
  8. NOP();



 楼主| panxiaoyi 发表于 2023-7-27 15:58 | 显示全部楼层
按道理,上面的代码,必须是 xxxH 已经写,并且 xxxL 已经写,然后才能更新的,而现实却是,只写 xxxH,或者只写 xxxL,PWM 在溢出后就加载了 xxxH 和 xxxL 的数据。
当然,很有可能是我理解的不对,还请有实际操作过辉芒微的PWM的大家,来指点指点,多谢
 楼主| panxiaoyi 发表于 2023-7-27 16:03 | 显示全部楼层
由于我们使用辉芒微的量还算是比较大的,所以,有时候我也会请教原厂的技术支持,结果每次都是:原厂通知一个代理商,代理商派一个业务过来了解情况,后面的就是不了了之了
 楼主| panxiaoyi 发表于 2023-7-27 16:25 | 显示全部楼层
本帖最后由 panxiaoyi 于 2023-7-27 16:30 编辑

占空比寄存器的说明如图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
rgjinxuan 发表于 2023-7-28 13:50 | 显示全部楼层
FMD 没什么服务的
elife 发表于 2023-7-28 16:34 | 显示全部楼层
看你上面的资料,这个应该是硬件设计的问题,硬件没有保证一次读写16位数据。资料上已经建议在新周期开始后,立即更新了。可以在周期中断中更新吧,不会有问题。
DanPianJiFangAn 发表于 2023-7-28 18:49 | 显示全部楼层
看来PWM只用8位最保险了
kkstun 发表于 2023-7-29 11:15 | 显示全部楼层
13x 14x 没抄好,bug挺多的。
 楼主| panxiaoyi 发表于 2023-7-31 19:54 | 显示全部楼层
elife 发表于 2023-7-28 16:34
看你上面的资料,这个应该是硬件设计的问题,硬件没有保证一次读写16位数据。资料上已经建议在新周期开始后 ...

是的,只能在计数溢出的中断里面去更新占空比,并且PWM的频率不能太高,以保证中断的可靠更新
mwxpk 发表于 2023-8-1 10:50 | 显示全部楼层
控制个LED也这么费劲,片机不懂PWM,所以设计出的产品要江湖码农,经常武林大会。
        PWMA_ARR    = KHZ;          //频率
        PWMA_DTR    = 10;                  // 死区
        PWMA_CCR1   = ZKB;                // 占空比=频率除2(50%对称)
      这是某片结构;

       战空比KHZ=PWMA_ARR /2   
lrhsx33 发表于 2023-8-3 10:51 | 显示全部楼层
硬伤无解。  只能软件尽量避免。  原厂解决不了的问题,代理商更是无能为力。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

417

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部