数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 8292|回复: 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 04:43:36 来自手机浏览器 | 显示全部楼层
这灯真漂亮能给个链接吗?
回复 支持 反对

使用道具 举报

发表于 2021-5-1 09:05:25 | 显示全部楼层
还在折腾AVR的是真爱啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 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:29:31 | 显示全部楼层
几年前折腾过pic的arduino,众说纷纭、褒贬不一,就没有继续玩了。手头剩余几百片pic,最近一看价格,果真是理财产品:lol:

打赏

参与人数 1家元 +20 收起 理由
cushion + 20 精彩回帖,几百片!

查看全部打赏

回复 支持 1 反对 0

使用道具 举报

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

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

使用道具 举报

发表于 2021-5-1 11:06:04 | 显示全部楼层
这是妖孽呀!这属于技术大拿级别的啦!
回复 支持 反对

使用道具 举报

发表于 2021-5-4 00:57:09 | 显示全部楼层
mark,玩AVR单片机的飘过,都是ICCAVR写程序然后直接烧写,还没用过BootLoader:lol:
回复 支持 反对

使用道具 举报

 楼主| 发表于 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-4 07:24:51 来自手机浏览器 | 显示全部楼层
技术流派,多谢分享。下载程序来学习学习。
回复 支持 反对

使用道具 举报

发表于 2021-5-5 10:58:29 | 显示全部楼层
路過圍觀學習學習
回复 支持 反对

使用道具 举报

发表于 2021-5-5 10:59:41 | 显示全部楼层
上锡膏,放阻容和芯片,用热风枪或加热平台吹,爽:victory::victory::victory:
回复 支持 反对

使用道具 举报

发表于 2021-5-5 12:06:32 | 显示全部楼层
200v高压氖灯,听上去有点危险的样子
回复 支持 反对

使用道具 举报

 楼主| 发表于 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 来搞。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-8-5 17:18 , Processed in 0.171600 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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