網頁

2017年12月18日 星期一

使用 Arduino Pro Micro 當成 Arduino ISP 燒錄程式到 Atmega328P-PU 之二

請參考 上一篇 和 From Arduino to a Microcontroller on a Breadboard

雖然他只有提供 breadboard-1-6-x.zip,並沒有 1.8.5 的版本,是可以用的
秘訣是 Arduino IDE 不要使用安裝檔,使用 Windows zip file for non admin install
解開後取出 boards.txt 的內容加入 arduino-1.8.5 的 boards.txt
之前使用安裝檔,一直失敗

C:\Arduino\arduino-1.8.5-windows\arduino-1.8.5\hardware\arduino\avr\boards.txt
##############################################################
atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)

atmega328bb.upload.protocol=arduino
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600

atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05

atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F

atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard

##############################################################

參考 上一篇 ProMicro 到 Atmega328P 接線
先燒錄 Bootloader
Tools/Board:ATmega328 on a breadboard (8 MHz internal clock)
Tools/Port 選正確
Tools/Programmer/Arduino as ISP(Pro Micro)
Tools/Burn Bootloader

Bootloader 燒錄完成後,即可透過 RS-232 燒錄程式
USB轉RS-232(如 FT232RL)
FTDI  ->  Atmega328P
GND  ->  GND
CTS  ->  GND
VCC  ->  VCC
TXO  ->  2(RXD)
RXI  ->  3(TXD)
DTL  -> 1(RESET)

DTL 接 RESET 請參考 Arduino Pro Mini 電路
中間串接 0.1uF, Atmega328P 端的 Reset 要 Pull Up 10K

Tools/Board:ATmega328 on a breadboard (8 MHz internal clock)
Tools/Port 選RS-232 的 Port
Sketch/Upload (不要 Using Programmer)


2017年12月12日 星期二

使用 Arduino Pro Micro 當成 Arduino ISP 燒錄程式到 Atmega328P-PU

Arduino 1.8.5

File/Preferences/Additional Boards Manager URLs
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
Tools/Board/Boards Manager
安裝 SparkFun AVR Boards

修改 File/Examples/11.ArduinoISP/ArduinoISP
重新定義下列程式碼
#define RESET     10 // Use pin 10 to reset the target rather than SS
#define LED_HB    9
#define LED_ERR   8
#define LED_PMODE 7
#define PIN_SCK   15
#define PIN_MOSI  16
#define PIN_MISO  14
Tools/Board/SparkFun Pro Micro
Tools/Processor/Atmega32U4(5V,16MHz)
Tools/Port/(選正確 Com)
Sketch/Upload

主要接線
ProMicro  ->  Atmega328P-PU
VCC  ->  7(VCC)
GND  ->  8(GND)
VCC  ->  20(AVCC)
15(SCK)  ->  19(SCK)
14(MISO)  ->  18(MISO)
16(MOSI)  ->  17(MOSI)
10  ->  1(RESET)
File/Preferences/Additional Boards Manager URLs
https://github.com/Optiboot/optiboot/releases/download/v6.2/package_optiboot_optiboot-additional_index.json
Tools/Board/Boards Manager
安裝 Optiboot 6.2
若找不到, 並且有錯誤訊息
Error downloading https://github.com/Optiboot/optiboot/releases/download/v6.2/package_optiboot_optiboot-additional_index.json
下載並置於
C:\Arduino\arduino-1.8.5-windows\arduino-1.8.5\hardware/package_optiboot_optiboot-additional_index.json
更改 File/Preferences/Additional Boards Manager URLs 為
file://C:\Arduino\arduino-1.8.5-windows\arduino-1.8.5\hardware/package_optiboot_optiboot-additional_index.json

修改 C:\Arduino\arduino-1.8.5-windows\arduino-1.8.5\hardware\arduino\avr\programmers.txt
增加
arduinopromicro.name=Arduino as ISP(Pro Micro)
arduinopromicro.communication=serial
arduinopromicro.protocol=arduino
arduinopromicro.speed=19200
arduinopromicro.program.protocol=stk500v1
arduinopromicro.program.speed=19200
arduinopromicro.program.tool=avrdude
arduinopromicro.program.extra_params=-P{serial.port} -b{program.speed}

Tools/Programmer/Arduino as ISP(Pro Micro)
Tools/Processor/Atmega328p
Tools/Board/Optiboot on 28-pin cpus
Tools/CPU Speed/8MHz (int) (不使用外部震盪晶體)
Tools/Burn Bootloader (好像可以不用,但是時脈會錯誤)
燒錄程式需使用 Sketch/Upload Using Programmer, 不能使用 Upload