找回密码
 立即注册
查看: 298|回复: 7

求助怎么稳定输出1.6MHZ变频pwm

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-01-26 09:24:19
已绑定手机

4

主题

11

回帖

62

积分

注册会员

积分
62
发表于 2026-1-25 16:32:04 | 显示全部楼层 |阅读模式
使用IC:8H1K08-TSSOP16
输出引脚P12
需求:初始化固定频率,12M自带内部晶振。输出1.6M的pwm,占空比50%,从P12引脚输出。
要求PMW频率可调1.4MHZ-1.8MHZ。1Khz频率 开关PWM输出。
为满足这个需求,参考那个例程比较好实现,或者通过哪个pwm功能可以实现。


回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:725
  • 最近打卡:2026-03-30 12:09:34
已绑定手机

97

主题

7246

回帖

1万

积分

超级版主

积分
13798
发表于 2026-1-25 17:36:16 | 显示全部楼层
至少内部主时钟频率得是1.6M的整数倍吧
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:90
  • 最近打卡:2026-04-02 10:16:19
已绑定手机

4

主题

245

回帖

885

积分

高级会员

积分
885
发表于 2026-1-25 20:38:25 | 显示全部楼层
假如IRC频率为35M,调整MCLKOCR,改变主时钟输出分频系数,
比如19分频可得到1.84M,18分频得到1.75M,25分频得到1.4M,就是分辨率有点低。
另外可考虑一下IRTRIM对系统时钟进行调整,应该能得到更高的分辨率。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:681
  • 最近打卡:2026-04-02 10:11:06

9

主题

622

回帖

4336

积分

论坛元老

积分
4336
发表于 2026-1-25 23:22:16 | 显示全部楼层
如果固定50%占空比,不需要用PWM实现这个功能,可以直接定时器分频输出,修改分频比来调节输出频率.具体时钟和分频比要根据输出频率调节步长来评估
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2026-03-15 21:57:39

6

主题

81

回帖

986

积分

高级会员

积分
986
发表于 2026-1-26 00:35:35 | 显示全部楼层

从原理上来说,使用12MHz的主频是无法实现 1600KHz~1800KHz 准确步进 1KHz 的效果。

因为在数字计数器的时钟模式下,时间步进是线性,
但频率与时间互为倒数,所以频率的步进是不线性的,
这是两种维度之间的差异,在一个维度内无法完全对齐另一个维度的点,
就好比你可以用圆规画出完美的圆,但是你却不能用直尺准确测量出圆的周长。
1600~1800之间有201个点,它们的公倍数非常大,主频会变得不切实际。

如果想要获得准确的 1600KHz 到 1800KHz 步进 1KHz,则需要转换成频域的方法。
比如使用 VFC (V/F) 电压频率转换器,类似 LM331 之类的芯片,
然后单片机输出一个PWM作DAC通过调节电压去控制频率,获得一个稳定步进的频率。
或者使用电压控制电流源加电容搭建可变斜率发生器,使用比较器与一个固定电压进行比较,
生成一个频率与电压呈线性关系的VCO,但模拟电路需要考虑各个元件的误差和漂移。

如果只是不需要很准确的频率步进,那么可以使用 STC8H2K08U 等支持 144MHz PWM时钟的型号,
把PWM的计数器主频拉高,然后获得相对较高的频率分辨率,简单满足一定范围的频率步进调节,
其中可以通过查表方式设置特殊的主频和分频组合,获得固定主频下无法产生的中间频率。



回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2026-03-15 21:57:39

6

主题

81

回帖

986

积分

高级会员

积分
986
发表于 2026-1-26 08:48:29 | 显示全部楼层
rm5*** 发表于 2026-1-26 00:35
从原理上来说,使用12MHz的主频是无法实现 1600KHz~1800KHz 准确步进 1KHz 的效果。

因为在数字计数器的 ...

或者使用DDS的方式,把时钟设置成4.096MHz的倍数,可以生成稳定步进1KHz的效果。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-01-26 09:24:19
已绑定手机

4

主题

11

回帖

62

积分

注册会员

积分
62
发表于 2026-1-26 09:24:19 | 显示全部楼层
rm5*** 发表于 2026-1-26 00:35
从原理上来说,使用12MHz的主频是无法实现 1600KHz~1800KHz 准确步进 1KHz 的效果。

因为在数字计数器的 ...

主要高速PWM输出1.6mhz-1.8mhz频率  分辨率没有要求 当然可以越小越好。是通过软件检测自动调整。1Khz并不是分辨率,是开关,比如1khz开关,60%开,40%关。就是60%的时候输出1.6mhz-1.8mhz的高频率PWM,到40%的时候输出0的意思。其中一个是载波的意思
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2026-03-15 21:57:39

6

主题

81

回帖

986

积分

高级会员

积分
986
发表于 2026-1-26 11:15:28 | 显示全部楼层
菜鸟*** 发表于 2026-1-26 09:24
主要高速PWM输出1.6mhz-1.8mhz频率  分辨率没有要求 当然可以越小越好。是通过软件检测自动调整。1Khz并 ...

那这样可以用 PWM 模块进行输出,软件计算设置频率和占空比,
然后用一个不自动重装的定时器去做翻转定时,
比如说定时400uS进入中断,关闭PWM输出,然后重装600uS的定时器值,
再次中断后打开PWM输出,然后再重装400uS的值,如此反复。


但是要输出1.6MHz到1.8MHz的频率,主频估计要设置成28.8MHz,
就可以刚好满足1.6MHz和1.8MHz的两个频率,一个重装值8一个重装值9,
但是原理上这两个频率之间已经不可调了,因为重装值只差1。

如果用带 144MHz 频率PWM时钟的型号,就可以设置PWM时钟为144MHz,
那么1.6MHz和1.8MHz频率的重装值就是40和45,中间还有5档可调。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-2 21:14 , Processed in 0.112604 second(s), 76 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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