OpenMV4总算有了进展,自己内心的那份疑惑或者说好奇也终于有了一点明朗。前段时间画的OpenMV4今天已经可以运行HelloWord程序了,在此对前面的工作包含电路设计、驱动软件等相关方面自己遇到的问题做一个简单总结。
电路设计
在电路设计方面主要是参照官网的开源电路图,在这个基础之上加以修改。在修改过程中,我主要考虑的就是这个元器件在国内是不是很容易买到,或者它的封装是不是常见的封装形式。在原来的电路图基础之上,主要做了以下修改:
- 3.3V电压的产生由PAM2305AABADJ更改为常见的AMS1117-3.3;在这个过程中,我还对常用的5V转3.3V芯片做了一个简单的罗列,见下面表格.主要参考原有芯片的最大电流和OpenMV工作时的电流进行选择,根据OpenMV的手册,在器件带SD卡工作时的电流大约250ma左右,则综上可以选择常用的AMS117-3.3.
名称 | 最大电流 | 封装 |
---|---|---|
HT7533 | 100ma | SOT89 |
AMS117-3.3 | 800ma | SOT223 |
SPX1117M-3.3 | 1000ma | SOT223 |
XC6206P33 | 200ma | SOT23 |
MIC5219 | 500ma | SOT23-5 |
LP2985AIM-3.3 | 150ma | SOT23-5 |
PAM2305AABADJ | 1000ma | TSOT25 |
上面的几种封装中,其中最小的是SOT23,最大的是SOT223。
- 1.8V用于OV7725摄像头供电电压芯片由TPS231XX更改为AMS1117-1.8V。原因也很简单,TPS231XX属于可调电压芯片,需要外接反馈电阻才可以实现输出1.8V;而AMS1117-1.8V外围电路简单,市面上较常见。
- 所有的接插座子均由原有的2.54MM更改为1.25MM.目的在于减少模块的尺寸。
在设计之初参考别人大牛的作品时,总结出有以下几点需要注意的地方: - USB的D+ D-不需要接任何的电阻,因为STM32内部有阻抗匹配
- I2C要硬件初始化,所以要在SCL和SDA引脚接上拉电阻
- 5V电压要接芯片的PA9引脚,该引脚具有OTG-FS-VBUS功能
PCB设计
考虑到尺寸的需求和布线的方便,也借此机会实践PCB四层板的设计。顶层和底层为走线层,中间层为GND和VCC层。GND层在顶层之下。布线的大致流程为:首先根据元器件确定板子的大致尺寸信息,然后进行元器件的摆放,在摆放过程中,需要注意接口的方向和对称性,然后进行顶层和底层的布线,先将除了VCC和GND 的都连接好,最后利用打孔局部敷铜的形式连接VCC和GND。在此过程中需要注意以下几点:
- 打孔的孔不能只打一半的那种孔,所有的孔必须为通孔,否则嘉立创做不了
- 丝印的标识要采用图片+插件生成的形式,直接从别的PCB拷贝过来的发现乱码(3 7之类)
- 对于自己没有的封装或者原理图,可以选择 粘贴别的板子的器件,需要注意的就是在粘贴完成之后,将原理图中器件的编号要和PCB中封装的编号对应在一起。
- VCC层的敷铜面积或者外围应该小于GND层的外围,这么做可以阻止回流
- VCC和GND层采用的均是正片层,正片层就需要进行敷铜的操作
焊接与固件烧录
最近嘉立创推出4层板免费打印的活动是真香,四层板由于工艺的原因,生产周期相比于两层板来讲时间要多个2天左右。最近芯片的价格也是涨的迅猛,一篇STM32H743要65元,还要担心害怕买到的是假芯片。基本上器件都能买或者找的到,焊接也是一项挑战,最难焊的就是24pinOV7725接口。需要注意的一点就是不用上这么多焊锡。焊接好的成品图如下:
固件烧录
自己DIY买的STM32芯片是没有固件的,OpenMV如果需要运行是需要烧写固件的,对于新买的芯片常用DFU的形式进行烧录,方法步骤如下:
- 将BOOT引脚和3.3V引脚短接
- 然后将USB插上电脑,电脑会显示如下(只要显示DFU就说明当前芯片DFU连接成功)
- 在OpenMV的IDE中打开DFU烧录软件,选择下方的choose,选择固件,对应的固件也在IDE中,然后点击更新即可。
参考链接:
https://blog.csdn.net/qq_42748213/article/details/90579251
https://makermare.com/t/29.html
!!!注意注意的是以上这种方式适用于非V版的芯片,对于V版的芯片,会出现进度条到49%时停止更新,也就是固件通过这种方式是无法烧录的。通过不断的摸索和尝试,对于V版的芯片,采用STM32 Cube Programmer的方法,步骤为: - 去ST官网下载STM32 Cube Programmer,下载后安装软件,软件安装中会安装驱动,安装好的界面如下:
- 将芯片BOOT引脚和3.3V引脚短接,插入电脑,进入DFU模式,此时设备管理器显示如下:
- 依次选择USB-刷新-连接,使软件与芯片通过DFU的形式进行连接,参考图片
- 连接成功后如下图所示,之后选择Memory & File edition→选择Read→Open File,打开bin文件。
- 点击DOWNLOAD下载按钮,可以看到下方的进度条在变化,等待到100%。之后断开芯片,移除boot0和3.3V脚之间的杜邦线。
- 重新用USB连接OpenMV4和电脑,等待10秒使其完成自检并闪烁LED(我的是闪烁绿灯)。此时文件管理器和设备管理器都会把OpenMV4识别成一个U盘,说明DFU烧录成功,成功完成“恢复出厂设置”!
参考链接:https://blog.csdn.net/qq_36375203/article/details/105568044
运行第一个helloworld
在固件烧写完成之后,按照步骤,将OpenMV插入到电脑之后,打开OpenMVIDE软件,设备管理器应该会出现对应的端口,并且资源管理器会出现U盘,但是对于我设计的这版来讲,什么反应都没有,网上搜了很多的解决方案,最后将可能出现的方向定位到了电压上,不知道为什么我输入的电压是4.4V,而单片机供电的电压为2.7V,网上说不能低于3V供电,我想可能是因为供电电压过低,导致器件工作不正常。
找到方向后,就考虑什么导致供电电压偏低,我将USB至AMS1117-3.3的器件排查了一遍,可能的器件有保险丝和SS14二极管,之后将这两种元器件拆下,直接将USB输出的5V供给AMS1117-3.3v,拆掉所有的保险,我发现保险不仅具有保护作用,居然还有降压的作用。从新上电测试,芯片供电电压正常,设备管理器也显示出了端口,但是资源管理器不显示U盘,这时的端口一会有,一会没有。出现这种现象使用IDE软件进行擦除,发现可以正常的擦除和编写。在编写完成之后,上述问题解决,资源管理器正确弹出U盘。
点击连接,运行第一个程序,显示出的界面,至此,硬件实践完成!
总结
在设计过程中,可能会出现各种各样的问题,需要我们仔细专注去解决。目前对于为什么4.4V的输入还未解决,如果得不到解决,下一版中准备删除对应得元器件。后面准备使用PHTYON语言进行编程实践。并且总结第一版得缺陷,更新第二版OpenMV.由于第一版电压的问题,PCB文件就不分享给大家了,后续稳定后的第二版再分享给大家!