找回密码
 立即注册
查看: 31|回复: 4

AI8051UPWM输出问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-08-06 09:37:57
已绑定手机

1

主题

2

回帖

13

积分

新手上路

积分
13
发表于 3 天前 | 显示全部楼层 |阅读模式
1.使用PWM输出,IO口P3.2显示功能有PWM_ETI1/PWM_ETI2;手册说这是PWM的刹车功能,P3.2口是不是无法设置为PWM输出口?

2.IO口P5.0显示有功能PWM5_4;实验性实验程序里的ARR预装载是什么意思,我看到有的设置是不打开预装载的
    PWMB_CR1 |= 0x81;  //使能ARR预装载,开始计时;预装载
    PWMB_CR1 |= 0x01;  //开始计时;没有预装载
预装载的作用是写数据的时候先存入预装载的寄存器,下个周期执行PWM是时候再转载到参数里面,防止写入时影响当前PWM的控制吗?
回复

使用道具 举报 送花

3

主题

2078

回帖

1004

积分

等待验证会员

积分
1004
发表于 3 天前 | 显示全部楼层
针对您提出的关于AI8051UPWM模块的两个问题,现作如下专业解答:

一、关于P32口是否可作为PWM输出口的问题

根据AI8051U芯片手册中对P32引脚功能的描述,该引脚被定义为“PWMETI1/PWMETI2”,即支持PWM输入捕获或刹车信号输入。此功能表明P32主要用于接收外部事件触发或作为PWM模块的刹车控制引脚,而非直接用于PWM输出。

因此,在标准配置下,P32引脚不具备直接作为PWM输出的功能。若需使用PWM输出,应选择具有“PWMxy”功能定义的IO口,如P50(PWM54)等。

若实际应用中需要将P32用作PWM输出,需确认是否在特定模式下可通过寄存器配置进行功能重映射(Remap),但根据现有资料及设计规范,P32不支持此功能。建议查阅具体型号的复用功能表或联系技术支持获取更详细信息。

二、关于ARR预装载机制的说明

在PWM模块中,ARR(Auto-Reload Register)是决定PWM周期的关键寄存器。在某些应用场景中,直接修改ARR可能导致当前周期异常,影响PWM波形的稳定性。为此,引入了“ARR预装载”机制。

1. 预装载的作用:

ARR预装载机制允许在不干扰当前运行周期的情况下,将新的ARR值写入预装载寄存器。当当前周期结束后,系统会自动将预装载寄存器的内容加载到实际使用的ARR寄存器中,从而避免因动态修改导致的波形畸变。

2. 预装载的开启与关闭:
PWMBCR1 |= 0x81;  
  此语句同时设置“使能ARR预装载”和“开始计时”。在此模式下,ARR的修改将通过预装载寄存器完成,确保波形稳定。
PWMBCR1 |= 0x01;  
  此语句仅“开始计时”,未启用ARR预装载。此时,对ARR的修改将立即生效,可能影响当前周期的PWM输出。

3. 实验性程序中的设置意义:

在实验过程中,部分程序可能选择不启用ARR预装载,以便快速测试不同周期参数下的PWM效果。但在实际工程应用中,建议启用预装载以提高系统的稳定性和可靠性。

综上所述,ARR预装载机制是PWM模块中一项重要的功能,能够有效防止在运行过程中修改ARR带来的不稳定现象,适用于对波形精度要求较高的场景。

如需进一步了解PWM模块的其他功能或配置细节,建议参考AI8051U数据手册或联系国芯人工智能技术支持团队。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:522
  • 最近打卡:2025-08-09 07:11:18
已绑定手机

86

主题

5872

回帖

1万

积分

超级版主

DebugLab

积分
10587
发表于 3 天前 | 显示全部楼层
P32无法PWM输出
你对预装载的理解正确
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-08-06 09:37:57
已绑定手机

1

主题

2

回帖

13

积分

新手上路

积分
13
发表于 3 天前 | 显示全部楼层
Debu*** 发表于 2025-8-6 10:35
P32无法PWM输出
你对预装载的理解正确

谢谢。我在测试P5.2口输出PWM转模拟量,经过阻容电路,电压会下降,且负载能力不足。设置IO口为推挽模式,发现PWM脉冲没有输出了,IO口本身不能提供更大的PWM负载能力吗?


找到问题了,错误改了P5M1 = 0x01;
应该这样:    P5M1 = 0x00;   P5M0 = 0x01;   //

点评

PWM做DAC就是要设置为推挽模式  详情 回复 发表于 3 天前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:522
  • 最近打卡:2025-08-09 07:11:18
已绑定手机

86

主题

5872

回帖

1万

积分

超级版主

DebugLab

积分
10587
发表于 3 天前 | 显示全部楼层
ok4*** 发表于 2025-8-6 11:14
谢谢。我在测试P5.2口输出PWM转模拟量,经过阻容电路,电压会下降,且负载能力不足。设置IO口为推挽模式, ...

PWM做DAC就是要设置为推挽模式,正负电流对称,输出的模拟信号值才准确
经过RC积分滤波,只能输出小信号,如果希望驱动能力较强可以加运放
DebugLab
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-9 21:44 , Processed in 0.134560 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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