Butování/nahravání AT328P

 

 

Butování a nahrávání - procesor ATmega328P

V mnohých případech je vhodné použít pouze procesor místo cele Arduino desky. Tyto aplikace jsou označovány "Arduino bez Arduina". Postup, jak ošetřit procesor nejnutnějšími součástkami je uveden v kapitole  "Uspání a přerušení" . V rámci "softwarové" přípravy samostatného procesoru musíme zajistit:

A. procesor musí mít "vypálený" zaváděcí (butovací) program (bootloader),

B. do procesoru (s již vypáleným bootloaderem) musíme nahrát náš "skeč".

Obě procedury vyžadují odlišný postup. Vypalování butovacího programu lze obejít zakoupením procesoru s již vypáleným butovacím programem. Pokud pořídíme nenabutovaný procesor, nabutujeme si ho sami.  Po zkušenostech s třemi návody, jak nabutovat procesor (1,2,3), je zde uveden úspěšný a zjednodušený postup 3. Nutno podotknout, že všechny tři návody se vzájemně částečně lišily. Třetí návod byl v daném případě úspěšný a platí pro procesor "ATmega328P" (nikoliv ATmega328). Pomoci desky Arduino UNO a vývojového prostředí Arduina (IDE), verze 1.8.9, byly butovány procesory z Asie označené "ATmega328P U". 

 

Postup vypálení "bootloaderu":

Krok č. 1  

K PC připojíme desku UNO, k desce zatím nic nepřipojujeme. Vývojové prostředí Arduina (IDE), nastavíme na připojenou desku UNO a detekovaný port. V IDE otevřeme program "ArduinoISP", který najdeme v nabídce programů IDE - "Soubor/Příklady/Arduino ISP". Program nahrajeme do desky UNO.

 

Úvodní část programu "ArduinoISP" v IDE Arduina 1.8.9 

 

 

Krok č. 2

Procesor ošetříme nejnutnější periferií (krystal 16MHz na piny č.9 a č.10) podle kapitoly "Uspání a přerušení" . Pin 1 (RST) procesoru připojíme odporem 10k na Vcc. Desku Arduino UNO propojíme s procesorem "ATmega328P" piny:

- UNO 5V ----> AT328P pin 7(Vcc)

- UNO GND ----> AT328P pin 8 nebo 22(GND)

- UNO pin 10 ----> AT328P pin 1(RESET)

- UNO pin 11 ----> AT328P pin 17(MOSI)

- UNO pin 12 ----> AT328P pin 18(MISO)

- UNO pin 13 ----> AT328P pin 19(SCK)

 

 

Krok č. 3

V IDE nastavíme programátor v položce "Nástroje/Programátor/Arduino as ISP" (nikoliv "ArduinoISP" - nefunguje):

Krok č. 4

V IDE je již při zahájení komunikace desky UNO s IDE (viz Krok č. 1) zvolena deska UNO v menu "Nástroje/ Vývojová deska/Arduino UNO". Dále zvolíme příslušný detekovaný port COM. V uvedených položkách už neděláme žádné změny a přistoupíme k vypálení bootloaderu klikem na "Vypálit zavaděč" v menu "Nástroje/Vypálit zavaděč"

Ve spodní informační liště IDE obdržíme informaci o vypalování. Během několika sekund se objeví hlášení o úspěšném vypálení. Vypalování v ověřených případech proběhlo bezchybně a nabutované procesory se chovaly po vložení do patice desky UNO standardně (bylo možné do nich nahrát skeč). Vypálení zaváděče (bootloaderu) je možné opakovat, aniž bychom měli obavu o porušení režimu procesoru. Zaváděč zabírá 0,5 kB z 32 kB programovatelné paměti procesoru ATmega328P. 

V daném okamžiku máme vyřešen softwarový požadavek butovacího programu jak je uvedeno výše pod písmene "A". Dále je třeba do procesoru nahrát náš skeč, tj. požadavek uvedený výše pod písmenem "B".  

***********************************************************************************************************************************

 

Nahrávání skečů do procesoru ATmega328P

Nabutovaný procesor lze umístit do patice desky UNO a nahrát do něj skeč, viz kapitola "Uspání a přerušení", případně použijeme účelový USB převodník (loader). Jedním z dostupných převodníku byl loader s čipem CP2102 nabízený jak v Asii, tak v ČR

Převodník byl nabízen pro starší verze Windows. Do Windows 10 manuálně doinstalujeme veřejně dostupný ovladač - případně v zip souboru zde - postup instalace je zde.

Procesor vybavíme krystalem 16MHz a odporem 10k spojující pin RESET s napětím Vcc. USB převodník připojíme k procesoru:

         Piny CP2102                        Piny ATmega328P

    +3.3V (5V)…………………………..........…………..Vcc+AVcc

GND ………………………..........………………..GND

RX ……………………..............………..     TX (pin č.3, D1)

TX ………………………..… ………………RX(pin č.2, D0)

   DTR ...............přes kondenzátor 0,1 µF........  RST (pin č.1)

! Na procesoru ATmega328P musí být spojeny piny Vcc+AVcc, tj. piny č. 7 a č. 20 !

Na pin D13(č.19) procesoru připojíme ledku přes ochranný odpor proti GND pro kontrolu nahrání programu "Blink". Trvalé připojení ledky nebrání nahrávání programů.

 

V IDE nastavíme ze seznamu desek desku UNO ("Nástroje/Vývojová deska/Arduino UNO")  a zvolíme příslušný detekovaný port COM. Další parametry není třeba nastavovat. Pro ověření můžeme zvolit z příkladů program "Blink". Program nahrajeme do procesoru běžným způsobem odkliknutím "nahrávací" šipky.

 

Nahrávání probíhá obvyklým způsobem s hlášením o ukončení nahrávání.

Pokud by převodník nenahrával při napájení procesoru ATmega328P na úrovni 5V, připojíme napětí 3.3V (jak je uvedeno výše ve schématu).

 

Po ověření výše uvedených "bastlů" byla sestavena účelová deska pro budování a nahrávání do procesoru ATmega328P:

Na desce je umístěna testovací 28mi pinová patice (pořídíme v Asii nebo v ČR) a další součástky podle schématu:  

 

Připojená ledka na pin D13 (č.19) procesoru slouží k ověření kódu "Blink" po nahrání. Pinový přepínač (pin switch) umožňuje volbu napájení procesoru z převodníku CP2102 na úrovní 5V nebo 3.3V. Dosud bylo ověřeno, že nahrávání z převodníku CP2102 je úspěšné při volbě 3.3V. Všechny uvedené součástky jsou na desce stabilně připojeny a nebrání jak butování, tak nahrávání, pouze zvolíme, zda budeme butovat nebo nahrávat a podle toho desku připojíme:

Butování:

Nahrávání:

 

 

Prosinec 2020

 

Home

 

Arby

arduinohobby@email.cz