Obsah:

AVR Assembler Tutorial 8: 4 Steps
AVR Assembler Tutorial 8: 4 Steps

Video: AVR Assembler Tutorial 8: 4 Steps

Video: AVR Assembler Tutorial 8: 4 Steps
Video: AVR Assembly Tutorial: Part 1 (Basic Commands) 2024, Červenec
Anonim
AVR Assembler Tutorial 8
AVR Assembler Tutorial 8

Vítejte v tutoriálu 8!

V tomto krátkém tutoriálu trochu odbočíme od zavádění nových aspektů programování v jazyce sestavení, abychom ukázali, jak přesunout naše prototypovací součásti na samostatnou desku s plošnými spoji. Důvodem je to, že v tomto okamžiku je naše hlavní prototypovací prkénko zaplněno tolika čipy, dráty, tlačítky a LED diodami, že je stále obtížnější testovat nové věci a protože nakonec stejně musíme přesunout součásti na vlastní desky "Mohli bychom také začít hned." Mnoho z vás pravděpodobně již umí věci, kterým se budeme v tomto tutoriálu věnovat, a tak se na tento výukový program můžete dívat jen jako na odpočinkovou přestávku od kódování.

Dnes tedy přesuneme náš kostkový váleček ATmega328P a doprovodný pár kostek na externí desku s připojením k naší hlavní desce pro komunikaci s ní a pro napájení. Kromě toho bude zapojení a fungování kostek v této komponentě samostatné.

Pravděpodobně z toho můžete předvídat, že naším konečným cílem je provést to s každou ze součástí, které na cestě vytvoříme, takže až budeme hotovi, můžeme je všechny schovat do pěkně vypadajícího balíčku, který bude fungovat pomocí stisků tlačítek, aniž byste viděli všechny vodičů a vnitřních funkcí.

Většinu tohoto tutoriálu strávíme fyzickými úkoly, jako je navrhování obvodu, mapování prototypové desky a pájení věcí dohromady, ale na konci je třeba trochu programování poté, co věci přesuneme. Důvodem je, že nakonec budeme používat 2vodičové sériové rozhraní ke komunikaci mezi naším hlavním "hlavním" ovladačem a všemi "podřízenými" řadiči, které tvoří součásti našeho celkového projektu v této sérii tutoriálů, a jak si vzpomínáte, v Tutoriálu 6 jsme vymysleli jakousi metodu typu Morseova abeceda pro komunikaci našich hodů kostkami z hracího kostky (výukový program 4) do analyzátoru registrů (výukový program 5), který zobrazoval výsledek hodu kostkami binárně na 8 LED diodách. No, to byl jen způsob komunikace „roll your own“, který jsem se rozhodl použít, protože v té době bylo příliš brzy na to, abychom se dostali do 2vodičové sériové komunikace. Nyní jsme téměř připraveni ponořit se do hlubokého konce sériové komunikace a uděláme to v Tutoriálu 10, ale prozatím musíme předvídat budoucí vývoj a znovu zapojit naše LED diody s kostkami, abychom uvolnili dvě piny, které potřebujeme pro sériovou komunikaci.

Jedná se o piny SCL a SDA na ATmega328P. Na pinoutovém diagramu můžete vidět, že se jim také říká ADC5 a ADC4, když se používají v převodu analogově na digitální, nazývají se PCINT13 a PCINT12, když se používají jako piny „Pin Change Interrupt“, a nakonec jim obecně říkáme PC5 a PC4 když jsou jednoduše považovány za piny na PortC. Vzhledem k tomu, že jsme tyto dva piny použili jako součást válečku na kostky z různých důvodů (hlavní z nich bylo, že to usnadnilo kódování a zapojení kabelů k LED diodám na desce), budeme nyní muset upravit náš kód a mírně jej znovu zapojit uvolněte tyto kolíky pro budoucí komunikaci.

Začneme tedy návrhem, řezáním, zapojením a pájením. Poté znovu napíšeme hrací kostku, aby fungovala s naším novým nastavením, a nakonec ji otestujeme, abychom se ujistili, že stále funguje.

K dokončení tohoto kurzu budete potřebovat následující položky:

  1. Standardní věci, které vždy potřebujete a které se přestanu neustále opakovat: vaše prototypovací deska, vaše kopie datového listu a sady instrukcí a vaše mozky.
  2. Prototypovací deska plošných spojů bezdrátového obvodu, jako je tato: https://www.ebay.com/itm/191416297627 Budu používat verzi této desky Measure Explorer 103RAWD: https://www.ebay.com/itm/103RAT -obvod-proto-proto … protože jich mám po ruce spoustu, ale verze 103RAW-0, na kterou odkazuji výše, bude fungovat také dobře.
  3. Zastřihovače, dráty, pájka, páječka, „pomocné ruce“nebo cokoli na držení věcí atd. Atd. Atd. Znovu, od této chvíle přestanu také vypisovat tyto věci. Pokud jste se v těchto výukových programech skutečně dostali tak daleko, pravděpodobně již máte všechny tyto věci.

Zde je odkaz na kompletní sbírku mých návodů k assembleru AVR:

Krok 1: Navrhněte schéma zapojení

Navrhněte schéma zapojení
Navrhněte schéma zapojení
Navrhněte schéma zapojení
Navrhněte schéma zapojení
Navrhněte schéma zapojení
Navrhněte schéma zapojení

Skvělou věcí na deskách Measure Explorer je, že když si uděláte čas a zmapujete věci na začátku, můžete si na konci ušetřit spoustu kabeláže. Začneme tedy tím, že věnujeme trochu času návrhu našeho rozložení, než začneme cokoli pájet. S tímto druhem desky musíte přestřihnout spoustu spojovacích vodičů, což není tak snadné, ale výsledkem je velmi pěkná kompaktní deska s minimem nepořádku zamotaných vodičů. První věc, kterou musíme udělat, je navrhnout naše obvod tak, aby se vešel na desku. Pěkný způsob, jak to udělat, je stáhnout si mapu desky a poté ji použít k hraní s různými návrhy, dokud nenajdete ten, který funguje. Zde je rozložení pro ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600-j.webp

Krok 2: Vystřihněte obvod na desce

Vystřihněte obvod na desce
Vystřihněte obvod na desce
Vystřihněte obvod na desce
Vystřihněte obvod na desce
Vystřihněte obvod na desce
Vystřihněte obvod na desce

Nejprve si vezměte nářez a pomocí rozvržení, které jste zmapovali v předchozím kroku, nakreslete svůj obvod na desku. Tj. nakreslete čáry, které představují dráty. Nekreslete nic, pokud jde o součásti, pouze spojovací vodiče, jak ukazuje první obrázek. Všimněte si, že když se pokazíte (a pokud jste něco jako já, v těchto krocích pokazíte věci mnohokrát), můžete použít gumu a vymazat řádek. Udělejte to pro obě strany desky.

Dále musíte přerušit spoje kolem čar. Pokud se podíváte pozorně na desku, uvidíte, že každý otvor pro kolíky je spojen se 4 sousedními otvory na obou stranách desky, takže všechny otvory na desce jsou navzájem propojeny, když začnete. Takže je musíte odříznout po obou stranách každého z vašich vodičů, abyste je izolovali. Nejběžnějším způsobem řezání je nůž Exacto. Nasávám ale nože Exacto a asi bych se pořezal. Používám tedy Dremel s tenkým nástavcem řezného nástroje. Přál bych si, abych měl nějaký druh brusného nástavce, který se dostal do ostrého bodu, protože by to fungovalo nejlépe - ale nemám takový, takže jsem použil nástavec pro řezací pilu. (Poznámka přidána: Po dokončení tohoto projektu jsem zjistil, že menší hlavy „těžkého řezacího kotouče“pro Dremels fungují nejlépe, vypadají jako malé kruhy brusného papíru a fungují jako zde zobrazený řezací nástroj, kromě toho, že mají menší průměr atd. je mnohem snazší vidět a ovládat, kde stříháte)

Po cestě je užitečné držet desku na světle a ujistit se, že jsou dráty skutečně proříznuty. Možná vás štve, že na obou stranách desky jsou spoje, takže budete muset proces řezání opakovat i s druhou stranou, ale myslím, že až to skončí, uvidíte smysl toho. Udělal jsem spoustu chyb, když jsem řezal dráty, které neměly být přestřiženy, a mít druhou stranu stále připojenou se ukázalo jako pěkné.

Vyjmutí obvodu na desku bude vyžadovat docela dost času a trpělivosti, ale jakmile se v tom vyznáte, je to docela zábava.

Krok 3: Pájejte součásti a vyzkoušejte

Pájejte součásti a vyzkoušejte
Pájejte součásti a vyzkoušejte
Pájejte součásti a vyzkoušejte
Pájejte součásti a vyzkoušejte
Pájejte součásti a vyzkoušejte
Pájejte součásti a vyzkoušejte

Nyní, když jste izolovali všechny vodiče ve vaší desce s obvody, můžete začít pájet jednotlivé součásti.

Nejprve jsem připájel diody LED pro jednu z kostek, poté jsem ze svého prkénka vzal kladné a záporné vodiče a otestoval připojení pro každou LED, abych se ujistil, že jsou navzájem izolované a že fungují.

Podobně s ostatními zemřít.

Poté připojte odpor ke každé kostce a odpor 10K na zadní straně desky.

Poté připojte krystalový oscilátor, krytky 22pf, tlačítka a ATmega328P. Možná budete chtít pájet zásuvku na čip a poté do ní vložit ATmega328P, abyste ji mohli odstranit, pokud chcete, a znovu ji použít v něčem jiném. Právě jsem připájel svůj čip k desce, protože vím, co nakonec vytváříme se všemi těmito výukovými programy, a vím, že se mi bude líbit natolik, že nebudu chtít čip vyndat.

Všimněte si při pohledu na zadní stranu desky způsob, jakým jsme připojili záhlaví. Použil jsem dlouhé kolíkové záhlaví a ohnul je vodorovně, aby nevyčnívaly z desky. To proto, abych nakonec mohl desku překrýt na úroveň tlačítek a LED diod kontejnerem a nepřekážela mi záhlaví. Máme záhlaví pro Tx, Rx, abychom mohli programovat čip, máme záhlaví pro SDA, SCL, abychom mohli později použít 2vodičovou komunikaci. a na druhé straně desky máme 3pinový konektor pro AVCC, AREF, GND. Mám všechny zemnící piny a piny VCC zapojené dohromady na čipu, takže potřebujeme pouze jeden příkon.

Nakonec, když je vše zapojeno, zapojíme kostku 1 do kostky 2 stejným způsobem, jako jsme to udělali na prkénku, abychom mohli ovládat obě kostky pouze pomocí 9 kolíků.

Nyní musíme upravit náš kód tak, aby ovládal toto nové nastavení.

Krok 4: Kód sestavy a video

Připojil jsem montážní kód a video s kostkou v provozu. Jediné, co jsem udělal, bylo převzít kód pro náš hrací kostku z výukového programu 6, upravit kolíky tak, aby odpovídaly novému rozložení, a odstranit podprogram komunikace, protože budeme psát novinka v Tutoriálu 10. Příště si znovu představíme klávesnici a naučíme se ovládat 7segmentové displeje. Uvidíme se!

Doporučuje: