1、项目需求:

使用无刷电机,电路板能控制电机三挡调速,电池采用3.7V锂电池,可给锂电池充电,充电口为安卓充电口或TYPEC口,当电机未启动的时候,MCU处于休眠模式,当长按按键3秒后,电路板上电,电机开始转动,然后每按一次按键档位加1,总共1、2、3档,当到3档后再按一次按键到1档,当再长按按键3秒后,MCU进入休眠模式。

2、设计过程

(1)一开始在51单片机上测试PWM波控制直流电机,程序使用例程,例程中用了2个定时器,定时器1和定时器2来产生PWM波。拆开了某厂家的电动口罩后,由于电路板小,放在电动口罩里,所以采用51单片机肯定是不合理的,某厂家的MCU上面没有写型号,经过在网上搜索后,初步选型用PIC的单片,选择的型号是PIC12F629。

查看PIC12F629的数据手册后,看到只能用一个定时器中断来产生PWM波,于是网上搜索一个定时器产生PWM波的程序,在CSDN上还真找到了一个,于是修改程序在51单片机开发板上运行,可以。

然后,在淘宝上找到了一个PIC12F629的最小系统开发板,安装PIC编辑环境软件MPLAB IDE,查看新建工程教程后,搜索了PIC单片编程教程在哔哩哔哩上,然后把单定时器PWM波程序移植到PIC环境下,在PIC小开发板上运行,可以控制直流电机,测试PWM信号电压为三挡,正常。

(2)接下来开始设计原理图和PCB板,一开始某厂家的电路板上MCU、电机驱动芯片、电池充电芯片的型号都是被抹去的,后来联系到了厂家,又买来了两三个口罩电路板,用来测试大点容量锂电池的运行时间。买回来后,也采购了两个厂家的1000mah的锂电池,接上后运行7、8个小时是可以。

无意中看这次采购回来的电路板,上面的电机驱动芯片和锂电池充电芯片是有型号的,分别是APX9358和4054,然后查看了他们的数据手册,觉得自己设计可行。

然后,反抄了厂家这次的原理图,原理图也基本看懂了。抄好原理图,就在立创EDA上画出原理图,并且了解到了立创EDA的方便之处,就是里面带有很多的PCB封装,制作PCB电路板能够省去APX9358和4054的封装尺寸的制作。

在立创EDA上画好原理图,然后生成了PCB图,安装好布线工具,开始自动布线,布线后查看下单流程,下PCB单,交给嘉立创制作5块PCB样板,是免费的。

第一版APX9358驱动芯片的PCB原理图是这样的:

然后查看了买的PIC小系统板的下载程序接口,添加上了下载程序接口,之前在淘宝上特买了下载工具PICkit3,下载接线如下:

待PCB电路板回来后,同时也在立创商城和淘宝上买好了元器件,把元器件焊接上去,考虑到APX9358驱动芯片的封装是PQF的,还买了风枪把芯片吹上去,这是第一次使用风枪,焊接好后总感觉风枪吹的芯片可能有虚焊,因为芯片管脚上几乎没有粘锡。然后,程序烧写进MCU,烧写成功。

这里有一个小曲折,一开始程序怎么也下载不进去,在maplab上能连接PICkit3成功,搜索了不少教程和问题,一直报错:Target Device ID (00000000) does not match expected Device ID (00000f80).百度后有说是maplab设置有问题,重新设置了也不行,有说是下载线接的有问题,重新查看买的最小系统板的电路图,如下:

发现PGC、PGD应该接第6、7管脚,而原理图却接成了第5、6管脚。如下图:

所以一直识别不到MCU设备,重新引出了两根线,如下图:

然后,程序下载成功。

焊接上在淘宝上买的三相小电机后,三相电机的接线图如下:

电机不转,测量PWM信号,三挡电压信号是有的1V、2.56V、4.67V。于是,问了朋友,有说需要查看驱动芯片的数据手册,排查输入的PWM信号频率是否符合芯片手册,截图如下:

 怀疑输入频率不在范围内,开始计算程序产生PWM的频率,如下:

设置计数器的初值为很大后还是不行,还购买了示波器,测量PWM的频率,电机输出的波形等,当把PWM输入的频率调到最大2.3Khz了,电机还是不转,PWM的波形如图:

某一相电机输出的波形如图:

完全是无效的干扰信号,即也就是没有电机信号输出。这样,调试陷入了死胡同。问朋友也都不知道。重新焊接了两个板子,还都是这样,摆弄了大约几个星期,找不来其他的替代芯片,qq群里也没有人能提出好的方法把这个问题解决掉。

(3)无奈之下,我准备把三相电机换成直流电机试试,但这是与设计不符的,只当实验了。选择了驱动芯片BE6208,查看了数据手册,如下:

设计电路图如下:

焊接好后调试,电机也能转,但是接线不是料想的那样。

(4)后来,又在抖音上搜到了三相驱动芯片MS39549,数据手册查看来说是可行的,但是芯片在立创商城和淘宝上都没有卖,于是百度问代理也没有,说是这个芯片还没有生产,又问了生产芯片的公司,通过发邮件,后来有电话回复了,价格是4元一个,他们免费发过来10个样片。

焊接好后,调试,下载程序,发现又是Target Device ID (00000000) does not match expected Device ID (00000f80),这次没有想是5、6、7引脚接错的事,因为自然以为电路图是在第二版的基础上修改,测量各个引脚的连接情况都是通的,想着这个芯片白焊了,还得重新焊接一个,还不保证是不是电路本身有问题,还是芯片有问题,理论上这两个应该是没问题的。最后没招了,根据之前的问题,基本锁定是下载线的接线有问题,偶然扫了一眼电路图,发现接线口还是5、6口,而应该接6、7口,彻底无语,又是犯了这个错误。接上两根引线,下载程序,下载成功,但是电机不运行。应该是下载的上次直流电机的程序,又重新编译了三相电机的程序,下载后,电机开始转动,连接上示波器查看了驱动芯片三相电机的输出波形,如下:

比较类似于如下的波形:

这里这次电机只接了U、V、W三根线对应电路图的A、B、C,没有接公共线,因为没有公共线输出就不用接,电机转动成功,三挡调速也是OK。接上3.7V的锂电池,电机也能转动,驱动芯片最小电压4V的要求实际上也能使用。

3、最终的电路图和程序代码见下载链接:

电动口罩电路图和程序,为软硬件调试通过的-C文档类资源-CSDN下载

电动口罩电路图和源代码程序破解相关推荐

  1. [论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  2. ..NET程序破解仅需三步

    近期开发公司商城,为了简化开发用了V5Shop网店程序.本来预计一个月完工,哪知道出现一堆问题大大增加了我的工作量(早知道还不如全部自己写了). 破V5Shop真不地道,说是免费的,结果程序一大堆问题 ...

  3. 【移动安全实战篇】————3、Android应用程序破解入门

    Android软件越来越多的走向免费加广告模式了,但在我们日常应用中,还是不乏一些收费应用,一部分通过Market收费下载,另一部分将收费部分放到了软件的实现中,我们今天要讨论的就是后者,就我见到的一 ...

  4. 浅谈JAVA程序破解(原创)

    浅谈JAVA程序破解 作者:舵手 申明:如转载请保证文章的完整性以及出处 最近对JAVA程序的破解比较感兴趣,拿几个行业软件练了一下手,略有心得,拿出来与菜鸟分享!注意只是一点心得, 本文并不涉及具体 ...

  5. 黑客攻击-程序破解(1)

    文章目录 一个简单的程序 可执行文件生成过程 预处理过程 编译 汇编过程 链接过程 一步到位 破解test程序 运行程序 程序破解 Radare2 查看程序信息 破解之旅 验证 Rasm2 web页面 ...

  6. 浅谈JAVA程序破解

    浅谈JAVA程序破解 http://www.blogjava.net/galaxyp/archive/2006/04/19/41833.html 作者:舵手 申明:如转载请保证文章的完整性以及出处 最 ...

  7. 电动汽车整车控制器 VCU 代码原理图资料 电动汽车整车控制含canbootloader 基于飞思卡尔MC9S12XEP100整车控制器 VCU方案

    电动汽车整车控制器 VCU 代码原理图资料 电动汽车整车控制含canbootloader 基于飞思卡尔MC9S12XEP100整车控制器 VCU方案 1:C源文件,底层驱动+控制策略 2:程序变量表格 ...

  8. 《低代码PaaS驱动集团企业数字化创新白皮书》-平台化加低代码提供破解之道(2)

    平台化加低代码提供破解之道 低代码向业务的赋能:以效率和创新为核心,提升组织效率,促进创新,优化体验 通过IDC对大型企业的调研发现,当前拥有100个及以上应用数量的企业已经高达70%:IDC预测 , ...

  9. java太阳系_Java太阳系小游戏分析和源代码

    Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...

最新文章

  1. 金蝶中间件部署报栈溢出_京东618压测时自研中间件暴露出的问题,压测级别数十万/秒...
  2. 用ASP.NET建立一个在线RSS新闻聚合器(3)
  3. 看下巴识心情,这个AI项链挂胸前也能识别面部表情
  4. 如何使用matplotlib绘制一个函数的图像
  5. 搬运机器人举杯贺所需的条件_智能搬运机器人比赛规则
  6. 【数字逻辑设计】卡诺图
  7. 同步和异步概念(由DZW前端框架引发的百度地图api无法加载问题总结)
  8. python出租车收费_使用Python分析纽约出租车搭乘数据
  9. 释放QQ占用的C盘空间
  10. 传奇修改数据库后服务器异常,DBserver提示物品数据库加载错误的解决方法
  11. 深扒Mobileye—与特斯拉分手,被英特尔收购,现在又成了蔚来的救星?
  12. 谷歌浏览器,如何不用翻墙,下载插件?
  13. 用python根据最新的汇率,假设你要出国留学要换外币,输入一定数量的人民币,比如1000元人民币, 按照中国银行的现钞卖出价,输出可换到对应的加元和澳元分别是多少。
  14. 什么是 A 轮融资?有 B轮 C轮么?
  15. 小游戏正在毁灭微信群聊(文中有福利)
  16. JAVASCRIPT精彩200例
  17. ssl证书是什么,ssl证书有什么作用
  18. matlab根据根求多项式,matlab求解多项式的根
  19. 转贴:网友【原创·教程】 SRT外挂字幕时间轴调整及合并中英文同步字幕制作方法
  20. Nginx配置支持mp4视频流播放,超简单

热门文章

  1. WPS2019教育版和EndnoteX9关联
  2. 上传文件 java_JAVA文件的上传与访问
  3. 中科院声学所ZJ-3型压电测试仪
  4. java统计在线人数并退出_统计在线人数以及在线人信息
  5. 完美解决Pytorch在Pycharm没有代码提示的问题
  6. 【游戏建模】3DMAX插件安装与详细说明
  7. word中三线表的制作(及续表的制作)
  8. 有照片换发型的软件吗?看完这篇文章就知道了
  9. ciscn_2019_en_2
  10. Windows中安装GCC教程