Uživatelské nástroje

Nástroje pro tento web

Překlady této stránky?:

cs:avr_programming

Toto je starší verze dokumentu!


Programování procesorů AVR

Windows

Vývojové prostředí

AVRstudio obsahuje všechny potřebné softwarové nástroje pro práci s MCU AVR většinou tak není potřeba instalovat další software. Jeho nevýhodou je velikost a malá flexibilita.

Linux

Vývojové prostředí

  $ sudo apt-get update
  $ sudo apt-get install gcc build-essential gcc-avr gdb-avr binutils-avr avr-libc avrdude

Code Blocks IDE

Nahrání programu do MCU

Pro nahrávání přeloženého programu do mikrokontrolérů Atmel je potřeba hardwarový programátor ATprog, který je připojen k MCU přes programovací kablík a k počítači přes USB.

V Ubuntu se pro nahrání programu do AVR obvykle používá program avrdude. Následujícím způsobem:

avrdude -P /dev/ttyUSB0 -c stk500v2 -B 50 -p atmega8 -U lfuse:w:0x9f:m -U hfuse:w:0xc9:m -U flash:w:firmware.hex

Nastavení pojistek je třeba upravit pro konkrétní aplikaci. Nevhodným nastavením si můžete mikroprocesor zablokovat proti dalšímu zápisu

Nové verze avrdude nefungují a je potřeba použít starší verzi programu avrdude (5.10). Stažený balík pak nainstalujeme příkazem

sudo dpkg -i  název_balíku.deb

Známé problémy

avrdude: stk500v2_recv(): checksum error
avrdude: stk500v2_recv(): checksum error
avrdude: stk500v2_recv(): checksum error
avrdude: stk500v2_recv(): checksum error
avrdude: stk500v2_recv(): checksum error
avrdude: stk500v2_recv(): checksum error

Přes to, že tato chybová hláška vypadá podivně, tak obvykle znamená, že se s programátorem pokoušíte komunikovat na jiném portu, než na který je fyzicky připojen. Tj. např. /dev/ttyUSB1 místo /dev/ttyUSB1

Bootloader

Vedle klasického způsobu pálení firmwaru v ISP módu je také možné využít bootloader. Tento způsob využívá Arduino a jeho příznivci jistě ocení jeho variaci LABduino, které díky boatloaderu hardwarový programátor nepotřebuje. Bootloaderů existuje ale mnoho druhů.

Xboot

Xboot je velmi flexibilní bootloader, který kromě v celku běžného způsobu nahrávání firmware přes UART rozhraní dovede firmware aktualizovat i přes rozhraní jako I²C, SPI, nebo paralelní FIFO. Bootloader do procesoru nahrajeme následujícím způsobem.

Stáhneme zdrojové soubory bootloaderu z githubu.

git clone https://github.com/alexforencich/xboot.git
cd xboot 

Dále je potřeba vytvořit konfiguraci bootloaderu podle požadované aplikace. V tomto případě si zkopírujeme referenční konfiguraci pro MCU ATMEGA328P, který je například v modulu atmegatq32

cp conf/arduino328p.conf.mk .

V kopii konfiguračního souboru je třeba změnit proměnnou AVRDUDE_PROGRAMMER = avrispmkII na avrdude identifikaci programátoru, který bude skutečně použit pro první programování bootloaderu do MCU. Pak můžeme spustit příkaz pro vygenerování úplné konfigurace bootloaderu.

make arduino328p.conf.mk

Pokud proces proběhl bez chyb, tak bootloader zkompilujeme a nahrajeme do MCU.

make 
make program

Pokud předchozí krok proběhl bez chyb, tak by jsme nyní v MCU měli mít nahraný funkční bootloader Xboot, kterým je možné do MCU nahrát aplikační firmware. To uděláme například následujícím příkazem.

avrdude -P /dev/ttyACM0 -c avr109 -b 115200 -p m328p  -U flash:w:Blink.cpp.hex

Kde soubor Blink.cpp.hex je vygenerovaný testovací program z Arduino IDE.

Reference

cs/avr_programming.1479463789.txt.gz · Poslední úprava: 2016/11/18 10:09 (upraveno mimo DokuWiki)