feed-image Odebírat tento obsah čtečkou
Nabídka
csenderusktr

Arduino - ICSP programátor

Pro konstrukce s ATtiny 85 jsem potřeboval nějak dostat program z Arduino IDE do procesoru ATtiny85 (44,45,84,85). Proto jsem si postavil ICSP (In-circuit serial programming) programátor s pomocí Arduina a jeho ukázky (Arduino as ICSP)... http://arduino.cc/en/Reference/SPI

IMG 20141202 104951

  • Jako první krok je potřeba si do Arduina (jedno zda UNO, DUE...) nahrát skeč (ukázku), který vytvoří náš ICSP programátor: cesta"File/Examples/ArduinoISP"

ardu

Vybereme desku, port a ukázku nahrajeme do našeho Arduina (ze kterého vyrábíme programátor).

  • Dále potřebujeme k desce Arduina připojit konektor ICSP pro připojení programovaných procesorů (v mém případě ATtiny 85). Na webu je celá řada ukázek a příkladů jak propojit desku Arduino a náš programovaný procesor.

Arduino jako icsp

IMG 20141202 105719

IMG 20141202 103702

IMG 20141202 103924

IMG 20141202 104951

Protože neustálé propojování s Arduinem není zrovna praktické, sestavil jsem si programátor na univerzální desce (shieldu Arduino). Mám použitou patici DIL8 pro procesory ATtiny (44,45,84,85) a DIL 28 pro procesory ATmega328 (168).

ISP

Ve skeči (ukázce) je uvedeno, že je potřeba propojit tyto piny:

Arduino (programátor)  programovaný procesor (ATtiny 85) programovaný procesor (ATmega 328)
RESET pin Arduino 10 RESET pin 1 RESET pin 1
MOSI pin Arduino 11 MOSI pin 5 MOSI pin 17
MISO pin Arduino 12 MISO pin 6 MISO pin 18
SCK pin Arduino 13 SCK pin 7 SCK pin 19

Dále je potřeba propojit zem Arduino programátoru a zem programovaného procesoru. Dále je potřeba, aby měl programovaný procesor napájení (lze ho napájet z desky Arduino programátoru, nebo pokud máme procesor již zapájený v našem zařízení, kde je napájení zapneme toto napájení). POZOR: pokud máme například ATtiny napájen z 3V baterie a programátor Arduino (to má napájení 5V) můžeme poškodit programovaný procesor, který je napájený jiným napětím (zatím se mi to nestalo), ale je lepší, když má obojí stejné napětí!

Příklad vývodů na processoru ATtiny 45/85

ATtiny45-85

Příklad vývodů na procesoru ATmega 328...

Arduino-To-Atmega8-Pins

Je vhodné i signalizovat stavy programátoru a proto připojíme 3 LED diody k pinům:

  • Arduino pin 9 - zelená LED signalizuje chod programátoru (postupné zhasínání a rozsvěcení)
  • Arduino pin 8 - rudá LED signalizuje chybu při programování
  • Arduino pin 7 - modrá LED signalizuje práci s FLASH pamětí (programování)

Samozřejmě musíme mezi pin a LED připojit vždy rezistor alespoň 220 Ohmů :-) druhý konec LED připojíme na GND (0V).

  • Máme hotovo :-) pro použití programátoru musíme v Arduino IDE přepnout, že používáme Arduino jako programátor, jinak by se vždy naším skečem přemazal program programátoru (ArduinoISP)!

asisp

Nyní otevřeme náš skeč (program, který chceme nahrát do prázdného procesoru) nastavíme port, vybereme desku (ATtiny 85, UNO...) a dáme upload.

Tento programátor umí programovat procesory zapájené v zařízení a není proto nutné obvod vyndat a připojovat k tomuto programátoru (stačí pouze připojit piny: 0V, +UCC, MISO, MOSI, SCK) a je to :-)

V dalším článku uvedu jak do Arduina přidat procesor ATtiny 85

 

Oštítkován jako: Arduino ICSP Programátor

Komentáře   

#4 Martin Pihrt 2015-06-28 14:26
Cituji David:
Dobrý den,
podařilo se mi nahrát na Attinu45 jednoduchý program, co mě ale zarazilo, že při 3,3V měla LED dioda 1 sec off, 1sec on - přesně jak bylo napsáno kodem. PO změně napětí na 5V mi led dioda blikala při stejném programu / odhadem) 1sec on, 0,3sec off.

NAhrál jsem na ní bootloader pro Attiny 45 - 1Mz.
Bohužel ji potřebuji provozovat v hladině 5V - můžete mi prosím poradit, co jsem neudělal správně?

Děkuji moc
David
Edit: Když byl procesor připojen k arduinu - pracovalo to v pořádku, poté jsem dal Attinu do nepájivého pole kde jsem měl omylem napětí 3,3V. Když jsem zjistil omyl, přepojil jsem napětí na 5V a takto jsem zjistil danou chybu..

Dobrý den,
ještě jsem se s tím nesetkal, ale zde píšou proč se to děje: http://www.avrfreaks.net/forum/attiny4585-timer-problem
#3 David 2015-06-27 10:32
Dobrý den,
podařilo se mi nahrát na Attinu45 jednoduchý program, co mě ale zarazilo, že při 3,3V měla LED dioda 1 sec off, 1sec on - přesně jak bylo napsáno kodem. PO změně napětí na 5V mi led dioda blikala při stejném programu / odhadem) 1sec on, 0,3sec off.

NAhrál jsem na ní bootloader pro Attiny 45 - 1Mz.
Bohužel ji potřebuji provozovat v hladině 5V - můžete mi prosím poradit, co jsem neudělal správně?

Děkuji moc
David
Edit: Když byl procesor připojen k arduinu - pracovalo to v pořádku, poté jsem dal Attinu do nepájivého pole kde jsem měl omylem napětí 3,3V. Když jsem zjistil omyl, přepojil jsem napětí na 5V a takto jsem zjistil danou chybu..
#2 Martin Pihrt 2015-02-24 06:54
Dobrý den,
koukal jste i na tento článek?
http://pihrt.com/elektronika/296-attiny-xx-v-arduino-ide-xx
je potřeba do IDE nahrát podporu pro ATtiny...
děkuji MP
#1 Ladys 2015-02-24 01:26
Dobrý den.
Jsem úplný začátečník (jen několik ovládání světelných efektů pomocí arduina) a chtěl jsem vyzkoušet naprogramování attiny 85 dle vašeho návodu. Bohužel si nevím rady s nastavením. Nahrání ovládače do arduina je v pořádku ale nelze mi pak vybrat v nástrojích board Attiny, resp. při jeho zatržení mi po spuštění uploadu vyskočí hláška, že je vybrána nesprávná deska. Když ponechám UNO je po skončení kompilace a uploadu hláška vybrán nesprávný mikrocontrolér.
Múžete mi poradit, kde je zakopán pes.

Nemáte oprávnění pro vkládání komentářů (You have no rights to post comments.)