极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 108943|回复: 23

Arduino _MEGA328P-AU最小系统板制作

[复制链接]
发表于 2015-11-17 18:08:08 | 显示全部楼层 |阅读模式
Arduino _MEGA328P-AU最小系统板制作

历时2天,几经折腾。终于将MEGA328P-AU最小系统板调试正常了。下面分享我的制作经验。
期间所有用到的东西如下
70mm*50mm单面覆铜板   1块
MEGA328P-AU单片机   1块
16M无源贴片晶振   1个
22pF 贴片电容2个
1M贴片电阻1个
1K贴片电阻2个
10K贴片电阻1个
500mA自恢复贴片熔丝1个
0.1uF贴片电容2个
贴片LED灯2个
8位插接端子(针)4组
8位插接端子(座)4组
5位插接端子(针)1组
贴片按钮1个
Si2323DS 1个。这个是P-MOS管,用来做反接保护,当然也可以用二极管。
用到的设备和软件:
Altium Designer  PCB制图软件,设计原理图和PCB图
自家造的小雕刻机(打眼真心方便,别问我为什么不用它雕电路,实在是板小,线细,雕刻机加工效果不行)
负性感光油墨(其实现在某宝上有一种感光膜,看着挺不错,刮油墨是件痛苦的事)
胶片,显影剂,脱模剂,环保刻蚀剂等做PCB的原材料
USBISP下载器(这个尤为重要,因为空白的芯片需要烧写熔丝位和下载bootloader,必须用)
示波器(最好有,因为他能判断你的电路是否成功起振)
Arduino 的IDE软件。
差不多就这么多了。下面开始说过程:
1.        制版
绘制原理图,如下:

PCB走线:

下面的蓝色线是实在走不过去了,所以打算背面飞线,留了过孔。
然后输出负片(如果你的感光油墨是正性的就要输出正片)并打印

显影

刻蚀完成后检查

这是我已经打好洞的。
然后焊接

发现有的地方有锡,有的地方没有,干脆就都给镀上,焊工一般。呵呵
然后重头戏了。
给板子供电。示波器看晶振,没起振。。。。。。到处检查电路,没发现什么问题。后来到处找资料,才知道新的芯片默认是内部晶振,外部是检测不到的。需要对熔丝位进行初步设置才行。
先如下图连接线路:

这个是ISP的标准接口。MOSI接单片机11。MISO接12。SCK接13。RESET接单片机RESET口。电源不用说了。
接好线,打开编程器软件:

选择芯片Atmega328P。点RD。校验通过就OK了
然后选熔丝:如下

这个熔丝是现在默认的,可以读取下,新芯片一般都是这样。
至于要怎么设置具体的熔丝位,我是在arduino安装目录下的\hardware\arduino\avr里面,有个boards.txt的文件。用记事本打开可以找到这个

其中
uno.bootloader.low_fuses=0xFF
uno.bootloader.high_fuses=0xDE
这就是需要我们配置的。
0xff  转换为二进制为 1111  1111,也就是全部为1。
0xde 转换为二进制为 1101  1110。怎么用后面说。

如下选择。就发现下面的熔丝低位为FF了,高位为DE了。后面扩展什么的不用管了
具体软件不一样,是打勾为1还是取消为1需要看情况,千万别弄错了,弄错了会出大事的。
好了,再次检查,写熔丝。成功后要确认可以再读取一次,发现还是FF DE就可以了。
现在用示波器测晶振的两个引脚,果然起振了。
现在开始烧录bootloader。选择  调入flash(调入之前你的系统里要先确认有arduino的IDE软件)在arduino安装目录下的
…\hardware\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex文件。我试着用过ATmegaBOOT_168_atmega328_pro_8MHz.hex,貌似不行。所以不纠结了,选择ATmegaBOOT_168_atmega328.hex就对了。

勾选如上图4个项,别点别的。然后自动运行写入bootloader。成功了之后会发现13脚的那个LED灯会一闪一闪,表示好了,现在可以用USB转TTL的线插上直接给板子用ARDUINO的IDE写程序了,随便写个串口输出模拟量的程序,下载,成功。打开串口有数据,OK,大功告成。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2015-11-17 18:11:35 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-17 18:19:00 | 显示全部楼层
电路图自己发现个问题,SI2323DS应该是1,2脚对换下。我说做PCB的时候怎么还要重新设置引脚呢!
回复 支持 反对

使用道具 举报

发表于 2015-11-17 22:44:36 | 显示全部楼层
nb的一个说,先膜拜
回复 支持 反对

使用道具 举报

发表于 2015-11-18 14:09:39 | 显示全部楼层
厉害,貌似各种工具全能啊!~~
回复 支持 反对

使用道具 举报

发表于 2015-11-20 12:58:00 | 显示全部楼层
工具齐全啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-20 13:51:25 | 显示全部楼层
补坑,今天在自己另外做的带电源的板子上实验328P-AU发现一个问题。是上面没想到的,所以特此来补坑。
首先熔丝位设置要该变下。低位:FF,高位:DA,扩展:05.具体设置方法如下图:

为什么扩展位要加05呢,意思是设置最低电压2.7V左右。我之前没设,发现有时候单片机会丢失bootloader。一直找不到原因,原来是电源掉电的时候没设置最低停机电压导致的。所以要设置。还有如下图:

Arduino Duemilanove or Diecimila的熔丝位为
diecimila.bootloader.low_fuses=0xFF
diecimila.menu.cpu.atmega328.bootloader.high_fuses=0xDA
diecimila.menu.cpu.atmega328.bootloader.extended_fuses=0x05
刷的固件为:
diecimila.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
之前所说的有 一点小失误,特此说明!
最后上一张半成品:(DIY的自平衡车控制板,USB micro搞反了,飞线了{:soso_e106:} ,P-MOS反接保护和3.3V变压芯片引脚都搞错了。唉!!!!粗心惹的祸)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2016-1-21 15:03:08 | 显示全部楼层
楼主你好,我自己也只做过几片最小系统,晶振都是直接起振的,并不需要设置什么熔丝位啊~元件焊好,直接上电刷bootloader,然后直接就可以用USB串口下载程序了。什么情况???
回复 支持 反对

使用道具 举报

发表于 2016-1-28 08:39:19 | 显示全部楼层
谢谢楼主,我刚看到,正好这几天准备做UNO板子,很有参考意义。谢谢!
回复 支持 反对

使用道具 举报

发表于 2016-4-2 23:42:41 | 显示全部楼层
做个记号先,好好学习。
回复 支持 反对

使用道具 举报

发表于 2016-5-9 10:37:04 | 显示全部楼层
厉害。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2016-5-9 17:08:31 | 显示全部楼层
工欲善其事必先利其器
回复 支持 反对

使用道具 举报

发表于 2016-5-9 17:12:04 | 显示全部楼层
收藏一下,以后玩玩
回复 支持 反对

使用道具 举报

发表于 2016-6-4 21:57:22 | 显示全部楼层
厉害,膜拜!以前自己做过UNO的,但是实在无法和楼主的比较!
回复 支持 反对

使用道具 举报

发表于 2016-6-5 19:41:01 | 显示全部楼层
牛逼,收藏下!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-28 19:15 , Processed in 0.044188 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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