数码之家

 找回密码
 立即注册
搜索
查看: 4320|回复: 9

[C51] STC15W的IO口反应是不是比较慢

[复制链接]
发表于 2019-4-28 17:10:49 | 显示全部楼层 |阅读模式
       最近写一个雾化片驱动,用STC15W401AS完成升压信号,驱动信号使能信号产生,LED驱动,按键扫描的功能。为了调节PID算法昨天不小心烧掉了一片MCU,不过一番折腾终于完成想要的功能,可以去设计PCB然后交由淘宝店家制作。没办法,之前没有验证直接打样PCB导致电路不能工作导致PCB报废,直接拿PCB验证代价过大,所以这次随便搭焊又让人说太简陋了。
       不过时序方面还是有一些遗憾:使用了高速时钟功能,由P3.0输出1.7MHz的激励信号到MOSFET驱动器,驱动器驱动Class-E电路的MOSFET,然后MOSFET驱动器的EN引脚还受P1.2一路模拟PWM控制使得MOSFET的驱动脉冲时有时无控制平均出雾量。为了防止过短的异常脉冲产生,需要等到P3.0的电平变低使得一个完整脉冲过去后或者一个完整脉冲未开始之前才开启或关闭MOSFET,不会直接在脉冲处于高电平时操作MOSFET的使能脚使得脉冲被剪切。但是写完代码后发现实际不是那么回事,P1.2仍在脉冲的高电平处有变低的情况,这是不是由于IO的响应速度引起的?IO本身的翻转有延迟,外部电平反转被IO读到不同也有延迟。
代码如下:已经是ASM的最精简操作了!



实际结果:
P1.2关断时同步,可以看见P3.0还没有变低就提早关断了!当然也可以理解为正好在P3.0变高之前一点采样发现P3.0为低立马关断P1.2,结果各种延迟导致P1.2没有那么快响应所以还是漏了一部分脉冲过去。



P1.2开启时同步,仍然会这样。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 1家元 +20 收起 理由
家睦 + 20

查看全部打赏

发表于 2019-4-28 18:22:01 | 显示全部楼层
穷人没有示波器。雾化一定要1.7m吗  低一点 500khz不行?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-29 10:54:31 | 显示全部楼层
kkstun 发表于 2019-4-28 18:22
穷人没有示波器。雾化一定要1.7m吗  低一点 500khz不行?

雾化片实际谐振频率就在标称频率附近报持稳定,偏移估计不超过50KHz,对于1.7MHz雾化片来说。500KHz远低于谐振频率,是不能工作的,呈现高阻状态。
回复 支持 反对

使用道具 举报

发表于 2019-4-29 23:52:53 | 显示全部楼层

上图是官方数据手册,说法比较扯蛋,什么太快了,就是端口慢,一般手册都是直接说延迟时间或斜率图的,然而宏晶只说两个周期……自己理解呗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 1家元 +8 收起 理由
家睦 + 8

查看全部打赏

回复 支持 1 反对 0

使用道具 举报

发表于 2019-4-30 13:10:07 | 显示全部楼层
xpicompany 发表于 2019-4-29 23:52
上图是官方数据手册,说法比较扯蛋,什么太快了,就是端口慢,一般手册都是直接说延迟时间或斜率图的,然 ...

内置的mos管不行吧,速度上不去。
回复 支持 反对

使用道具 举报

发表于 2019-4-30 16:36:56 | 显示全部楼层
1.7M的方波,其周期为588ns.按照楼主的思路,cpu需要在294ns时间内完成检测和输出这个整体的相应过程.别说是普通的低性能8位机,就是100MIPS级别的DSP也不会这么用.就算是勉为其难的完成这个时序,cpu也干不了别的事情了.

如果后级功率电路是E类放大器,可以用PFM的方式调节输出功率.
回复 支持 1 反对 0

使用道具 举报

发表于 2019-5-9 17:06:06 | 显示全部楼层
xpicompany 发表于 2019-4-29 23:52
上图是官方数据手册,说法比较扯蛋,什么太快了,就是端口慢,一般手册都是直接说延迟时间或斜率图的,然 ...

是的,这就是STC不行的一个证明。而且怀疑是和51的IO口设计有关,因为不同频率下1到2个周期的时长也是不同的,比如16MHz和1MHz。
回复 支持 反对

使用道具 举报

发表于 2019-5-9 17:20:57 | 显示全部楼层
如果可以的话,外挂一片D触发器。1.7MHz接D触发器的时钟输入,开关控制信号接触发器的输入端,输出就是你想要的信号,不会被剪切。
回复 支持 反对

使用道具 举报

发表于 2020-5-5 23:44:07 | 显示全部楼层
雾化器不是你那样做的,有专用的单片机,可以输出1.7M, 2.4M, 3.0M的PWM,并且频率可以微调,跟踪到雾化片的最佳谐振频率,雾化量大小是通过定时器控制PWM的开关,让PWM间歇工作,间歇的时间长,出雾量小,间歇时间短,出雾量大。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-13 07:17 , Processed in 0.390000 second(s), 16 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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