STC单片机怎生成38K PWM
我要用STC单片机做个遥控器,试来试去PCA生成的PWM只能到37K或39K,怎么生成38K PWM PCA的分辨率是固定的,就不好调,只能通过调整PCA输入时钟周期,修改系统时钟,或者使用定时器作为PCA的输入时钟。如果用8H的高级PWM,或者8G/8A系列的15位增强型PWM,调节频率的精度就会更高些。 STC8A8K64D4, 内部时钟可以到45MHz, PCA 工作在10位模式,38K = 38000; 38000 * 1024 = 38912000 = 38.912MHz, 用内部时钟 工作在38.912MHz, 烧录时,在 时钟频率框中手工输入 38.912 STC8A8K64D4/STC8G系列的 PCA/PWM可以设置 是10位/8/7/6位的分辨率 红外遥控38KHz载波建议使用1/3占空比的。
通用遥控器使用的晶振时455KHz,载波为455/12=37.917KHz。接收端是有一定带宽的,发射端一般36~40KHz都没有明显的缩短距离。
MCU的8位PWM要产生38KHz的PWM,则主频=38*256=9728KHz=9.728MHz,可以有几种方法实现:
1、调整MCU频率,下载时输入9.728MHz。使用10MHz的时是39KHz,其实基本不影响接收距离的。
2、使用高级PWM或增强型PWM,设置合适的周期,比如11.0592MHz时,周期为291个时钟,则PWM频率=11059200/291=38004MHz。
3、如果MCU只做遥控器,除了读键和发射,没别的事可做,则可以使用软件延时的方产生,可以适应6~48MHz的频率。 本帖最后由 梁工 于 2023-11-14 11:18 编辑
神农鼎 发表于 2022-11-21 16:21
STC8A8K64D4, 内部时钟可以到45MHz, PCA 工作在10位模式,38K = 38000; 38000 * 1024 = 38912000 = 38.912M ...
STC8A8K64D4的话,直接使用增强型15位PWM,设置合适的周期,比如11.0592MHz,则PWM周期=11059200/38000=291。 STC8A8K64D4 是 传统的 CCP/PCA/PWM, 再 增加了 15位的增强型 PWM, STC8H/STC32G的 是 16位高级 PWM 本帖最后由 一轮明月 于 2022-11-24 10:49 编辑
可以用我们的STC8H系列和STC8G系列,如下参考图: STC8H系列数据手册:https://www.stcai.com/filedownload/631007
STC8G系列数据手册:https://www.stcai.com/filedownload/631009
页:
[1]