OpenMV实践总结01:HelloWorld

本文详细记录了作者DIY OpenMV4的过程,包括电路设计、PCB制作、焊接、固件烧录等步骤。在电路设计中,作者修改了电源管理和接口规格,确保元器件的易购性和实用性。在PCB设计中,采用了四层板并注意了关键点的布局。焊接和固件烧录部分,作者遇到了DFU烧录问题,最终解决了V版芯片的固件烧录。在运行HelloWorld程序时,发现电压问题影响了设备识别,通过排查和修改,成功运行了程序。
摘要由CSDN通过智能技术生成

OpenMV4总算有了进展,自己内心的那份疑惑或者说好奇也终于有了一点明朗。前段时间画的OpenMV4今天已经可以运行HelloWord程序了,在此对前面的工作包含电路设计、驱动软件等相关方面自己遇到的问题做一个简单总结。

电路设计

在电路设计方面主要是参照官网的开源电路图,在这个基础之上加以修改。在修改过程中,我主要考虑的就是这个元器件在国内是不是很容易买到,或者它的封装是不是常见的封装形式。在原来的电路图基础之上,主要做了以下修改:

  • 3.3V电压的产生由PAM2305AABADJ更改为常见的AMS1117-3.3;在这个过程中,我还对常用的5V转3.3V芯片做了一个简单的罗列,见下面表格.主要参考原有芯片的最大电流和OpenMV工作时的电流进行选择,根据OpenMV的手册,在器件带SD卡工作时的电流大约250ma左右,则综上可以选择常用的AMS117-3.3.
名称最大电流封装
HT7533100maSOT89
AMS117-3.3800maSOT223
SPX1117M-3.31000maSOT223
XC6206P33200maSOT23
MIC5219500maSOT23-5
LP2985AIM-3.3150maSOT23-5
PAM2305AABADJ1000maTSOT25

上面的几种封装中,其中最小的是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层采用的均是正片层,正片层就需要进行敷铜的操作
    image.png

焊接与固件烧录

最近嘉立创推出4层板免费打印的活动是真香,四层板由于工艺的原因,生产周期相比于两层板来讲时间要多个2天左右。最近芯片的价格也是涨的迅猛,一篇STM32H743要65元,还要担心害怕买到的是假芯片。基本上器件都能买或者找的到,焊接也是一项挑战,最难焊的就是24pinOV7725接口。需要注意的一点就是不用上这么多焊锡。焊接好的成品图如下:
外观01.jpg
外观02.jpg

固件烧录

自己DIY买的STM32芯片是没有固件的,OpenMV如果需要运行是需要烧写固件的,对于新买的芯片常用DFU的形式进行烧录,方法步骤如下:

  1. 将BOOT引脚和3.3V引脚短接
    微信图片_20210831204134.jpg
  2. 然后将USB插上电脑,电脑会显示如下(只要显示DFU就说明当前芯片DFU连接成功)
    image.png
  3. 在OpenMV的IDE中打开DFU烧录软件,选择下方的choose,选择固件,对应的固件也在IDE中,然后点击更新即可。
    image.png
    image.png
    image.png
    参考链接:
    https://blog.csdn.net/qq_42748213/article/details/90579251
    https://makermare.com/t/29.html
    !!!注意注意的是以上这种方式适用于非V版的芯片,对于V版的芯片,会出现进度条到49%时停止更新,也就是固件通过这种方式是无法烧录的。通过不断的摸索和尝试,对于V版的芯片,采用STM32 Cube Programmer的方法,步骤为:
  4. 去ST官网下载STM32 Cube Programmer,下载后安装软件,软件安装中会安装驱动,安装好的界面如下:
    image.png
  5. 将芯片BOOT引脚和3.3V引脚短接,插入电脑,进入DFU模式,此时设备管理器显示如下:
    image.png
  6. 依次选择USB-刷新-连接,使软件与芯片通过DFU的形式进行连接,参考图片
    image.png
  7. 连接成功后如下图所示,之后选择Memory & File edition→选择Read→Open File,打开bin文件。
    image.png
    image.png
  8. 点击DOWNLOAD下载按钮,可以看到下方的进度条在变化,等待到100%。之后断开芯片,移除boot0和3.3V脚之间的杜邦线。
    image.png
  9. 重新用USB连接OpenMV4和电脑,等待10秒使其完成自检并闪烁LED(我的是闪烁绿灯)。此时文件管理器和设备管理器都会把OpenMV4识别成一个U盘,说明DFU烧录成功,成功完成“恢复出厂设置”!
    image.png
    参考链接: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盘。
点击连接,运行第一个程序,显示出的界面,至此,硬件实践完成!
image.png

总结

在设计过程中,可能会出现各种各样的问题,需要我们仔细专注去解决。目前对于为什么4.4V的输入还未解决,如果得不到解决,下一版中准备删除对应得元器件。后面准备使用PHTYON语言进行编程实践。并且总结第一版得缺陷,更新第二版OpenMV.由于第一版电压的问题,PCB文件就不分享给大家了,后续稳定后的第二版再分享给大家!

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值