Uživatelské nástroje

Nástroje pro tento web


cs:avr_programming

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.


Předchozí verze
cs:avr_programming [2016/11/18 10:09] kaklik
Řádek 1: Řádek 1:
-====== Programování procesorů AVR ====== 
- 
-===== Windows ===== 
- 
-==== Vývojové prostředí ==== 
- 
-[[http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725|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 === 
- 
-[[http://stringofthoughts.wordpress.com/2009/11/06/code-blocks-ide-for-avr-gcc-and-avrdude-ubuntu/ 
-|Code Blocks IDE for avr-gcc and avrdude (Ubuntu)]] 
- 
-==== Nahrání programu do MCU ==== 
- 
-Pro nahrávání přeloženého programu do mikrokontrolérů Atmel je potřeba hardwarový programátor [[cs:atprogispusb|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 [[http://www.nongnu.org/avrdude/|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 ([[http://packages.ubuntu.com/lucid/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 [[http://cs.wikipedia.org/wiki/In_System_Programming|ISP módu]] je také možné využít bootloader. Tento způsob využívá Arduino a jeho příznivci jistě ocení jeho variaci [[cs:labduino|LABduino]], které díky boatloaderu hardwarový programátor nepotřebuje. Bootloaderů existuje ale mnoho druhů.  
- 
-=== Xboot === 
- 
-[[https://github.com/alexforencich/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 [[cs:i2c|I²C]], [[cs:spi|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 [[cs: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 ==== 
- 
-  * [[http://stringofthoughts.wordpress.com/2009/11/06/setting-up-avr-development-environment-in-ubuntu/|Setting up AVR development environment in Ubuntu]] 
  
cs/avr_programming.txt · Poslední úprava: 2022/01/28 16:21 autor: kaklik