动手焊一个自己的 Arduino
来自Jack's Lab
目录 |
1 准备材料
从早期的 Arduino 入手相对容易,本文以 2009 的版本 Arduinio Duemilanove 为例
- 空 PCB 板(可以拿官方的图直接给厂家打板或者直接 taobao 买现成的,5 元左右一片)
- 主 MCU,ATMEGA 328p,DIP 封装
- USB 转串口芯片,FT232RL
标识 | 元件 | 规格 | 封装 | 数量 | 单价 |
R4,R5,R6,R7,R8,R9 | 贴片电阻 | 1K | 0805 | 6 | |
R1,R10,R11 | 贴片电阻 | 10K | 0805 | 3 | |
R2 | 贴片电阻 | 100 | 0805 | 1 | |
C2,C3 | 贴片电容 | 22pF | 0805 | 2 | |
C1,C4,C5,C8,C9, C10,C11,C12,C13 |
贴片电容 | 100nF | 0805 | 9 | |
C6,C7,C14,C15 | 贴片铝电解电容 | 25V 100uF | 6mmx7mm | 4 | |
Q216MHz | 晶振 | 16MHz | DIP | 1 | |
IC5 LM358D | 运放 | LM358 | SOP8 | 1 | |
T1 NTD2955 | MOSFET | 2955 | SOT223 | 1 | |
IC4 | 贴片三端稳压管 | AMS1117 5.0V | SOT223 | 1 | |
T2 | 贴片三端稳压管 | AMS1117 3.3V | SOT223 | 1 | |
F1 500mA | 贴片 500mA 自恢复保险丝 | 501L | 1 | ||
D1 | 贴片二极管 | M7 | SMA/SMB/SMC | 1 | |
+RX,+TX,+L13,PWR | 贴片 LED | 0805 | 4 | ||
DC21MMX | 3.5 电源母插 | 1 | |||
X4 | 方口USB母插 | 1 | |||
IC1 | 28Pin DIP 窄座 | 1 | |||
S1 RESET | 轻触开关 | 6mmx6mmx5mm | x | ||
2.54mm 插针插座 | x | ||||
Testing |
2 焊接步骤
遵循先小后大的原则,尽量不要让已焊上的元件影响焊接后来的元件。先焊小的贴片元件,最后焊大的部件比较合适。
焊完后的最终效果:
3 硬件检查
焊接完成后,要检查一下是否有虚焊、短路等。没有的话就可以通电测试
检查供电电压是否正常,如有元件发烫,应立即断电,并重新检查电路
4 硬件功能测试
主要验证 FT232RL 的 RX, TX, DTR 这三条连接 MCU 的 TX, RX, RESET 是否工作正常
MCU 是否能正常运行
可用如下程序直接烧写入 MCU 来验证:
void setup() { Serial.begin(9600); pinMode(A0, OUTPUT); } void blink() { digitalWrite(A0,HIGH); delay(800); digitalWrite(A0,LOW); delay(800); } void loop() { if(Serial.read() == 'h') Serial.println("Hello"); else Serial.println("Heart beats!"); blink(); }
因为板子自带 FT232RL,可直接如下连线即可:
4 (RI) --> RESET (RST) 3 (DCD) --> MOSI (11) 2 (DSR) --> SCK (13) 1 (CTS) --> MISO (12)
如下指令直接烧入:
$ cd /path/to/avrdude-sertag $ avrdude -v avrdude.exe: Version 5.3.1, compiled on Jun 20 2007 at 00:30:58 ... ... $ avrdude -p m328p -c ft232r -Pft0 -B 115200 -Uflash:w:uart-output-hello.hex:i
5 烧写 Bootloader
详细参考 Arduino_bootloader_的烧写#FTDI_FT232RL
6 Arduino IDE 烧写测试
Bootloader 烧写成功后,USB 重新插拔一下,打开 Arduino IDE,upload Example 里的一个 blink,测试是否能和 Bootloader 正常通信