Мазмуну:

AVR Assembler үйрөткүчү 8: 4 кадам
AVR Assembler үйрөткүчү 8: 4 кадам

Video: AVR Assembler үйрөткүчү 8: 4 кадам

Video: AVR Assembler үйрөткүчү 8: 4 кадам
Video: Лекция 4. Архитектура AVR. Ассемблер 2024, Июль
Anonim
AVR Assembler үйрөткүчү 8
AVR Assembler үйрөткүчү 8

Tutorial 8ге кош келиңиз!

Бул кыска үйрөткүчтө биз прототиптөөчү компоненттерибизди өзүнчө "басылган" электр тактасына кантип жылдыруу керек экенин көрсөтүү үчүн ассамблея тили программалоонун жаңы аспектилерин киргизүүдөн бир аз алаксыйбыз. Себеби, бул учурда биздин негизги прототиптелген панелибизде көптөгөн микросхемалар, зымдар, баскычтар жана светодиоддор тыгылып калгандыктан, жаңы нерселерди сыноо кыйын болуп жатат, анткени биз акыры баары бир компоненттерди өз такталарына жылдырышыбыз керек., биз азыр эле баштасак болот. Силердин көбүңөр, балким, бул үйрөткүчтө камтыла турган нерселерди жакшы билгендирсиңер, ошондуктан бул окуу куралын коддоодо жөн эле эс алуу катары карасаңар болот.

Ошентип, бүгүн биз ATmega328P сөөк ролигибизди жана аны коштогон түгөйлөрдү тышкы тактага өткөрүп беребиз жана аны менен байланышуу жана аны иштетүү үчүн биздин башкы тактага туташуусу бар. Мындан тышкары, сымдын зымдары жана иштеши ошол компоненттин ичинде болот.

Сиз, кыязы, биздин акыркы максатыбыз муну жолдо куруп жаткан ар бир компонент менен жасоо экенин айтабыз, ошондо биз бүткөндөн кийин алардын бардыгын кнопкаларды басуу аркылуу иштей турган жагымдуу пакетке катып алабыз. зымдардын жана ички иштердин.

Биз бул окуу куралынын көбүн схеманы долбоорлоо, прототипдөө тактасын картага түшүрүү жана нерселерди чогуу ширетүү сыяктуу физикалык тапшырмаларды аткарууга жумшайбыз, бирок биз нерселерди жылдыргандан кийин аягында бир аз программалоо керек. Себеби, биз акыры 2 зымдуу сериялык интерфейсти колдонуп, негизги "кожоюнубуз" контролери менен жалпы проектибиздин компоненттерин түзгөн бардык "кул" контроллерлеринин ортосунда ушул сабактардын сериясында жана, Эсиңерде болсо, 6 -үйрөткүчтө биз сөөктөрдүн роликтерин чүкө ролигинен (4 -үйрөткүч) Реестр анализаторуна (5 -үйрөткүч) жеткирүү үчүн Морзе кодунун бир түрүн ойлоп тапканбыз, ал 8 светодиод боюнча экилик түрүндө кубиктин түрүн көрсөткөн.. Ооба, мен колдонууну чечкен байланыштын "өз алдынча" ыкмасы эле, анткени ал учурда 2 зымдуу сериялык байланышка кирүү эрте болчу. Биз азыр сериялык байланыштын түпкүрүнө кирүүгө даярбыз жана муну 10-үйрөткүчтө жасайбыз, бирок азырынча биз келечектеги өнүгүүнү алдын ала карап, экөөнү бошотуу үчүн диоддук роликтерибизди кайра өткөрүшүбүз керек. биз сериялык байланыш үчүн керек болгон пиндер.

Бул ATmega328Pдеги SCL жана SDA казыктары. Сиз аналогдук-санариптик конверсияда колдонулганда алар ADC5 жана ADC4 деп да аталаарын пинту диаграммадан көрө аласыз, алар "Pin Change Interrupt" казыктары катары колдонулганда PCINT13 жана PCINT12 деп аталат жана акыры биз аларды PC5 жана PC4 деп атайбыз. качан гана PortC боюнча казык катары каралат. Биз бул эки төөнөгүчтү ар кандай себептерден улам сүйрөө ролигибиздин бир бөлүгү катары колдонгонубуздан (эң негизгиси, бул коддоону жеңилдетип, тактадагы светодиоддорго зым салууну жеңилдеткен), эми биз кодубузду өзгөртүп, аны бир азга кайра зым менен жабууга туура келет. келечектеги баарлашуу үчүн бул казыктарды бошотуу.

Ошентип, биз долбоорлоо, кесүү, зым жана ширетүүдөн баштайбыз. Андан кийин биз жаңы түзүлүшүбүз менен иштөө үчүн жаңы роликти кайра жазабыз жана акыры дагы деле иштээрине ынануу үчүн аны сынап көрөбүз.

Бул Үйрөткүчтү бүтүрүү үчүн сизге төмөнкү нерселер керек болот:

  1. Сизге дайыма керек болгон стандарттык нерселер: мен дайыма кайталоону токтотом: прототиптөө тактасы, маалымат барагынын көчүрмөсү жана нускамалар топтому жана мээңиз.
  2. PCB тактайы окшош зымсыз схема: https://www.ebay.com/itm/191416297627 Мен бул тактанын Measure Explorer 103RAWD версиясын колдоном: https://www.ebay.com/itm/103RAT -схема-прото-прото … анткени менде алардын бир тобу бар, бирок мен жогоруда шилтеме кылган 103RAW-0 версиясы да жакшы иштейт.
  3. Клипперлер, зымдар, ширеткичтер, ширетүүчү темир, "жардам колу" же нерселерди кармоо үчүн ж.б. Эгерде сиз чындыгында ушул окуу куралдарына жетишкен болсоңуз, анда сизде бул нерселердин баары бар.

Бул жерде менин AVR ассемблер окуу куралдарымдын толук коллекциясына шилтеме бар:

1 -кадам: Электр өткөргүч диаграммасын иштеп чыгуу

Кабелдик диаграмманы иштеп чыгуу
Кабелдик диаграмманы иштеп чыгуу
Кабелдик диаграмманы иштеп чыгуу
Кабелдик диаграмманы иштеп чыгуу
Кабелдик диаграмманы иштеп чыгуу
Кабелдик диаграмманы иштеп чыгуу

Measure Explorer такталарынын эң сонун жери, эгер сиз бир аз убакыт бөлүп, нерселерди башында картага түшүрсөңүз, анда сиз өзүңүздү аягында көптөгөн зымдарды сактап кала аласыз. Ошентип, биз бир нерсени эритип баштоодон мурун макетибизди иштеп чыгууга бир аз убакыт бөлүү менен баштайбыз. Мындай такта менен сиз туташтыруучу зымдардын бир тобун кесип салышыңыз керек, бул баары эле оңой эмес, бирок натыйжасы эң сонун чыңалуу такта, эң аз чырмалышкан зымдар. Биз кылышыбыз керек болгон нерсе - биздин дизайн схема тактага туура келгидей. Мунун эң жакшы жолу - бул тактанын картасын жүктөп алып, андан кийин аны иштегенге чейин ар кандай конструкциялар менен ойноо үчүн колдонуу. Бул жерде ME-PB-103RAWD макети https://www.bluemelon.com/photo/3483513-T800600-j.webp

2 -кадам: Борттогу схеманы кесип салыңыз

Борттогу схеманы кесип салыңыз
Борттогу схеманы кесип салыңыз
Борттогу схеманы кесип салыңыз
Борттогу схеманы кесип салыңыз
Борттогу схеманы кесип салыңыз
Борттогу схеманы кесип салыңыз

Биринчиден, кескичти алыңыз жана мурунку кадамда картага түшкөн макетиңизди колдонуп, схемаңызды тактага чийиңиз. Башкача айтканда зымдарды көрсөтүү үчүн сызыктарды тартыңыз. Компоненттер боюнча эч нерсе тартпаңыз, жөн эле бириктирүүчү зымдар биринчи сүрөттө көрсөтүлгөндөй. Байкасаңыз, сиз бурап жатканда (жана эгер сиз мага окшош болсоңуз, анда бул кадамдарда көп нерсени бузасыз), сиз өчүргүчтү колдонуп, сызыкты өчүрө аласыз. Муну тактанын эки тарабы үчүн жасаңыз.

Кийинки сиз линиялардын айланасындагы байланыштарды кесип салышыңыз керек. Эгерде сиз тактайга жакшылап карасаңыз, анда ар бир тешик тактанын эки жагындагы 4 жанаша тешикке туташтырылганын көрөсүз, андыктан тактадагы тешиктердин баары бири -бири менен туташып турат. Ошентип, сиз аларды ажыратуу үчүн зымдарыңыздын эки жагын тең кесишиңиз керек. Бул кесүүнүн эң кеңири таралган жолу - Exacto бычагы. Бирок мен Exacto бычактарын соруп жатам, балким өзүмдү кесип салмакмын. Ошентип, мен жука кесүүчү аспаптын тиркемеси бар Дремелди колдоном. Менде эң жакшы иштегенден кийин кандайдыр бир майдалоочу тиркеме болгум келет - бирок менде андай жок, ошондуктан кесүүчү араа тиркемесин колдондум. (Кошумча эскертүү: Бул долбоорду аяктагандан кийин, мен Dremels үчүн кичирээк "оор кесүүчү дөңгөлөк" баштары эң жакшы иштээрин байкадым, алар кичинекей тегерек кагазга окшош жана алар бул жерде көрсөтүлгөн кесүүчү курал сыяктуу иштейт, алардын диаметри кичине жана башка. кайда кесип жатканыңызды көрүү жана көзөмөлдөө оңой)

Жолдо тактайды жарыкка чейин кармап туруу жана зымдар чындыгында кесилгенин текшерүү пайдалуу. Тактанын эки тарабында тең байланыштар бар экенине кыжырыңыз келиши мүмкүн, андыктан кесүү процессин экинчи тарап менен дагы кайталашыңыз керек, бирок мен ойлойм, сиз муну бүтүргөнүңүзгө чейин түшүнөсүз. Мен кесилбеши керек болгон зымдарды кесүүдө көп ката кетирдим жана экинчи жагы дагы туташып турганы жакшы болуп чыкты.

Районду тактага кесүү үчүн бир аз убакыт жана чыдамкайлык талап кылынат, бирок сиз аны жакшы үйрөнгөнүңүздөн кийин бул кызыктуу.

3 -кадам: Компоненттерди ширетүү жана тестирлөө

Компоненттерди ширетүү жана тестирлөө
Компоненттерди ширетүү жана тестирлөө
Компоненттерди ширетүү жана тестирлөө
Компоненттерди ширетүү жана тестирлөө
Компоненттерди ширетүү жана тестирлөө
Компоненттерди ширетүү жана тестирлөө

Эми сиз схемаңыздагы бардык зымдарды бөлүп алгандан кийин, сиз жеке компоненттерге ширетүүнү баштасаңыз болот.

Мен адегенде светодиоддордун биринин диоддоруна ширетип койдум, андан кийин нан табактан оң жана терс коргошундарды алып, алардын бири -биринен обочолонгонуна жана иштээрине ынануу үчүн ар бир LEDдин туташууларын сынап көрдүм.

Ошол сыяктуу эле, экинчиси өлөт.

Андан кийин ар бир өлгөнгө резисторду жана тактанын арт жагындагы 10K резисторуна зым салыңыз.

Андан кийин кристалл осцилляторун, 22pf капкактарды, баскычтарды жана ATmega328P тиркеңиз. Сиз чиптин розеткасын ширетип, анан ATmega328Pти ошого салып, кааласаңыз, аны алып салып, башка нерсеге кайра колдонушуңуз мүмкүн. Мен чипти тактага такадым, анткени мен бул окуу куралдары менен эмнени куруп жатканыбызды билем жана мага ушунчалык жагат, мен чипти чыгаргым келбейт.

Башкармалыктын арткы жагына карап, баш аттарды кантип бекиткенибизди байкаңыз. Мен тактан чыгып кетпеши үчүн узун төөнөгүчтөрдү колдонуп, аларды горозонталдык түрдө ийкем. Бул акыры тактаны контейнер менен баскычтардын баскычтарына чейин жана LED диапазонуна чейин жаап, баштарым тоскоол болбошу үчүн. Бизде Tx, Rx үчүн баш бар, ошондуктан биз чипти программалай алабыз, бизде SDA, SCL үчүн баш бар, ошондуктан кийинчерээк 2 зымдуу байланышты колдоно алабыз. жана бизде коллегиянын башка жагында AVCC, AREF, GND үчүн 3 төөнөгүч бар. Менде бардык жер казыктары жана VCC казыктары чипке бириктирилген, андыктан бизге бир гана күч киргизүү керек.

Акыры, баары зымдуу болгондон кийин, биз экөөбүз тең 9 оюкчаны тең башкара алгыбыз үчүн, нан табактагыдай эле өлөбүз2.

Эми биз бул жаңы орнотууну көзөмөлдөй турган кодубузду өзгөртүшүбүз керек.

4 -кадам: Ассамблея коду жана видео

Мен монтаждык кодду жана сөөктүн ролигинин видеосун тиркеп койдум. Мен кылган нерселердин бардыгы, биздин сүйөк ролигибиздин кодун Tutorial 6дан алып, жаңы макетке ылайыктуу казыктарды өзгөртүп, байланыш программасын алып салдык, анткени биз жазабыз үйрөткүчтө 10. Кийинки жолу биз дагы клавиатурабызды сындырып, 7 сегменттүү дисплейлерди башкарууну үйрөнөбүз.

Сунушталууда: