Na programovanie mikrokontrolérov (MCU) sa obyčajne vyžaduje programátor, ktorý je určený pre daný typ MCU. V prípade programovania MCU Atmel AVR je to napríklad AVR Dragon (už sa nevyrába) alebo Atmel ICE. Výhodou programátorov býva okrem možnosti nahratia programu do MCU, aj ladenie programu, tzv. debbuging, priamo na čipe za behu programu. Nevýhodou býva pomerne vysoká cena profesionálnych programátorov.
Ak má MCU v sebe zavedený takzvaný zavádzač (bootloader), tak je možné ho naprogramovať napr. po sériovej linke (UART). Takýto zavádzač v sebe obsahujú vývojové dosky platformy Arduino. Pomocou zavádzača je možné nahrať do MCU kód cez rozhranie UART bez nutnosti vlastniť programátor. Ak MCU takýto zavádzač neobsahuje, tak je možné ho nahrať len pomocou spomínaného programátora. Dosky Arduino sa programujú cez jednoduché prostredie Arduino IDE (Integrated Development Environment). Arduino sa natívne programuje v jazyku Wiring, ktorý predstavuje akýsi metajazyk s vylepšenou sadou makier nad C++. Viac o programovaní Arduina sa dočítate tu. Dôležité je, že kód môžeme písať aj v jazyku C. V prípade programovania MCU z rodiny AVR (Arduino UNO, Arduino Mega, ...), Arduino IDE rozpoznáva makrá registrov daného MCU. To znamená, že MCU môžeme v prostredí Arduino IDE programovať rovnako ako v prostredí Microchip Studio (starší názov Atmel Studio), ktoré je profesionálnym IDE na programovanie MCU od výrobcu Microchip (predtým Atmel). Výhodou prostredia Microchip Studio je napr. prehľadnejšie farebné zvýrazňovanie kódu, kontrola syntaxe, kontrola existencie premenných, funkcií, registrov a odkazovanie na definície funkcií.
Postup nastavenia Microchip Studia na nahrávanie kódu do dosky Arduino:
Pred aplikáciou nasledujúcich krokov je nutné mať nainštalované:
- Microchip Studio resp. Atmel Studio 7 a Arduino IDE, alebo
- Microchip Studio resp. Atmel Studio 7 a potrebné súbory avrdude.conf a avrdude.exe, ktoré si môžete stiahnuť tu.
1. Spustite Microchip (Atmel) Studio IDE.




- Title:
Arduino UNO
- Command:
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe
Je uvedená štandardná cesta k avrdude.exe. Skontrolujte cestu a umiestenie súboru avrdude.exe.
- Arguments:
-C"c:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -v -patmega328p -carduino -PCOM6 -b115200 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
POZOR: Ak nastavujete nahrávanie programu pre MDB2 alebo Angry Bear Board, tak nutné zmeniť rýchlosť nahrávania na 250 000 Baud (-b250000)!!!
Význam argumentov:
-C<Path_to_avrdude.conf> – a path to avrdude.conf, you can find this file in Arduino IDE’s installation directory. Ensure you enter the path in quotes in case there are any spaces in your path.
-p<part number> – AVR processor model
-c<programmer type> – programmer type being used to program the board
-P<port> – COM port you should have noted in stage 2
-b<baud rate> – baud rate for the programmer.
-D – disables auto erase for flash memory (required for wiring programmer used with Arduino Mega 2560)
-U<memorytype>:<operation>:<path to HEX file>:<format> – this is where you should leverage Atmel Studio’s variables to always point to freshly complied and generated HEX file. List of variables and their descriptions can be found at Atmel’s help page. - Zaškrtnite políčko Use Output Window a kliknite na OK.
Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
5. Nahrajte program výberom z menu: Tools -> Arduino UNO

avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude.exe: Device signature = 0x1e950f (probably m328p)
avrdude.exe: safemode: lfuse reads as 0
avrdude.exe: safemode: hfuse reads as 0
avrdude.exe: safemode: efuse reads as 0
avrdude.exe: reading input file "C:\Users\...\AVR_Arduino.hex"
avrdude.exe: writing flash (276 bytes):
Writing | ################################################## | 100% 0.06s
avrdude.exe: 276 bytes of flash written
avrdude.exe: verifying flash memory against C:\Users\...\AVR_Arduino.hex:
avrdude.exe: load data flash data from input file C:\Users\...\AVR_Arduino.hex:
avrdude.exe: input file C:\Users\...\AVR_Arduino.hex contains 276 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 0.05s
avrdude.exe: verifying ...
avrdude.exe: 276 bytes of flash verified
avrdude.exe: safemode: lfuse reads as 0
avrdude.exe: safemode: hfuse reads as 0
avrdude.exe: safemode: efuse reads as 0
avrdude.exe: safemode: Fuses OK (E:00, H:00, L:00)
avrdude.exe done. Thank you.
Použité zdroje a zaujímavé odkazy
Arduino po slovensky: Programovanie ArduinaProgramming Arduino with Atmel Studio 7
Arduino / ATmega328p Embedded C Firmware Programming Tutorial