烧录USB转I²C单片机固件
这个需要用到Microchip的烧录器,如图中的PICKit3
可以将USB转I²C上的烧录口1-5引脚焊接杜邦线,让它能插入PICkit烧录器中。第6引脚为NC,无作用,可以不连。
安装MPLAB IPE:http://microchipdeveloper.com/ipe:installation 安装时可只勾选8 bit MCUs,减小安装体积
安装好后Family选择All Families,Device选择PIC18F14K50,Tool选择你购买的烧录器型号,Hex File选择USB转I²C模块的固件(Hillstar_DK_I2C_TO_USB_BRIDGE_v21_r31_0x42.hex),这个固件可在这里下载https://ww1.microchip.com/downloads/aemDocuments/documents/HMID/ProductDocuments/BoardDesignFiles/ATUSB-GESTIC-PCB_Documentation_1.zip
接着,点击Program就会将固件烧录到USB转I²C模块中
烧录完成后,拔掉烧录器,直接用USB连到USB转I²C模块,它会亮绿灯,就代表它的固件已经OK啦。其中一个灯常亮,另一个快闪,就代表已与电脑通讯,否则可能只供电成功,USB的D+ D-没有焊接好。
用USB转I²C模块给传感器芯片写入固件
USB转I²C模块准备就绪后,接下来就可以给传感器芯片(MGC3130)写入固件了
先下载Aurea软件: https://www.microchip.com/en-us/products/touch-and-gesture/3d-gestures/gestic-technology-basics
将USB转I²C模块与传感器PCB连接。我设计的PCB有两个连接器,一种是FPC软排线、另一种是PH2.0 端子线,它们的引脚、功能是完全一样的,选择其中一种方法即可。
这里我选择用PH2.0-6P-同向端子线,因为可靠性更好,用FPC有遇到过接触不良的情况。
连接好后,打开Aurea软件,就能连接上了。出厂的芯片都是无固件的,所以要先写入一个固件。首先进入Setup —— 3D Firmware Update
选择MGC3130出厂固件(StockFW),该文件在Aurea软件安装目录底下有,请见图中的路径示意
点击Flash Fimrware,最后出现successful就代表成功
如果该步骤失败,通常是USB转I²C模块 与 传感器PCB(MGC3130)之间接触不良,请注意接线是否正确,可用万用表测量是否焊接不良。作者在这过程中遇到过偶发性的失败,原因是使用FPC排线连接,接触不良,最后改用了PH2.0线连接就没出现过了
其实到这里,它已经能正常工作了,下面是进行一些配置,它才能正常与现有的Arduino库通讯。进入3D parameterization
重新配置各方向(North、East、South、West、Center)与 RX的映射(如图所示),这与原理图是匹配的,点击右上方的Flash进行保存
点击左侧的Extende —— Firmware Selection,还是选择刚刚的固件,点击 Start Parameterization
完成后,左侧会多出一些列表,选择 System Start-Up,将DSP Status改成 Off,点击右上角Flash进行保存
到这里,所有功能都正常了🎉
如果想进一步微调,将传感器远离手,静止放置一会,然后点击Autoparameterization,它会自动调参,记得点Flash保存
上述Extended列表里还有更多的参数,如划圈圈的阈值、感应区域的宽高、最大最小值等参数各位可以参照文档慢慢研究,我觉得默认的已经很好了,所以也只是瞎折腾了一会,并没有用出多大的区别。
到这里,基本上所有关于制作此手势传感器的图文教程就完结啦,感谢你的支持。如有需要,我可以再写一篇介绍Arduino环境下单片机的对接使用,以及我开源的那些DEMO示例如何使用。如有疑问,欢迎留言。
暂无评论内容