Obsah:

Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP: 9 kroků (s obrázky)
Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP: 9 kroků (s obrázky)

Video: Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP: 9 kroků (s obrázky)

Video: Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP: 9 kroků (s obrázky)
Video: Attiny 44 programming 2024, Červenec
Anonim
Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP
Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP
Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP
Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP

Úvodní slovo

Nedávno jsem vyvíjel několik projektů IoT založených na ESP8266 a zjistil jsem, že hlavní procesor se potýká s plněním všech úkolů, které jsem potřeboval ke správě, a proto jsem se rozhodl distribuovat některé méně důležité činnosti na jiný mikrokontrolér v tímto způsobem uvolníte ESP8266, abyste mohli pokračovat v práci zařízení IoT.

Vzhledem k tomu, že jsem chtěl publikovat svůj projekt co nejširšímu publiku, rozhodl jsem se použít Arduino IDE jako vývojovou platformu, protože má tak široce podporovanou komunitu.

Omezení návrhu

Aby bylo zajištěno přiměřené rozšíření cílových zařízení umožňující výběr vhodného mikrokontroléru pro danou aplikaci, rozhodl jsem se pro následující části Atmel; ATMega328P, ATTiny84 a ATTiny85. Aby se omezila složitost potřebného programátoru, omezil jsem výběr hodin na interní pro všechna zařízení a 16 MHz externí pouze pro ATMega328P a ATTiny84.

Následuje kolekce poznámek k programování pomocí Arduina a popis toho, jak jsem pro tato zařízení sestavil jednoduchý programátor na bázi Arduino Uno (obrázky výše).

Jaké díly potřebuji?

K sestavení programátoru budete potřebovat následující součásti

  1. 1 sleva na Arduino Uno
  2. 2 vypnuté 28pinové zásuvky DIP s nulovou vložkou (ZIF) (pro držení ATMega328P, ATTiny85, ATTiny84)
  3. 1 off prototyp štítu Arduino (svůj jsem dostal zde;
  4. 2 vypnuté 5MM LED
  5. 2 off 1K odpory
  6. 1 off 10K odpor
  7. 4 off 22pF keramické kondenzátory
  8. 2 off 16MHz krystaly
  9. 3 off 0,1uF keramické kondenzátory
  10. 1 off 47uF elektrolytický kondenzátor
  11. 1 off 10uF elektrolytický kondenzátor
  12. Ovinovací drát různé délky.

Jaký software potřebuji?

Arduino IDE 1.6.9

Jaké dovednosti potřebuji?

  1. Znalost Arduino IDE
  2. Nějaké znalosti z elektroniky a jak pájet
  3. Velká manuální zručnost
  4. Hodně trpělivosti a dobrého zraku

Pokrytá témata

  1. Obecný úvod do programování mikrořadičů Atmel
  2. ISP nebo Bootloader: Je to všechno trochu matoucí
  3. Přehled obvodu
  4. Nastavení programátoru
  5. Použití vašeho programátoru Arduino ISP
  6. Vývoj kódu ve vašem cílovém systému
  7. Gotchas
  8. Závěr
  9. Použité reference

Prohlášení

Tyto pokyny jako vždy používáte na vlastní riziko a nejsou podporovány

Krok 1: Obecný úvod do programování mikrokontrolérů Atmel

Obecný úvod k programování mikrokontrolérů Atmel
Obecný úvod k programování mikrokontrolérů Atmel
Obecný úvod k programování mikrokontrolérů Atmel
Obecný úvod k programování mikrokontrolérů Atmel
Obecný úvod k programování mikrokontrolérů Atmel
Obecný úvod k programování mikrokontrolérů Atmel

K programování mikrokontrolérů Atmel jsou k dispozici dvě metody;

  1. V programování systému (ISP),
  2. Vlastní programování (prostřednictvím zavaděče).

První metoda (1) přímo programuje mikrokontrolér přes rozhraní SPI po prvním uvedení zařízení do resetu. Pokud není uvedeno jinak, je zkompilovaný spustitelný zdrojový program zapsán do zařízení postupně do paměti kódu, odkud je spuštěn při spuštění. Existuje mnoho zařízení ISP schopných programovat zařízení Atmel, z nichž některé jsou (obr. 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Obrázek 2 ukazuje, jak se zařízení ISP připojuje k ATMega328P (podivně označené ICSP) na desce Arduino Uno R3 (obrázek 3 ukazuje pin ISP). Je také možné programovat mikrokontrolér Atmel prostřednictvím jeho rozhraní SPI pomocí Arduino Uno jako ISP (obrázek 4), zde se Uno používá k programování ATMega328P.

Druhá metoda (2) používá malý kódový pahýl známý jako „zavaděč“s trvalým bydlištěm v paměti spustitelných kódů (obvykle uzamčený, aby se zabránilo náhodnému přepsání obrázek 5). Tento kód je spuštěn jako první po zapnutí nebo resetování zařízení a umožňuje mikrokontroléru přeprogramovat se novým kódem přijatým prostřednictvím některého z jeho rozhraní ze zdroje, který je na něj externí. Metodu bootloaderu používá Arduino IDE k přeprogramování Arduinos mapovaných jako USB komunikační port na PC (Nebo MAC, Linux box atd., Obrázek 6) a v případě Arduino Uno komunikuje se zařízením Atmel prostřednictvím sériové rozhraní na pinech IC 2 a 3 ATMega328P. Také Arduino Uno (s odstraněným mikrokontrolérem ATMega328P) lze použít k programování ATMega328P pomocí metody bootloaderu, která účinně funguje jako zařízení USB na sériový adaptér (obrázek 7).

Co je adaptér USB na sériový port?

Adaptér USB na sériový port je kus hardwaru, který se zapojuje do USB portu vašeho počítače a vypadá jako sériový port (starší verze, kdy počítače používaly standard sériové komunikace známý jako EIA-232, V24 nebo RS232), což vám umožňuje odesílejte a přijímejte sériová data na stejných elektrických úrovních mikrokontroléru. Když v IDE Arduino vyberete Nástroje -> Port -> COMx, připojujete/propojujete svůj počítač s Arduino.

Takové zařízení je někdy označováno jako FTDI (obr. 8, což je ve skutečnosti značka) nebo CH340G atd. USB na sériové rozhraní na Arduino uno je dosaženo pomocí ATMega16U2-MU (R) IC ZU4 jako v Arduino Schematic níže.

Pro názornost obrázek 9 identifikuje dvě zařízení Atmel a jejich příslušné ISP konektory na Arduino Uno R3.

Poznámka 1: Pokud se rozhodnete jít cestou zařízení FTDI, ujistěte se, že nakupujete od renomovaného prodejce, protože na trhu bylo mnoho levných padělaných zařízení, která po aktualizaci systému Windows selhala.

Doporučuje: