查看面包板上的至简 Arduino的源代码
←
面包板上的至简 Arduino
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 元器件 == <br> ATmega328p,TQFP32 封装,手头没有 PDIP 的 328p 就用这个了 [[文件:Nano-arduino-01.jpg]] 为了用杜邦线接插的方便,故将其先焊接在一小片转接板上 [[文件:Nano-arduino-02.jpg]] 焊好后,在面包板上加一个 16MHz 晶振外围电路即可,所需要的元件仅为: ::1 个 16MHz 无源晶振 ::2 个 15pF 电容 电路如下: [[文件:Nano-arduino-osc.jpg]] XTAL1, XTAL2 接晶振,再找一个 VCC 接 5V,GND 接地,即成一个极简系统 ATmega328p 针脚定义为: [[文件:Atmega328p-TQFP32-pin.jpg]] 搭好的效果为: [[文件:Nano-arduino-04.jpg]] 白线连 5V,黑线连接 GND,极简系统即可工作 == Bootloader 烧写 == 328p 的片子,可使用 /PATH/TO/arduino-1.0.1/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex 这个 bootloader,烧写的过程可参考 [[Arduino bootloader 的烧写]] 至于编程器的连线,可直接连片子的引脚,即: <pre> MISO --> MISO MOSI --> MOSI SCK --> SCK RESET --> RESET </pre> == arduino upload 测试 == 烧写有 arduino bootloader 的芯片安如下连接,就可以用 arduino 的开发环境直接上载程序了: <pre> 将 FT232RL 板的 RX 串一个 1K 的电阻连 ATmega 的 TX TX 也要串一个 1K 的电阻连 ATmega 的 RX DTR 串一个 100nF 的电容连在 RESET </pre> 断电重启一下,一般即可像正常 arduino 板一样使用。对于命令行方式,可用如下命令测试是否成功: <source lang=bash> $ avrdude -C /d/arduino-1.0.1/hardware/tools/avr/etc/avrdude.conf -p m328p -c arduino -P COM27 -b 57600 avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude.exe: Device signature = 0x1e950f avrdude.exe: safemode: Fuses OK avrdude.exe done. Thank you. </source> 对于已有 bootloader 的板子,avrdude 通过串口与板上的 ATmega328p 通信,实际为 avrdude 通过串口“命令”ATmega328p 对自身的 flash 进行编程,需要写入的数据也从串口传入 烧了一个在数字口 7、1s 闪一次 LED 的程序: <source lang=bash> $ avrdude -C /d/arduino-1.0.1/hardware/tools/avr/etc/avrdude.conf -p m328p -c arduino \ -P COM27 -b 57600 -D -U flash:w:Blink-7-1s.hex avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude.exe: Device signature = 0x1e950f avrdude.exe: reading input file "Blink-7-1s.hex" avrdude.exe: input file Blink-7-1s.hex auto detected as Intel Hex avrdude.exe: writing flash (2496 bytes): Writing | ################################################## | 100% 1.27s avrdude.exe: 2496 bytes of flash written avrdude.exe: verifying flash memory against Blink-7-1s.hex: avrdude.exe: load data flash data from input file Blink-7-1s.hex: avrdude.exe: input file Blink-7-1s.hex auto detected as Intel Hex avrdude.exe: input file Blink-7-1s.hex contains 2496 bytes avrdude.exe: reading on-chip flash data: Reading | ################################################## | 100% 1.08s avrdude.exe: verifying ... avrdude.exe: 2496 bytes of flash verified avrdude.exe: safemode: Fuses OK avrdude.exe done. Thank you. </source> 烧完后去除无关连接线,PD7(对应于 Arduino 的数字 7 口)接一个 LED 灯,效果如下(每秒 LED 灯闪一次): [[文件:Nano-arduino-05.jpg]] 对于测试连接出现的如下错误信息: <pre> $ avrdude -C /d/arduino-1.0.1/hardware/tools/avr/etc/avrdude.conf -p m328p -c arduino -P COM27 -b 115200 avrdude.exe: stk500_getsync(): not in sync: resp=0x00 avrdude.exe done. Thank you. </pre> 一般是波特率的问题,改成 '-b 57600' 试试 还不行的话就要检查硬件连接了,尤其是 RX/TX/RESET(DTR) 这三个线串的电阻和电容有无问题 <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br>
返回到
面包板上的至简 Arduino
。
个人工具
3.15.25.69
该IP地址的讨论
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面