AI8051UPWM输出问题
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的控制吗?
针对您提出的关于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数据手册或联系国芯人工智能技术支持团队。
[本文内容由国芯人工智能辅助生成,仅供参考] P32无法PWM输出
你对预装载的理解正确
DebugLab 发表于 2025-8-6 10:35
P32无法PWM输出
你对预装载的理解正确
谢谢。我在测试P5.2口输出PWM转模拟量,经过阻容电路,电压会下降,且负载能力不足。设置IO口为推挽模式,发现PWM脉冲没有输出了,IO口本身不能提供更大的PWM负载能力吗?
找到问题了,错误改了P5M1 = 0x01;
应该这样: P5M1 = 0x00; P5M0 = 0x01; //
ok4005 发表于 2025-8-6 11:14
谢谢。我在测试P5.2口输出PWM转模拟量,经过阻容电路,电压会下降,且负载能力不足。设置IO口为推挽模式, ...
PWM做DAC就是要设置为推挽模式,正负电流对称,输出的模拟信号值才准确
经过RC积分滤波,只能输出小信号,如果希望驱动能力较强可以加运放
DebugLab 发表于 2025-8-6 11:34
PWM做DAC就是要设置为推挽模式,正负电流对称,输出的模拟信号值才准确
经过RC积分滤波,只能输出小信号, ...
P5.0口的方波波形是很陡的,二阶RC滤波后,电压下降太多了。看来要用运放输出了。
ok4005 发表于 2025-8-13 11:08
P5.0口的方波波形是很陡的,二阶RC滤波后,电压下降太多了。看来要用运放输出了。
...
是没有电流的小信号,带不了负载
页:
[1]