电动口罩电路图和源代码程序破解

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原理图是这样的:

电动口罩电路图和源代码程序破解_第1张图片

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

电动口罩电路图和源代码程序破解_第2张图片

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

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

电动口罩电路图和源代码程序破解_第3张图片

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

电动口罩电路图和源代码程序破解_第4张图片

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

电动口罩电路图和源代码程序破解_第5张图片

然后,程序下载成功。

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

电动口罩电路图和源代码程序破解_第6张图片

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

电动口罩电路图和源代码程序破解_第7张图片 怀疑输入频率不在范围内,开始计算程序产生PWM的频率,如下:

电动口罩电路图和源代码程序破解_第8张图片

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

电动口罩电路图和源代码程序破解_第9张图片

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

电动口罩电路图和源代码程序破解_第10张图片

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

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

电动口罩电路图和源代码程序破解_第11张图片

电动口罩电路图和源代码程序破解_第12张图片

设计电路图如下:

电动口罩电路图和源代码程序破解_第13张图片

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

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

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

电动口罩电路图和源代码程序破解_第14张图片

 比较类似于如下的波形:

电动口罩电路图和源代码程序破解_第15张图片

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

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

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

你可能感兴趣的:(c语言,PIC单片机,android,java,apache)