大家好,
我正在使用 S32K358 板,并在 OPWFMB 模式下配置了 4 个 PWM 输出通道,并使用下面列出的 EB tresos 为所有 PWM 输出通道使用相同的时钟预分频器和可配置周期(可变周期):
EMIOS_0_CH_3 = MSCR 130 = GPIO 130 = PTE2
EMIOS_0_CH_1 = MSCR 45 = GPIO 45 = PTB13
EMIOS_0_CH_4 = MSCR 48 = GPIO 48 = PTB16
EMIOS_0_CH_2 = MSCR 46 = GPIO 46 = PTB14
从社区提出的一个疑问中看到以下公式
PWM 频率 = CORE_CLK / 全局预分频器 / 内部预分频器 / (B1+1)
“
B1 是写入通道 B 寄存器的值。 ”
但是根据这个计算,我没有得到输出频率并且与实际生成的信号不匹配(通过示波器验证了它的频率)。
以下是我在 PWM 模块中设置的值:
核心时钟 = 240MHz | OPWFMB 模式 |
全局预分频器:44(在 MCL 模块 - EMIOS0_CH23 中设置的时钟分频器值)
内部预分频器(时钟预分频器):2
根据公式,我得到 340.8664Hz (240MHz/ (44*2*(8000+1)),但我从示波器得到的是 3.67kHz ,占空比为 50%。(Reg-A 值:4000 & Reg -B 值:8000)。
请帮助我理解如何计算 PWM 频率。