Programátor pro procesory AVR
Miroslav Janás
Modul USB programátoru procesorů AVR s šestipinovým ISP rozhraním. Programátor je kompatibilní s „AVR studio 4“ (programátor STK500 nebo AVRISP) a s „avrdude“ (programátor STK500v2). Programátor obsahuje tlačítko RESET pro resetování cílového procesoru a přepínač VTG pro napájení cílového zařízení napětím 5V z USB nebo 3.3V z vnitřního stablizátoru.
Parametr | Hodnota | Poznámka |
---|---|---|
Napájení | 5V | Napájeno z USB rozhraní |
Napájení cílového zařízení | 5V z USB 3.3V z vlastního stabilizátoru |
Omezeno USB zdrojem Maximálně cca 90mA |
Spotřeba | cca 10mA | Bez cílového zařízení |
Interface | USB 1.1, USB 2.0 | USB kabel A-B |
Kompatibilita | AVR Studio 4 AVRDUDE |
STK500 STK500v2 |
Rozměry | 65x25x20mm | Výška nad nosnou deskou |
Modul byl navrhnut pro programování AVR procesorů přes USB rozhraní, pro nedostupnost sériového a paralelního rozhraní na dnešních PC. Konstrukce vychází z dostupných inforamcí na internetových stránkách, zejména z EVERTOOL – combinet AVR programmer and debugger. Pro složitost nahrání firmware do modulu, byl vytvořen soubor stk500.hex, který se externím programátorem nahraje do modulu. Pokud jsou dobře nastaveny konfigurační pojistky je programátor připraven k programování.
Základní procesor U1 ATmega8535 zajišťuje veškerou programovací činnost. S PC komunikuje prostřednitvím sériového rozhraní. O seriového rozhraní se stará IO U2, známý převodník USB-rs232 FT323RL. Často se vyskytuje situace, programovat při nižším napětí, než 5V. Proto byl programátor osazen i stabilizátorm 3,3V LE33DE U3. Na rozhraní ISP byly přidány ochranné rezistory s hodnotou 100 ohmů a dále možnost vypnout napájení cílového zařízení přes přepínač SW2 (VTG enable). Jumper J7 (ISP select) se použije jen při prvním nahrání HEX souboru a pojistek do programátoru (poloha 1-2 ISPmega8538). V poloze 2-3 normal AVRISP je modul připraven programovat. Zapojení obsahuje tlačítko reset, kterým se resetuje cílový procesor. (Neresetuje se programátor!!!) a je nutné toto tlačítko osadit na desce. Zelená LED dioda D2 značí připravenost programátoru, červená LED dioda D1 oznamuje právě probíhající programování.
Srdce programátoru – ATmega8535.
USB interface s převodníkem USB-rs232 FT232RL. Standardní katalogové zapojení doplněno o stabilizátor U3 LE33D. Stabilizátor vytváří napětí 3,3V. Jumprem J3 se volí programovací napětí.
Modul je navrhnut pro připevnění na standardní nosou desku (deska s provrtanými díramy 3,2mm v ose x a y po 400 milsů) . V rozích jsou šroubky a sloupky s rozpětím 5x2cm (2000x800mils).
Modul je navrhnut na jednostranné desce a obsahuje dvě propojky. Jedna propojka je realizována prostřednistvím tlačítka reset.Tudíž se neosazuje, ale samo tlačítko tuto propojku realizuje.Tlačítko reset je nutné osadit. Druhá propojka se nachází u konektoru J7 (sel ISP).
Deska z pohledu strany součástek
Deska z pohledu strany spojů
Seznam použitých součástek
Počet | Reference | Hodnota | Pouzdro |
---|---|---|---|
Odpory SMD | |||
8 | R1, R6, R7, R8, R9, R10, R11, R14 | 10k | R0805 |
1 | R2 | 68k | R0805 |
1 | R3 | 33k | R0805 |
2 | R4, R5 | 1k5 | R0805 |
1 | R13 | 4k7 | R0805 |
4 | R12, R15, R16, R17 | 100 | R0805 |
Keramické kondenzátory SMD | |||
10 | C1, C4, C5, C6, C7, C8, C12, C13, C14, C15 | 100n | C0805 |
2 | C2, C3 | 22p | C0805 |
1 | C10 | 10n | C0805 |
1 | C16 | 2.2uF lze i elektrolyt | C0805 |
Elektrolytické kondenzátory SMD | |||
2 | C9, C11 | 4.7uF/6.3V | ELYTB |
Indukčnosti SMD | |||
1 | L1 | ferrite_bead | R0805 |
Diody | |||
1 | D1 | red | LED3 |
1 | D2 | green | LED3 |
1 | D3 | 1N4007SMD | MELF |
Integrované obvody | |||
1 | U1 | ATmega8535_TQ44 | TQFP44 |
1 | U2 | FT232RL | SSO28_210 |
1 | U3 | LE33D | SO8_150 |
Krystaly | |||
1 | X1 | 3.6864MHz | XTAL050 |
Pojistky SMD | |||
1 | FUSE | 0.5A | R1206 |
Mechanické součástky | |||
1 | J1 | JUMP2X3 | JUMP2X3 |
1 | J2 | JUMP2x3 | JUMP2x3/B |
1 | J3 | JUMP2 | JUMP2 |
1 | J4 | USB_B_01 | USB_B_01 |
1 | J7 | JUMP3 | JUMP3 |
1 | SW1 | TARGET_RESET | PUSH050x050 |
1 | SW2 | SW_P-B143 | P-B143 |
Konstrukční součástky | |||
2 | Jumper propojka | ||
4 | Sloupek M3x5mm | ||
4 | Šroub M3x12 křížový s válcovou hlavou | ||
4 | Podložka M3 | ||
2 | Konektor 6 pinů NDR-06 s piny |
Pokud je deska dobře osazená, zbývá jen do procesoru nahrát firmware. Aby se zjednodušila konstrukce, byl vynechán pomocný procesor, který firmware nahrával do programátoru. Nicméně do pomocného procesoru se muselo stejně nahrát další firmaware, který pak už komunikoval s aplikaci AVR studio. Do našeho programátoru tedy nahrajeme jen patřičný HEX soubor s pojistkami pomocí externího programátoru a už se o nic nestaráme. Jen nemáme možnost automatické upgrade firmware. Pro upgrade je nutné zase použít externí programátor.
Postup nahrání pojistek a firmware pro avrdude je následující:
Přepneme JUMPER J7 (sel ISP) do polohy 1-2 ISPmega8535 a připojíme externí programátor do konektoru ISP(6pin). Pokud externí programátor potřebuje ke své činnosti napájení ze cílového zařízení, přepneme přepínač SW2 (VTG) do polohy on. Zvolíme programovací napětí pomocí JUMPERU J3 (sel POWER) na 5V nebo 3,3V, dle externího programátoru. Připojíme náš programátor na USB, tím se přivede napájení, a můžeme nahrát pojistky a soubor stk500.hex.
Pro pojistky:
avrdude -p atmega8535 -P %PORT% -c %PRG% -U lfuse:w:0xff:m -U hfuse:w:0xdb:m
Pro soubor stk500.hex
avrdude -p atmega8535 -P %PORT% -c %PRG% -U flash:w:stk500.hex:a
kde PRG je typ externího programátoru a PORT je sériový nebo paralelní port externího programátoru.
Po naprogramování se JUMPER J7 (sel ISP) vrátí do polohy 2-3 ISP normal.
Pro uživatele WINDOWS XP je nutné ještě nainstalovat ovladače USB převodníku FTDI.
Po spuštění aplikace vybereme na horní liště nástroje Tools – Program AVR – Auto connect. A můžeme už programovat. Pokud auto connect nic nenajde, zvolíme Tools – Program AVR –connect… a vybereme Platform: STK500 or AVRISP Port: COM kde se náš programátor nachází.
Zde stačí do příkazové řádky zadat tyto patametry
avrdude –p xxx –c stk500v2 –P comx – U flash:w:muj.hex:a
xxx … typ cílového procesoru
comx … com port kde je náš programátor
ostatní parametry viz příkaz avrdude –?, zde získáme nápovědu.