2017年11月10日 星期五

導入Markdown








為了讓部落格看起來更美觀,所以我將會導入Markdown的風格
例如像Python程式區塊:

C程式區塊:


由於自己也是最近才開始使用Markdown,許多功能也還在摸索中,我會慢慢成長的 _(:3」ㄥ)

2017年11月9日 星期四

在ATMega328 (No "P")燒錄Arduino bootloader

起因:從貿澤購買Arduino IC來做電路,卻發現買回來的IC不能燒錄bootloader,google一下才發現ATMega328P與ATMega328不同,Arduino IDE對這顆IC支援也不多。

P.S. 此篇不會記錄燒錄的方法,若想知道其方法,請自行google。

由於沒有特別買燒錄器,所以我是使用Arduino as ISP的方式進行燒錄bootloader

Step1. 先將作為燒錄器的Arduino板燒錄"ArduinoISP"韌體

Step2. 將Arduino板與目標IC接上

on the ICSP/SPI header:

| Arduino板 | 目標IC |
|   MISO      |  MISO  |
|   MOSI      |  MOSI  |
|   SCLK      |  SCLK  |
|   5V            |  5V       |
|   GND        |   GND  |
|   D10         |  RESET |

Step3. 新增燒錄項目
我的Arduino環境是使用1.5.8,以下是皆以此環境為例:

a.找到下面路徑
arduino-1.5.8-windows\arduino-1.5.8\hardware\arduino\avr\board.txt
b.在檔案內新增下列內容

############################################################## ##ATmega328 (non-picopower) ## ------------------------------------------------- atmega328npp.name=ATmega328 (non-picopower) atmega328npp.upload.tool=avrdude atmega328npp.upload.protocol=arduino atmega328npp.upload.maximum_size=30720 atmega328npp.upload.speed=57600 atmega328npp.upload.maximum_data_size=2048 atmega328npp.bootloader.tool=avrdude atmega328npp.bootloader.unlock_bits=0x3F atmega328npp.bootloader.lock_bits=0x0F atmega328npp.bootloader.low_fuses=0xFF atmega328npp.bootloader.high_fuses=0xDA atmega328npp.bootloader.extended_fuses=0x05 atmega328npp.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex atmega328npp.build.mcu=atmega328 atmega328npp.build.f_cpu=16000000L atmega328npp.build.core=arduino atmega328npp.build.variant=standard ##############################################################

Step.啟動IDE
選取剛剛建立的ATmega328 (non-picopower)項目
再選擇ArduinoISP的COM Port,接著按下Burn Bootloader進行燒錄。

番外篇:
ATMega328燒錄韌體的方式,目前我的解決方式也是透過ICSP/SPI的燒錄方式進行燒錄,
接線的方式跟燒錄bootloader方式一樣,Board & Port設定也一樣,
將程式完成之後,先進行編譯(Verify),之後再選擇File -> Upload Using Programming,
此時,就會將此程式燒錄在ATMega328上。

參考
1. http://troy.jdmz.net/micro/avr/atmega328.html
2. http://www.digitalmisery.com/2011/11/arduino-bootloader-with-atmega328-and-atmega328p/