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

想让8H1K08-SOP16输出一个14KHZ左右的PWM

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:102
  • 最近打卡:2025-08-05 13:48:51
已绑定手机

14

主题

42

回帖

604

积分

高级会员

积分
604
发表于 前天 14:06 | 显示全部楼层 |阅读模式
目前只有第4脚(P1.7)可以用,根据PDF里面的历程改了一下配置,没有输出,是这芯片不支持吗?
P_SW2 |= 0x80; //使能访问 XFR,没有冲突不用关闭
PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCERx 关闭通道
PWMA_CCMR1 = 0x60; //设置 CC1 为 PWMA 输出模式
PWMA_CCER1 = 0x01; //使能 CC1 通道
PWMA_CCR1 = 100; //设置占空比时间
PWMA_ARR = 500; //设置周期时间
PWMA_ENO = 0x80; //使能 PWM4N 端口输出
PWMA_BKR = 0x80; //使能主输出
PWMA_CR1 = 0x01; //开始计时
回复

使用道具 举报 送花

3

主题

2097

回帖

1042

积分

等待验证会员

积分
1042
发表于 前天 14:08 | 显示全部楼层
根据您提供的代码及配置信息,我们对STC8H1K08-SOP16芯片的PWM功能进行分析。该芯片支持多路PWM输出,但需注意其引脚功能和寄存器配置是否正确。

您提到仅使用第4脚(P17)作为PWM输出,而根据STC8H1K08的数据手册,P17为PWM4N输出引脚,属于PWM模块的第四通道。因此,从引脚角度来看,该配置是可行的。

然而,从您提供的代码来看,存在以下几点需要注意:

1. PWMAENO寄存器设置:您设置 PWMAENO = 0x80;,该寄存器用于使能PWM输出端口。但需要注意的是,不同型号的STC单片机可能在寄存器定义上略有差异,建议查阅具体数据手册确认该寄存器的位定义是否与您的操作一致。

2. PWMABKR寄存器设置:您设置 PWMABKR = 0x80;,该寄存器用于主输出使能。此设置通常是正确的,但需确保其他相关配置已正确完成。

3. PWMACR1寄存器设置:您设置 PWMACR1 = 0x01;,表示启动计时器。这是正确的步骤。

4. PWM通道配置:您设置 PWMACCMR1 = 0x60; 和 PWMACCER1 = 0x01;,表示将通道1配置为PWM输出模式并启用。然而,对于PWM4N(即通道4),应使用 PWMACCMR4 和 PWMACCER4 寄存器进行配置,而非通道1的相关寄存器。

5. ARR和CCR值计算:您设置 PWMAARR = 500; 和 PWMACCR1 = 100;,这意味着周期为500个时钟周期,占空比为20%。若系统时钟频率为12MHz,则PWM频率约为12,000,000 / (500  2) = 12kHz,接近您所需的14kHz。但由于实际时钟可能存在分频或误差,建议进一步验证。

综上所述,您的代码中存在关键的寄存器配置错误,特别是PWM通道配置部分。请参考数据手册,确保对通道4(PWM4N)的寄存器进行正确配置。如需进一步调试,建议使用示波器或逻辑分析仪观察引脚信号,以确认PWM是否正常输出。

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:505
  • 最近打卡:2025-08-05 11:20:12
已绑定手机

38

主题

2372

回帖

3106

积分

荣誉版主

积分
3106
发表于 前天 14:20 | 显示全部楼层
建议先想清楚怎么提问题,
先列出你要实现的目标具体是什么,比如,需要输出几路PWM,频率和占空比分别是多少
再说你目前的状态或者遇到的问题
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:102
  • 最近打卡:2025-08-05 13:48:51
已绑定手机

14

主题

42

回帖

604

积分

高级会员

积分
604
发表于 前天 14:49 | 显示全部楼层
国芯人*** 发表于 2025-8-3 14:08
根据您提供的代码及配置信息,我们对STC8H1K08-SOP16芯片的PWM功能进行分析。该芯片支持多路PWM输出,但需 ...

感谢,但是PWMACCER4没有,只有PWMACCER2

点评

CCER1管PWM1和PWM2,CCER2管PWM3和PWM4,没有CCER3、CCER4。 建议先测试官方例程,再修改。  详情 回复 发表于 昨天 16:12
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:102
  • 最近打卡:2025-08-05 13:48:51
已绑定手机

14

主题

42

回帖

604

积分

高级会员

积分
604
发表于 前天 14:57 | 显示全部楼层
晓*** 发表于 2025-8-3 14:20
建议先想清楚怎么提问题,
先列出你要实现的目标具体是什么,比如,需要输出几路PWM,频率和占空比分别是多 ...

只需要一路,原来是用8G的。
这个8H好像比较强大一些。频率似乎可以任意。
刚格局楼上提示,修改了一下,有输出了。
11.0592M时
PWMA_CCR4 = 100; //设置占空比时间
PWMA_ARR = 799; //设置周期时间11.0592M时约13.8K
然后大概测试了一下,就是CCR的值在0-ARR+1之间,就是占空比0-100;
如果主频22.1184,就能获得相同频率下分辨率增加一倍的PWM信号了。
1600的分辨率那不是挺高的了,800也非常好了,记得8G好像只能到256的还是多少来
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:149
  • 最近打卡:2025-08-05 09:05:13

765

主题

1万

回帖

1万

积分

管理员

积分
18473
发表于 前天 21:36 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2025-08-05 10:47:10

76

主题

6591

回帖

1万

积分

超级版主

积分
13695
发表于 昨天 16:12 | 显示全部楼层
xiaob*** 发表于 2025-8-3 14:49
感谢,但是PWMACCER4没有,只有PWMACCER2

CCER1管PWM1和PWM2,CCER2管PWM3和PWM4,没有CCER3、CCER4。先看下手册吧。
建议先测试官方例程,再修改。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:102
  • 最近打卡:2025-08-05 13:48:51
已绑定手机

14

主题

42

回帖

604

积分

高级会员

积分
604
发表于 昨天 17:12 | 显示全部楼层
梁*** 发表于 2025-8-4 16:12
CCER1管PWM1和PWM2,CCER2管PWM3和PWM4,没有CCER3、CCER4。先看下手册吧。
建议先测试官方例程,再修改。 ...

感谢,已经弄好了,接下来就是调整PID了,不太好搞。
有没有经验指导一下,就是驱动一个永磁直流电机调节速度,编码器只有60个信号
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-5 15:23 , Processed in 0.123704 second(s), 90 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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