Съдържание:

Урок за асемблер на AVR 8: 4 стъпки
Урок за асемблер на AVR 8: 4 стъпки

Видео: Урок за асемблер на AVR 8: 4 стъпки

Видео: Урок за асемблер на AVR 8: 4 стъпки
Видео: Светодиодная гирлянда на микроконтроллере | Микроконтроллеры с нуля #7 2024, Юли
Anonim
Урок за асемблер на AVR 8
Урок за асемблер на AVR 8

Добре дошли в Урок 8!

В този кратък урок ще направим малко отклонение от въвеждането на нови аспекти на програмирането на асемблерен език, за да покажем как да преместим нашите прототипни компоненти на отделна „печатна“платка. Причината е, че в този момент основната ни прототипна схема е натъпкана с толкова много чипове, проводници, бутони и светодиоди, че става все по -трудно да се тестват нови неща и тъй като в крайна сметка все пак трябва да преместим компонентите на техните собствени дъски, може и да започнем сега. Много от вас вероятно вече владеят нещата, които ще разгледаме в този урок, така че можете да гледате на този урок само като отпускаща почивка от кодирането.

Така че днес ще преместим нашата ролка за зарове ATmega328P и придружаващата я двойка зарове към външна платка с връзки към основната платка за комуникация с нея и за захранване. Освен това, свързването и функционирането на заровете ще бъдат самостоятелни в рамките на този компонент.

Вероятно от това можете да предвидите, че нашата евентуална цел е да направим това с всеки от компонентите, които конструираме по пътя, така че когато приключим, можем да ги скрием всички в красив пакет, който ще функционира чрез натискане на бутони, без да виждаме всички на проводниците и вътрешните работи.

Ще прекараме по -голямата част от този урок, като правим физически задачи като проектиране на схема, картографиране на прототипна платка и запояване на неща заедно, но има малко програмиране, което трябва да направим в края, след като преместим нещата. Причината е, че в крайна сметка ще използваме 2-проводния сериен интерфейс за комуникация между нашия главен "главен" контролер и всички "подчинени" контролери, които съставляват компонентите на цялостния ни проект в тази поредица от уроци и, както си спомняте, в Урок 6 ние измислихме нещо като метод на азбуката на Морзе, за да предадем нашите хвърляния на зарове от ролката за зарове (Урок 4) към регистърния анализатор (Урок 5), който показва резултата от хвърлянето на зарове в двоичен формат на 8 светодиода. Е, това беше просто метод за комуникация „roll your own“, който реших да използвам, защото по това време беше твърде рано да вляза в двупроводна серийна комуникация. Вече сме почти готови да се потопим в дълбокия край на серийната комуникация и ще го направим в Урок 10, но засега трябва да предвидим това бъдещо развитие и да свържем отново нашите светодиоди за зарове, за да освободим двата щифтове, от които се нуждаем за серийната комуникация.

Това са щифтовете SCL и SDA на ATmega328P. Можете да видите по схемата на разпределение, че те също се наричат ADC5 и ADC4, когато се използват в аналогово-цифрови преобразувания, те се наричат PCINT13 и PCINT12, когато се използват като щифтове "Прекъсване на смяна на щифтове" и накрая обикновено ги наричаме PC5 и PC4 когато просто се разглеждат като щифтове на PortC. Тъй като използвахме тези два щифта като част от нашата ролка за зарове по различни причини (основните от тях бяха, че улесни кодирането и свързването на светодиодите на платката), сега ще трябва да променим кода си и да го свържем отново, за да освободете тези щифтове за бъдеща комуникация.

Така че ще започнем с проектирането, изрязването, окабеляването и запояването. След това ще препишем ролката за зарове, за да работи с новата ни настройка и накрая ще я тестваме, за да се уверим, че все още работи.

За да завършите този урок, ще ви трябват следните елементи:

  1. Стандартните неща, от които винаги се нуждаете, аз ще спра да повтарям непрекъснато: вашата прототипираща платка, вашето копие на листа с данни и набора от инструкции и вашите мозъци.
  2. Прототипираща платка за безжична верига като тази: https://www.ebay.com/itm/191416297627 Ще използвам Measure Explorer 103RAWD версията на тази платка: https://www.ebay.com/itm/103RAT -circuit-proto-proto … тъй като имам доста от тях под ръка, но версията 103RAW-0, към която свързвам по-горе, също ще работи добре.
  3. Машинки за подстригване, проводници, спойка, поялник, „помощни ръце“или каквото и да е за държане на неща и т.н. и т.н. отново, от тук нататък ще спра да изброявам и тези неща. Ако наистина сте стигнали дотук в тези уроци, вероятно вече имате всички тези неща.

Ето линк към пълната колекция от моите уроци за AVR асемблер:

Стъпка 1: Проектирайте електрическа схема

Проектирайте електрическа схема
Проектирайте електрическа схема
Проектирайте електрическа схема
Проектирайте електрическа схема
Проектирайте електрическа схема
Проектирайте електрическа схема

Хубавото на дъските на Measure Explorer е, че ако отделите малко време и начертаете нещата в началото, можете да си спестите адски много кабели в края. Така че ще започнем, като отделим малко време за проектиране на нашето оформление, преди да започнем да запояваме нещо. С този вид платка трябва да отрежете куп свързващи проводници, което не е толкова лесно, но резултатът е много хубава компактна дъска с минимална бъркотия от заплетени проводници. Първото нещо, което трябва да направим, е да проектираме нашия верига, така че да се побере на платката. Хубав начин да направите това е да изтеглите картата на дъската и след това да я използвате, за да играете с различни дизайни, докато намерите този, който работи. Ето оформлението за ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600-j.webp

Стъпка 2: Изрежете веригата на дъската

Изрежете веригата на дъската
Изрежете веригата на дъската
Изрежете веригата на дъската
Изрежете веригата на дъската
Изрежете веригата на дъската
Изрежете веригата на дъската

Първо вземете острие и, използвайки вашето оформление, което сте набелязали в предишната стъпка, нарисувайте веригата си на дъската. Т.е. начертайте линии за представяне на проводниците. Не рисувайте нищо по отношение на компонентите, а само свързващите проводници, както е показано на първата снимка. Забележете, че когато прецакате (и ако сте нещо като мен, ще прецакате нещата много пъти в тези стъпки), можете да използвате гума и да изтриете линията. Направете това за двете страни на дъската.

След това трябва да прекъснете връзките около линиите. Ако погледнете внимателно дъската, ще видите, че всеки отвор за щифтове е свързан с 4 -те съседни от двете страни на дъската, така че всички отвори на дъската да са свързани помежду си, когато започнете. Така че трябва да изрежете по двете страни на всеки от проводниците си, за да ги изолирате. Най -често срещаният начин да направите това рязане е с нож Exacto. Но аз смуча ножовете Exacto и вероятно бих се нарязал. Затова използвам Dremel с тънка приставка за режещ инструмент. Иска ми се да имах някакъв вид приспособление за шлифоване, което стигна до остра точка, тъй като това би работило най -добре - но нямам такова, затова използвах приставката за рязане. (Бележка добавена: След приключване на този проект установих, че по -малките глави за "тежко натоварващи режещи колела" за Dremels работят най -добре, изглеждат като малки кръгчета шкурка и работят като режещия инструмент, показан тук, с изключение на това, че са с по -малък диаметър и т.н. много по -лесно е да виждате и контролирате къде режете)

По пътя е полезно да държите дъската до светлината и да се уверите, че проводниците всъщност са прерязани. Може да се дразните от факта, че има връзки от двете страни на дъската, така че трябва да повторите процеса на рязане отново с другата страна, но мисля, че ще видите смисъла на това, докато приключите. Направих много грешки при рязането на проводници, които не трябваше да се отрязват, а това, че другата страна все още е свързана, се оказва хубаво.

Ще отнеме доста време и търпение, за да прережете веригата в платката, но това е доста забавно, след като се справите добре.

Стъпка 3: Запоявайте компонентите и тествайте

Запоявайте компонентите и тествайте
Запоявайте компонентите и тествайте
Запоявайте компонентите и тествайте
Запоявайте компонентите и тествайте
Запоявайте компонентите и тествайте
Запоявайте компонентите и тествайте

След като сте изолирали всички проводници във вашата платка, можете да започнете да запоявате отделните компоненти.

Първо запоех светодиодите за един от заровете, след това взех положителни и отрицателни проводници от моята платка и тествах връзките за всеки светодиод, за да се уверя, че са изолирани един от друг и че работят.

По същия начин с другия матрица.

След това свържете резистора към всяка матрица и 10K резистора на гърба на платката.

След това прикрепете кристалния осцилатор, 22pf капачки, бутони и ATmega328P. Може да искате да запоите гнездо за чип и след това да поставите вашия ATmega328P в него, така че да можете да го премахнете, ако искате, и да го използвате отново в нещо друго. Току -що запоях чипа си на дъската, тъй като знам какво в крайна сметка изграждаме с всички тези уроци и знам, че ще ми хареса достатъчно, за да не искам да вадя чипа.

Забележете, като погледнете задната част на дъската, начина, по който прикрепихме заглавките. Използвах дълги заглавки за щифтове и ги огънах хоризонтално, така че да не стърчат от дъската. Това е така, че в крайна сметка да покрия дъската до нивото на бутоните и светодиодите с контейнер и да не ми пречат заглавките. Имаме заглавка за Tx, Rx, за да можем да програмираме чипа, имаме заглавка за SDA, SCL, за да можем по-късно да използваме двужична комуникация. и имаме 3 -пинов хедър за AVCC, AREF, GND от другата страна на платката. Имам всички заземителни щифтове и VCC щифтове, свързани заедно на чипа, така че имаме нужда само от един вход за захранване.

Накрая, след като всичко е свързано, ние свързваме матрица 1 към die2, както направихме на макета, така че да можем да контролираме и двете зарове само с 9 пина.

Сега трябва да променим нашия код, така че да контролира тази нова настройка.

Стъпка 4: Код за сглобяване и видео

Прикачих кода за сглобяване и видеоклипа на работещата ролка за зарове. Всичко, което направих, беше да вземам кода за нашата ролка за зарове от Урок 6, да променим щифтовете, така че да съответстват на новото оформление, и да премахнем комуникационната подпрограма, тъй като ще пишем нов в Урок 10. Следващия път отново ще извадим клавиатурата си и ще се научим как да контролираме 7-сегментните дисплеи. Ще се видим тогава!

Препоръчано: