Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
Systémový programátor (ISP) je zařízení, které můžete použít k programování mnoha mikrokontrolérů, například ATMega328p, což je mozek Arduino Uno. Můžete si koupit něco jako USBtinyISP, nebo dokonce můžete použít Arduino. Tento návod vám ukáže, jak používat Raspberry Pi jako ISP.
Program avrdude, který Arduino IDE používá pod kapotou k flash čipům, lze použít s mnoha programátory. Jednou z jeho možností je použít piny SPI na rozšiřujícím portu Pi. Vysvětlím, jak provést příslušná připojení, sestavit jednoduchý obvod na perfboardu, abyste nemuseli předělat kabeláž pokaždé, když chcete bliknout čip, a jak nainstalovat a používat avrdude. Také vám ukážu, jak pomocí této metody dostat programy kompilované pomocí Arduino IDE na čip AVR, jako je ATmega nebo ATtiny.
Potřebné věci:
- Raspberry Pi s nainstalovaným nejnovějším Raspbianem
- 40kolíková zásuvka zástrčky (nebo 26pinová, pokud máte starší Pi)
- Kabel IDE pro připojení k vašemu Pi
- 16 MHz krystalový rezonátor
- 22 pF kondenzátory (2)
- LED (1) indikuje stav programátoru
- 8, 14 a/nebo 28 pinové IC zásuvky, podle toho, jaký tvar čipů chcete blikat
- Nějaký perfboard, dráty, pájka
Krok 1: Sestavení ševcovského nástavce
Sériové periferní rozhraní (SPI), také nazývané čtyřvodičové sériové, je způsob komunikace mezi jedním hlavním zařízením a jedním nebo více podřízenými zařízeními. Použijeme to k flashování čipů, přičemž Pi jako master a čip jako slave. Mezi Pi a vaším čipem provedete následující připojení (různé piny AVR a rozšiřující porty Pi, abyste věděli, které piny jsou které), najdete na výše uvedených pinech:
- Spojte piny MOSI (master-out-slave-in) dohromady
- Spojte piny SCLK (sdílené hodiny) dohromady
- Spojte piny MISO (master-in-slave-out) dohromady s odporem 220 Ohm, abyste chránili Pi před neočekávaně vysokým napětím z čipu
- Připojte GPIO 25 na Pi přímo ke kolíku RESET na čipu. Pi při programování táhne tento pin nízko, takže používáme 10K odpor, abychom ho udrželi vysoko, když neprogramujeme, a LED s ochranným odporem 1K běžícím na kladné napětí, aby nám při programování poskytla pěknou vizuální zpětnou vazbu.
Mezi Pi a čipy, které chceme naprogramovat, propojíme zemnící a napájecí (3,3V) piny. Pokud to ještě nevíte, piny Raspberry Pi netolerují 5V - budou poškozeny, pokud se na nich objeví více než 3,3V. Pokud programované čipy z nějakého důvodu potřebují napájení 5 V, mohli bychom k ochraně pinů Pi použít čip s posunovačem úrovně, ale při použití 3,3 V jsem nenarazil na žádné problémy - doporučuji tedy hrát bezpečně a šetřit na součástkách.
Nakonec připojíme 16MHz krystalový oscilátor přes piny XTAL na čipu, který také připojíme k zemi pomocí několika 22pF kondenzátorů. Čipy AVR lze nastavit tak, aby běžely na různých frekvencích, a lze také nastavit použití interního nebo externího zdroje k určení této frekvence. Pokud je váš čip nastaven na použití externího krystalu jako zdroje frekvence, nebudete moci bez něj přeprogramovat. Jinak je jedno, jestli tam je.
Schéma zapojení na posledním obrázku můžete použít jako vodítko pro sestavení vašeho ševcovského nástavce na perfboardu. Můžete mít tolik nebo málo různých tvarů zásuvek IC, kolik chcete, stačí připojit příslušné piny paralelně s Pi a krystalem. N. B. použijete -li jako vodítko obrázek mého prototypu, všimněte si, že jsem přidal několik dalších kolíků záhlaví a zásuvek, abych měl přístup k kolíkům na Pi z nesouvisejících důvodů.
Krok 2: Instalace a používání Avrdude
Chcete -li na svůj Pi nainstalovat avrdude, stačí zadat
sudo apt-get install avrdude
Poté budete muset povolit rozhraní SPI, pokud ještě nebylo zapnuto. Existuje způsob příkazového řádku, ale je mnohem jednodušší použít konfigurační nástroj Raspberry Pi. Typ
sudo raspi-config
a přejděte na Možnosti rozhraní a zapněte SPI.
Abyste mohli svůj čip blikat, zapojte plochý kabel z vašeho Pi do konektoru v obvodu perfboardu a vložte čip do příslušné zásuvky IC (ujistěte se, že směřuje správným směrem).
Při spouštění programu musíte také zajistit správné nastavení pojistek v čipu. To jsou opravdu jen bity v čipu, které nastavíte, abyste mu řekli, jakou rychlostí má běžet, zda vymazat EEPROM při zápisu čipu atd. Můžete si přečíst celou specifikaci AVR, abyste zjistili, jak nastavit každý bit, ale je mnohem jednodušší použít kalkulačku pojistek poskytovanou na engbedded.com/fusecalc. Vyberte název součásti AVR, který používáte, a v oblasti „Výběr funkce“vyberte požadované možnosti. Obvykle se jen ujistím, že nastavení hodin je správné, a ostatní věci ponechám ve výchozím nastavení. Téměř vždy budete chtít nechat „Sériové programování povoleno“ZKONTROLOVÁNO a „Obnovit zakázáno“NEZkontrolováno - jinak nebudete moci přeprogramovat čip. Když máte správná nastavení, můžete se posunout dolů v oblasti „Aktuální nastavení“a zkopírovat argumenty AVRDUDE, jak je znázorněno na obrázku.
Chcete -li nastavit pojistky, zadejte příkaz
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p
kde název části odpovídá čipu, který používáte. Seznam názvů dílů najdete zadáním typu sudo ardude -c linuxspi -p ?. Chcete -li program flashovat, ujistěte se, že je ve vašem aktuálním adresáři, a zadejte
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash: w:: i
Po provedení obou příkazů se LED dioda rozsvítí, zatímco se čip upravuje.
Krok 3: Získání programů Arduino na AVR
Hlavním cílem této instrukce je blikat již zkompilované programy na čipy, ne jak je zapisovat nebo kompilovat. Chtěl jsem však vysvětlit, jak můžete kompilovat binární soubory pomocí Arduino IDE a dostat je na holé AVR čipy pomocí této metody, protože Arduino se relativně snadno učí a existuje tolik návodů a příkladů.
Nejprve budete muset přidat informace o AVR čipech, které budete blikat, aby IDE vědělo, jak je kompilovat. James Sleeman velmi užitečně sestavil některé instalační soubory, které jsou k dispozici na githubu. Chcete -li je použít, otevřete v Arduino IDE nabídku „Předvolby“a klikněte na pole vedle pole „Adresy URL dalších správců desek“. V zobrazeném dialogovém okně zkopírujte a vložte následující adresy URL:
Poté přejděte do nabídky „Nástroje“a v podnabídce „Deska“vyhledejte možnost „Správce desek …“. V dialogovém okně Správce desek přejděte dolů na konec seznamu a nainstalujte desky DIY ATmega a DIY ATtiny.
Chcete -li kompilovat své programy, nejprve se ujistěte, že jste vybrali správný čip v nabídce „Procesor“a správnou rychlost procesoru. Vyberte možnost „Použít zavaděč: Ne“, protože budeme nahrávat přímo pomocí Pi, a tak můžeme využít další prostor, který by normálně zabíral bootloader Arduino. Nyní klikněte na tlačítko „Ověřit“(zatržítko). Tím zkomplikujete svůj program, aniž byste se ho pokoušeli nahrát (protože tento krok děláte sami).
Za předpokladu, že vše půjde dobře, musíte nyní dostat kompilovaný program do svého Pi. IDE je skrývá na dočasném místě, protože je určeno k samotnému nahrávání programů. Ve Windows je to v AppData/Local/Temp ve vašem uživatelském adresáři, ve složce, která začíná 'arduino_build'. Vyhledejte soubor.hex - to je váš program! Odešlete jej na svůj Pi přes FTP nebo pomocí USB klíče a jste na řadě.
K tomu je nutné mít počítač se systémem Windows nebo Mac pro kompilaci programů, které poté odešlete do počítače Pi. Bylo by opravdu úhledné to udělat na samotném Pi, ale bohužel oficiální verze Arduino IDE dostupná v úložišti Raspbian je poměrně stará a nemá správce tabulek. Bez toho je přidání příslušného nastavení ke kompilaci pro holé AVR o něco složitější. Existují návody na kompilaci novější verze Arduina na vašem Pi - pokud je to to, co chcete udělat, jděte je najít! Také mám pocit, že by mělo být možné přimět IDE k použití programátoru linuxspi k flashování čipu přímo z IDE (tj. Pomocí tlačítka "stáhnout"), ale to přesahuje moji trpělivost a úroveň znalostí - pokud víte o způsob, napište to do komentářů! Nakonec byste mohli programy psát přímo v AVR-C a kompilovat je na Pi pomocí avr-gcc, což vám poskytne kompletní vývojovou platformu AVR v Raspberry Pi. Trochu jsem toho udělal a pokud chcete jít touto cestou, zdravím vás. Blikejte!
Doporučuje:
Bliká MicroPython na Kano Pixel Kit: 4 kroky
Flashing MicroPython na Kano Pixel Kit: Kano's Pixel Kit je skvělý kus hardwaru! Je vybaven 128 super jasnými RGB LED diodami, joystickem, 2 tlačítky, číselníkem, baterií a výkonným mikroprocesorem (ESP32). Pochází z továrny s firmwarem, který hovoří s aplikací Kano Code
LED bliká s Raspberry Pi - Jak používat GPIO piny na Raspberry Pi: 4 kroky
LED bliká s Raspberry Pi | Jak používat GPIO piny na Raspberry Pi: Ahoj, v tomto návodu se naučíme používat GPIO na Raspberry pi. Pokud jste někdy používali Arduino, pravděpodobně víte, že na jeho piny můžeme připojit LED spínač atd. A zajistit, aby fungoval. nechte blikat LED nebo vstupujte z přepínače, aby
Mikrokontrolér AVR. LED bliká pomocí časovače. Časovače Přerušení. Režim CTC časovače: 6 kroků
Mikrokontrolér AVR. LED bliká pomocí časovače. Časovače Přerušení. Režim časovače CTC: Ahoj všichni! Časovače jsou důležitým konceptem v oblasti elektroniky. Každá elektronická součástka pracuje na časové bázi. Tato časová základna pomáhá synchronizovat veškerou práci. Všechny mikrokontroléry pracují na nějaké předdefinované hodinové frekvenci
Návrh PCB LED bliká pomocí 555 IC: 7 kroků (s obrázky)
Návrh PCB blikání LED pomocí 555 IC: AHOJ to
Malina Pi LED bliká: 5 kroků (s obrázky)
Raspberry Pi LED Blink: Nyní se naučíte nejjednodušší projekt, který můžete vytvořit pomocí Raspberry Pi. Pokud to do teď nevíte, mluvím o programu mrknutí, jak je vidět na arduinu. Používám některé velmi běžné věci, o kterých se můžete dozvědět v příštím