打印
[51单片机]

STC8G1K08A的PCA模块无法输出一对互补的PWM脉冲?

[复制链接]
2134|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
imdx|  楼主 | 2020-11-5 14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有个需求:要输出一对100k左右的互补PWM信号,占空比固定50%。频率可能会调整。
希望兼容5V电平,然后频率可以调整,对管脚数量要求不高,想用STC8G1K08A来实现,这个自带3路PCA模块。
因为频率比较高,不考虑软件方式,希望PWM外设设置完以后软件就不需要再干涉。
试了下发现不行,三路PCA使用同一个计数器,计数匹配的时候输出行为是固定的,无法选择拉高还是拉低。
其实在CMOD寄存器里增加一位,选择比较匹配的时候输出高电平还是低电平就可以了,互补PWM信号还是很有用的。

使用特权

评论回复

相关帖子

沙发
hayden0| | 2020-11-5 17:16 | 只看该作者
我记得是公用周期的,频率是不能分别调整的,要变一起变了

使用特权

评论回复
板凳
imdx|  楼主 | 2020-11-5 19:14 | 只看该作者
换N76E003AT20轻松搞定,STC8G1K08A的PWM外设太弱了,稍微复杂点的应用就不行了。
HC89F0411P和HC89S001P看起来PWM外设也可以,不过手头没有片子,就不折腾了。
TSSOP-20比SO-8尺寸也大不了多少,就用N76E003AT20了。

使用特权

评论回复
地板
LcwSwust| | 2020-11-5 19:39 | 只看该作者
确定是高速输出模式而不是PWM模式?

使用特权

评论回复
5
imdx|  楼主 | 2020-11-6 09:19 | 只看该作者
LcwSwust 发表于 2020-11-5 19:39
确定是高速输出模式而不是PWM模式?

那个高速输出模式就是搞笑的,居然要在ISR中实时更新比较寄存器。
计数器只会从0x0000计数到0xFFFF然后溢出。比较寄存器匹配以后反转。
如果我周期设置为0x1000,那么必须在0x1000之后进入ISR然后设置比较寄存器为0x2000,以此类推。
这么奇葩的方式头一次见。

使用特权

评论回复
6
LcwSwust| | 2020-11-6 11:26 | 只看该作者
imdx 发表于 2020-11-6 09:19
那个高速输出模式就是搞笑的,居然要在ISR中实时更新比较寄存器。
计数器只会从0x0000计数到0xFFFF然后溢 ...

是的,PCA使用同一个计数值,输出极性无法调整,无法输出互补PWM.
可以考虑其它型号带 15 位的增强型PWM的,如STC8G2K64S2系列.

使用特权

评论回复
7
imdx|  楼主 | 2020-11-6 16:38 | 只看该作者
**NT018 发表于 2020-11-6 14:35
换 STC8H1K08-36I-TSSOP20, 4对 互补 PWM

换N76E003AT20了,3对互补PWM

使用特权

评论回复
8
coody| | 2020-11-6 21:10 | 只看该作者
imdx 发表于 2020-11-6 09:19
那个高速输出模式就是搞笑的,居然要在ISR中实时更新比较寄存器。
计数器只会从0x0000计数到0xFFFF然后溢 ...

你以前用过任何一家MCU的PCA吗?PCA是“可编程计数器阵列”的缩写,匹配中断是其工作方式之一。以前80、90年代的51没有这个功能,我记得是在16位的8098这样的高档货才有。你没用过,所以觉得奇葩。

使用特权

评论回复
9
imdx|  楼主 | 2020-11-6 23:13 | 只看该作者
coody 发表于 2020-11-6 21:10
你以前用过任何一家MCU的PCA吗?PCA是“可编程计数器阵列”的缩写,匹配中断是其工作方式之一。以前80、9 ...

不好意思,我做数字电源和电机控制的,用的PWM比较多。
用过的PWM(TI的C2000和ARM的Cortex)都比这个高级,看到这么简陋的PWM确实有点意外。
N76E003的PWM也比它好太多,当然STC自己也知道太简陋,新品就换16位,还堆了几十路。
还有CH552的PWM,也是出奇的简陋,稍微用点心,就会做得更好。
之前用STC15这个PCA输出PWM也就是控制一下背光亮度之类,也就做一下这类事情了。
ps.我用Verilog自己写一个PWM都比它好用。

使用特权

评论回复
10
广东梁百万| | 2020-11-7 08:16 | 只看该作者
八仙过海各显神通

使用特权

评论回复
11
yunie0608| | 2020-11-7 09:10 | 只看该作者
imdx 发表于 2020-11-6 16:38
换N76E003AT20了,3对互补PWM

很多客户说这些台系芯片今年供货很不稳定,您可以问问交期。。。我们STC8G和8H系列超大量库存,源源不断,供货绝对是有优势的,只要功能满足,可以多给备选方案先测试起来。

使用特权

评论回复
12
imdx|  楼主 | 2020-11-7 14:59 | 只看该作者
yunie0608 发表于 2020-11-7 09:10
很多客户说这些台系芯片今年供货很不稳定,您可以问问交期。。。我们STC8G和8H系列超大量库存,源源不断 ...

N76E003AT20我有存货,不关心交期。
看数据手册芯圣的HC89S001P内置的PWM也完全满足要求,也是SO-8封装,而且这个芯片P2P替换STM8S001J3,建议你们也出一款P2P兼容STM8S001J3的型号。管脚重新排列一下就行了。如果能把PWM更新一下就更好了。

使用特权

评论回复
13
imdx|  楼主 | 2020-11-9 11:16 | 只看该作者
**NT018 发表于 2020-11-9 10:57
今年芯片市场的动荡,靠一点存货能撑多久, 不是长久之计   很多工程师不敢用的,辛辛苦苦弄出来一个产品 ...

STM8S003 TSSOP-20的管脚兼容片国产一大堆啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

902

帖子

8

粉丝