数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 8395|回复: 34

[Arduino] 纯手工UNO折腾手记:手焊基板+手写Bootloader上下位机(原创)

  [复制链接]
发表于 2021-5-1 02:18:35 | 显示全部楼层 |阅读模式
最开始折腾 Arduino 是从 UNO R3 开始的,这块主板使用 ATmega328p,性能在 AVR 当中属于中等。
由于 Arduino 有着良好的生态系统,各种扩展板配套传感器种类丰富,因而颇有一番搞头。

例如我另个帖子折腾 TP4056:  https://www.mydigit.cn/forum.php?mod=viewthread&tid=250916

然而随着折腾的深入,一块 UNO R3 主板慢慢不够用了,每次新项目都要拆除前一个非常麻烦。
就算用了华强北的山寨货(CH340版本),在今年芯片涨价的大环境下每套也要二三十,实在是炮灰不起。
如果再加上调试手滑的维修成本,更是无底洞。

这次把之前纯手工练习 UNO R3 的过程发来,供大家参考。


【焊接UNO-R3主板】
在这个网络发达的时代,很容易搞到 PCB 空板。可以直接购买,也可下载开源图纸直接打样。
总之我选择了这么套 CH340G + 双贴片晶振的主板,大致就是华强北山寨货的原型。

空板正面:


空板背面:


PCB 焊盘是 0805 尺寸,手焊 0603 零件整好顺手。先把电阻电容搞上:


某些位置零件比较密集,需要思考烙铁每一步的操作空间。金手指保护下未焊接焊盘,把贴片电解搞上:


之后把密集区域统统搞定,358运放、1117稳压:


至此可以通电检查下 5V/3.3V 电源轨,确保供电正确。之后搞上 CH340G、MEGA328P:


最后焊上晶振以及各路插件:






通电看看效果,恩不错灯会亮:




【编写Bootloader】
由于 MEGA328 是全新空白片子,需要烧录程序才可以工作。
标准的 MEGA328 需要使用 6-PIN 下载座才能烧录,如果配合上 Bootloader 则可实现 USB 方口下载。

然而我并不喜欢 Arduino 官方标准的 Bootloader,原因如下:
a. 只能使用 Arduino IDE 上传 ino 固件,不支持 HEX 格式烧录;
b. 就算用 avrdude 也是操作复杂,很容易 Bootloader 无响应;
c. 无法访问 eeprom 区域;
d. 容易自宫,导致所谓“掉固件”。

于是索性用 ICCAVR 自己编写一套 Bootloader,运行自定义协议:



烧录过程勾选 BLB11=0 熔丝,限定 SPM 作用范围,确保 Bootloader 永不自宫:



附上 Bootloader 的 HEX 及源码,供大家参考:


【编写PC下载器】
既然 Bootloader 运行自定义协议,因而 PC 端需要一个软件界面实现烧录。
对于 Arduino,只需导出 HEX 文件即可完成烧录引导;
对于其他 IDE(例如ICCAVR),同样编译出 HEX 文件即可烧录。

于是 MFC 定制之,运行效果如下:



附上 PC 端上位机 EXE 及主要源码,供大家参考:


【运行效果】
拿出一套盾形 UNO 升压板,配合堆叠式锂电单元,成功驱动了200v高压氖灯:



程序利用手焊的 UNO-R3 输出 PWM 波形,带动三极管、电感实现 BOOST 升压。
调整 PWM 占空比即可调节输出电压,实现氖灯灰度驱动。顺手写个呼吸灯,运行效果如下:




------------------------------------------------------------------------------------------------------

以上,纯手工折腾了一套 UNO-R3 系统:手工焊接 UNO-R3 基板,并编写了Bootloader上下位机实现固件引导。

配合一套堆叠式升压板驱动高压氖灯,实现了带灰度的呼吸灯效果,系统运行流畅。

最后祝大家 DIY 愉快!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 5家元 +150 收起 理由
chwqq521 + 30 原創內容
200birds + 20
cushion + 20 原創內容
家睦 + 60
jf201006 + 20 優秀文章

查看全部打赏

 楼主| 发表于 2021-5-1 09:54:36 来自手机浏览器 | 显示全部楼层
触景情伤 发表于 2021-5-1 04:43
这灯真漂亮能给个链接吗?

以前入的二手货,搜索信号氖灯能有。这个需要高压才能工作
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-1 09:55:52 来自手机浏览器 | 显示全部楼层
renpeng009 发表于 2021-5-1 09:05
还在折腾AVR的是真爱啊

arduino嘛,底板可以换stm32或者esp8266,这个兼容的生态很爽
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-1 09:56:51 来自手机浏览器 | 显示全部楼层
jf201006 发表于 2021-5-1 09:43
非常不错 。。。

感谢捧场!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-1 10:40:02 | 显示全部楼层
jpdd521 发表于 2021-5-1 10:29
几年前折腾过pic的arduino,众说纷纭、褒贬不一,就没有继续玩了。手头剩余几百片pic,最近一看价格,果真 ...

现货单片机几乎都成了理财产品,就连 tiny13 这样的都涨了好几倍
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-4 01:24:39 | 显示全部楼层
40560335 发表于 2021-5-4 00:57
mark,玩AVR单片机的飘过,都是ICCAVR写程序然后直接烧写,还没用过BootLoader ...

ICCAVR 还可以写 Bootloader,就是给 AVR 定制的功能
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-4 01:25:10 | 显示全部楼层
tigerzq 发表于 2021-5-1 11:06
这是妖孽呀!这属于技术大拿级别的啦!

感谢捧场!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-5 17:39:46 | 显示全部楼层
duxingkei 发表于 2021-5-5 10:59
上锡膏,放阻容和芯片,用热风枪或加热平台吹,爽

手头临时只有 936 焊台,就凑合着搞了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-5 17:41:55 | 显示全部楼层
digital2Fox 发表于 2021-5-5 12:06
200v高压氖灯,听上去有点危险的样子

氖灯自身只有 60-80v,但是加上限流电阻就得 200v 才比较亮堂了。
这个还好,400v 0.1uF 的 CBB 就可以工作。

带过盖革管就知道费劲了,那个要 380-420v,我一般用 630v 2uF 的 CBB 来搞。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-6 21:02:41 来自手机浏览器 | 显示全部楼层
电脑垃圾佬 发表于 2021-5-6 10:00
身为一名焊接工对这个焊点还有焊油真的是想动手修修焊点和把焊油清理干净 ...

没用焊油,那是松香
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-7 21:40:56 | 显示全部楼层
adsl_95 发表于 2021-5-7 21:14
arduino官方的bootloader有没有可能不掉固件呢?..........

勾选 BLB11 就行了,前提是你会用工具设定熔丝
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-8 23:15:26 | 显示全部楼层
adsl_95 发表于 2021-5-8 22:40
bootloader还用官方的就行是吗?

可以的,只是上传代码的话,用官方再额外 BLB11 就很好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-9 14:12:11 | 显示全部楼层
adsl_95 发表于 2021-5-8 23:20
还有两个问题想问您一下.
一个是,那个号称99%兼容的LGT8F328P能不能用设置熔丝位方法不掉BL?
第二个是,因 ...

LGT 的单片机,在下载/调试上和标准 AVR 有区别,调试口都有类似于 SWC/SWD 这样的信号名了。
具体是否支持 BLDR,支持到哪种程度也没去深研究;

关于掉固件,大多数是在电源不稳、RST 信号不稳的时候出现的,原因大多是程序跑飞意外擦除了 ROM,
如果擦除区域触及了 BLDR 就自宫了,传说中的 Arduino 掉固件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-10 20:26:09 | 显示全部楼层
adsl_95 发表于 2021-5-10 20:22
lgt支持bldr.有现成的.
有时间我自己试一下好了.刚好有.

直接用烧写器录入HEX的,如果电源、复位处理不好一样会掉。

因为系统 ISP 过程也是在 RESET 过程中引导的,理论上和 BLDR 同一个原理。
系统干扰后跑飞到这一段也不是不可能

打赏

参与人数 1家元 +5 收起 理由
adsl_95 + 5 熱心助人

查看全部打赏

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-5-17 10:31:04 | 显示全部楼层
beiling 发表于 2021-5-17 10:19
现在立创都找不到uno的开源了。。。。下架了吗

去 Arduino.cc 官网下载,这东西本来就是老外开源的。

拿到 gerber 文件就可以打样 pcb
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-9-17 08:02 , Processed in 1.794003 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表