Někdy se v projektu vyplatí použití samostatného čipu. Projekty pro realizování určitého projektu s malým odběrem, třeba pro CR2032 baterii. Samotný čip může pracovat i při 1MHz, bez použití čipu. Výhoda je pak nízký odběr. Samotný čip, pak ani nepotřebuje regulátor, když se dodrží, že bude třeba adaptér 5V. Když tedy se využije třeba ta baterie CR2032, tak čip bude funkční i když bude napětí klesat. Čip má v sobě krystal 8MHz, když nebudete v projektu potřebovat 16MHz, tak si vystačíte v čipu. Tím, že použijeme interní krystal, se nám sníží paměť z 32 256 bitů na pouhých 30 720, takže ztratíme skoro 2kB paměti, ale u menších projektů by to neměl být problém.
Seznam součástek, pro provoz samotného čipuATmega328p
Kondenzátory 18-22pF (Když budeme chtít použít externí krystal)
Crystal od 8MHz do 20MHz
Odpor 10kOhm
Samotný čip je nastavený tak, že jde do něj nahrávat program bez použití krystalu. Čip sobě nemá bootloader, pro nahrávání programu ho budeme potřebovat, protože má sobě nastavení + po nahrání jde nahrávat program přes tx a rx, tím jde pak nahrát i na dálku přes bluetooth. Jako první si přidáme do arduino ide možnosti práce s čipem, kdyby byl čip pro provoz přes externí 16MHz, není potřeba nic dalšího, ale zde počítáme i z možnosti použití čipu na jiné frekvenci. Zde si stáhněte kody, nebo si v programu arduino ide nastavte ve vlastnosti „správce dalších desek URL:“ přidejte toto: https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
. Po přidání MiniCore je potřeba v manažer desek instalovat.
Předpokládá se, že máte u sebe jedno arduino uno. Přes které budeme nahrávat program do samotného čipu. Do arduino uno nahrajeme program ArduinoISP, ten najdeme v menu soubor – příklady – ArduinoISP, a nahrajeme do arduina.
Arduino Uno | Samotný čip ATmega328P |
Reset pin 10 | PIN 1 (PC6) RESET |
MOSI pin 11 | PIN 17 (PB3) D11 |
MISO pin 12 | PIN 18 (PB4) D12 |
SCK pin 13 | PIN 19 (PB5) D13 |
VCC | PIN 7 VCC |
VCC | PIN 20 AVCC |
GND | PIN 8 GND |
GND | PIN 22 GND |
Důležitá informaceKdyž je čip nastavený na externí krystal, tak je potřeba vždy nahrávat a měnit pojistky jen za použití krystalu, když třeba budete mít nastaveno, že čip využívá externí krystal, tak nebude možné program ani změna pojistek provést, dokud nedáte správný krystal externí nebo nepoužijete pro reset 12 voltů. Při použití jiné frekvence, se může změnit i maximální rychlost komunikace.
jestli tedy máte vše správně připojené, tak je v arduino ide potřeba nastavit programátor Arduino as ISP, a v nastavení MiniCore si zvolíme frekvenci, jakou budeme potřebovat, třeba když máme krystal, tak zvolíme externí. Při použití krystalu vnitřního (Internal) , tak už není potřeba využití krystalu. Když budeme chtít využít malé napětí , třeba 1.8 voltů, tak je potřeba to nastavit v BOD, jinak když klesne napětí pod třeba 2.7 voltů, tak se čip vypne, u využití nízkého napětí je možné tuto kontrolu vypnout (disabled). A teď už stačí vypálit zavaděč. Jakmile je nahrán, je možné nahrávat programy jak přes ISP (nahrát pomoci programátoru), tak přes TX a RX (nahrát přes sériový převodník s podporou resetu).
Důležitá informaceBootloader nese informaci nastavení frekvece, když je nastavený vnitřní krystal, a vy vypálíte nastavení 8MHz, ale pak se rozhodnete pro frekvenci 4MHz (ale už znovu nevypálíte nové nastavení), tak na rozdíl od externího vám program poběží, ale nebude vám vycházet čas.