Мазмуну:

Dragon Rider 500дү AVR Dragon менен кантип колдонуу керек: 10 кадам
Dragon Rider 500дү AVR Dragon менен кантип колдонуу керек: 10 кадам

Video: Dragon Rider 500дү AVR Dragon менен кантип колдонуу керек: 10 кадам

Video: Dragon Rider 500дү AVR Dragon менен кантип колдонуу керек: 10 кадам
Video: Two Steps From Hell - Dragon Rider (Archangel) 2024, Июль
Anonim
Dragon Rider 500дү AVR Dragon менен кантип колдонсо болот
Dragon Rider 500дү AVR Dragon менен кантип колдонсо болот

Бул үйрөткүч Ecros Technologies компаниясынан Dragon Rider 500дүн кээ бир өзгөчөлүктөрүн кантип колдонуу керектигинин курсу. Сураныч, Ecros сайтында жеткиликтүү абдан деталдуу Колдонуучу Колдонмосу бар экенин билиңиз.

Dragon Rider - бул AVM Dragon by Atmel деп аталган AVR микроконтроллер программисти менен колдонуу үчүн интерфейс тактасы. Көбүрөөк маалымат алуу үчүн: Atmel's Wesite: https://www.atmel.com/ AVR Dragon шилтемеси: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Ecros Technology тарабынан Dragon Rider 500: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500 куралы Нускама: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/AVR микроконтроллери жөнүндө баардыгын билиңиз: https://www.avrfreaks.net Бул үйрөткүч убакыттын өтүшү менен өсүшү мүмкүн, андыктан кайра-кайра текшерип туруңуз!

1 -кадам: AVR Dude

Программалоо үчүн AVR Dragonду колдонуу үчүн сизге кээ бир программалоо программалары керек. Мен AVRdude менен Ubuntu операциялык тутумун (linux) колдоном жана мен жыйынтыгына абдан кубанычтамын. Эгерде сиз программалык камсыздоону кантип орнотууну же колдонууну билбесеңиз, анда сизди ылдамдыкка жеткирүү үчүн бул инструкцияны текшериңиз: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-ажыдаар/Менин оюмча, эгер сиз Dragon Rider 500дү сатып алып, чогулткан болсоңуз, анда AVR Dragon менен чипти кантип программалоону билесиз ….. мындан ары!

2 -кадам: ATtiny2313 - Светодиоддорду өчүрүңүз

ATtiny2313 - Светодиоддорду өчүрүү
ATtiny2313 - Светодиоддорду өчүрүү
ATtiny2313 - Светодиоддорду өчүрүү
ATtiny2313 - Светодиоддорду өчүрүү
ATtiny2313 - Светодиоддорду өчүрүү
ATtiny2313 - Светодиоддорду өчүрүү

Келгиле, 20-пин микроконтроллер болгон ATtiny2313 программасын Dragon Rider 500 бир нече түрдүү AVR микроконтроллерлери үчүн оюгу бар. Буга төмөнкүлөр кирет: 8, 20, 28 жана 40 пин розеткалар. Кайсы розетканы колдонгонуңузга жараша, Dragon Rider тактасындагы секиргичтер башкача орнотулушу керек.

Jumper орнотуулары

Shunts төмөнкү казыктарды туташтырып тургандай кылып Dragon Riderге секиргичтерди орнотуңуз. (pin4 - бул J22 -J -24 үчүн борбордук пин) Пиндер: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Бул ISPге (системалык программалоодо) мүмкүндүк берген негизги орнотуу.

Blinky Blinky

Программалоо үчүн эч нерсе жок болсо, программалоо жакшы болбойт. Мен абдан кыска коддун мисалын жаздым, анда бир убакта Dragon Riderдин LED'ин жаркыратып коём. LED башын (J29) PortB башына (J2) туташтыруу үчүн лента кабелин колдонуңуз.

Программалоо

Мен C файлын, ошондой эле makefile жана hex файлын коштум. Киришүүдө айткандай, мен инструктивдүү программалоонун программалык жагын камтый албайм. Сизге окшош программа AVR Dragon үчүн, анткени Dragon Rider нерселердин программалык жагын эч өзгөртпөйт.

3-кадам: ЖК кошуусун колдонуу

ЖК кошуусун колдонуу
ЖК кошуусун колдонуу

Бул жерде ЖК кошуусун колдонуунун жөнөкөй жолу. Бул ЖК экранга "Dragon Rider" деп жазат.

Аппараттык:

  • ATtiny2313
  • R/W Jumper: R/W Dragon Rider Board "BIT1" менен туташтырылышы керек (Ассамблеядан Инструкциялуу түшүндүрмөнү караңыз)
  • J23: Бул секиргич ISP программалоо үчүн орнотулушу керек, бирок андан кийин ЖКнын туура иштеши үчүн алынып салынышы керек.
  • Лентаны кабель аркылуу ЖКны ПОРТ Вга туташтырыңыз (J31ден J2ге чейин)

Программалык камсыздоо

Мен Питер Флеринин ЖК китепканасын ЖКны 4 биттик режимде айдап чыгуу үчүн колдонуп жатам. Китепкананы жүктөө үчүн Петирдин Башкы бетин караңыз. Lcd.c сиздин кодуңуз менен түзүлүп, lcd.hге төмөнкү өзгөртүүлөрдү киргизишиңиз керек:

Биз ички RC осцилляторун колдонуп жатабыз, ошондуктан XTAL 1МГцке орнотулушу керек:

#аныктоо XTAL 1000000

  • Порт жөндөөлөрүн PORTBге тууралоо керек:
  • #define LCD_PORT PORTB

  • 4 маалымат линиясына Pinout ыңгайлаштырылышы керек:
  • #decine LCD_DATA0_PIN 4 #LCD_DATA1_PIN 5ти аныктоо #LCD_DATA2_PIN 6 #аныктоо LCD_DATA3_PIN 7

  • RS, RW жана E үчүн Pinout ыңгайлаштырылышы керек:
  • #LCD_RS_PIN 3ти аныктоо #LCD_RW_PIN 1ди аныктоо #LCD_E_PIN 2ди аныктоо

    Негизги программа Питер Флеринин LCD китепканасында жасаган эмгегинин аркасында абдан жөнөкөй.

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // lcd_clrscr () курсорун өчүрүү менен ЖКди баштоо; // ЖК экранды тазалаңыз lcd_gotoxy (5, 0); // Курсорду бул жерге жылдыруу lcd_puts ("Dragon"); // Бул сапты LCD lcd_gotoxyге коюңуз (6, 1); // Курсорду бул жерге жылдыруу lcd_puts ("Rider"); // Бул сапты ЖКга кой (;;) {// Эч качан кылба (билдирүү ЖКда мурунтан эле көрсөтүлгөн)}}

    Код тиркелди

    Тиркелген код анын уруксаты менен Питер Флеринин LCD китепканасын (lcd.c жана lcd.h) камтыйт. Рахмат Питер! Мен ага киргизген жалгыз өзгөртүү - бул аныктамаларга туура төөнөгүчтөрдү коюу. Сураныч, пакетти жүктөө үчүн анын сайтына баш багыңыз: https://www.jump.to/fleury Мен ошондой эле Eric B. Weddington жана Jorg Wunsch тарабынан жазылган макияфайлды коштум. Мен avrfreaks.net сайтына Джорго ПМ жөнөттүм, бирок андан эч качан жооп алган эмесмин. Linux жана Ажыдаарды колдонууга ылайыкташтыруу үчүн makefileде бир нече өзгөрүүлөр бар. Экөөңүздөргө тең рахмат, мага өз иштериңизди бөлүшүү боюнча каалоолоруңузду билдириңиз.

    4-кадам: 28-пин UC ISP программалоо (ATmega8)

    28-пин UC ISP программалоо (ATmega8)
    28-пин UC ISP программалоо (ATmega8)
    28-пин UC ISP программалоо (ATmega8)
    28-пин UC ISP программалоо (ATmega8)

    Долбоордун кийинки демонстрациясы 28-пин авр болгон ATmega8ди колдонот. Бул жерде 28 пиндүү микроконтроллерди программалоо үчүн негизги секирүүчү орнотулган.

    Jumper орнотуулары

    Shunts төмөнкү казыктарды туташтырып тургандай кылып Dragon Riderге секиргичтерди орнотуңуз. (pin4 - J22 -J -24 үчүн борбордук пин) Пиндер: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Техникалык маалымат

    • J11 жана J12ди ушул ыкма менен туташтыруу, бул казыктарды I/O казыктары катары колдонууга мүмкүндүк берет. Альтернатива бул казыктарды тышкы кристалл менен байланыш түзүү үчүн багыттоо болмок.
    • J13ди ушул ыкма менен туташтыруу, аны кайра орнотуу пини катары колдонууга мүмкүндүк берет. Альтернатива бул пинди PORTC башына I/O пини катары колдонуу үчүн багыттайт. (бул көптөгөн мүчүлүштүктөргө ээ болмок, анын ичинде бул чипти ISP аркылуу программалай албоо).
    • J16 & J22-J24 тийиштүү казыктарды (Reset, MISO, MOSI жана SCK) AVR Dragonдун ISP башына багыттоо үчүн ушинтип туташкан.

    5 -кадам: Advanced LCD жана Button Use: Big Clock

    Advanced LCD жана баскычтарды колдонуу: чоң саат
    Advanced LCD жана баскычтарды колдонуу: чоң саат

    Бул ЖК экранды жана баскычтарды колдонуучу кызыктуу долбоор. Биз ЖКдагы Real Time Clock функциялары жана колдонуучунун белгилери менен алектенебиз. Төмөндөгү сүрөттө ЖК экранда 19:26:07 кечинде көп санда көрсөтүлгөн убакытты көрө аласыз. Ар бир сан көп санды көрсөтүү үчүн каармандардын дисплейинин 2х2 сеткасын колдонот. Бул XBMC долбоору үчүн Xtinus тарабынан жазылган арипти колдонот. Баскычтар саатты коюу үчүн колдонулат. Саатты солго көбөйтөт, мүнөтүн жогорулатат, Оңго 12 менен 24 сааттык убакытты алмаштырат жана Enter секунддарды нөлгө кайтарат. Биз абдан так эмес ички осцилляторду колдонуп жаткандыктан, саат абдан жакшы убакытты өткөрбөйт, бирок бул программаны оңой эле өзгөртүп, алда канча так тышкы кристаллды колдонууга болот. Муну төмөнкү видеодон иш жүзүндө көрүңүз. Бул коддун иштешинин түшүндүрмөсү тартипте, бирок азырынча убактым жок. Азырынча, LCD башын (J31) PORTD (J4) менен баскычтын башын (J30) PORTB (J2) туташтырыңыз. SW1 жана SW2 экөө тең өчүк абалында экениңизди текшериңиз. AVR Dragonду USB кабелине туташтырып, кабелдин экинчи учун компьютериңизге сайыңыз. SW2ди күйгүзүңүз жана ATmega8ди өзүңүз тандаган программалоо программасы менен программалаңыз (төмөндөгү он алтылык файл; заводдук орнотууларга күйгүзгүчтөр күйүп кеткен). ЭСКЕРТҮҮ: Солго жана Өйдө баскычтарын колдонуу үчүн J22 жана J24төн шунттарды алып салуу керек, бул электр өчүп турганда.

    6 -кадам: Жогорку чыңалуудагы программалоо

    Мен туура эмес сактандыруучу орнотууларды койгон ATtiny2313 тирилтүү үчүн жогорку чыңалуудагы параллелдүү программалоону колдондум. Бул көрсөтмө менен иштөөдө мага экинчи жолу керек болду, анткени кокусунан hfuse регистрине каалаган lfuse орнотуусун жаздым …. Жогорку вольттуу параллелдүү программалоо - бул сиздин карамагында болуу үчүн ыңгайлуу курал! Төмөндө менин секирүүчү жөндөөлөрүмдүн тизмеси келтирилген: ӨЗ ӨРКҮҢҮЗДӨ КОЛДОНУҢУЗ, БУЛ ПРОГРАММАЛОО ТИПИ СИЗДИН ЭМНЕНИ БИЛБЕСЕҢИЗ, СИЗДИН ЭРКИНДИГИҢИЗГЕ зыян келтириши мүмкүн !! Жогорку чыңалуудагы параллелдүү программалоо: U3 розеткасында ATtiny2313: SW1 - OFFSW2 - ONJ5, J6, J7 - pin1 жана pin2XTAL1 туташуу - pin1 жана pin2J16 туташтыруу - pin1 жана pin22x5 IDC кабелдерин туташтыруу: PROG_CTRL портуна D, PROG_DATA портуна BA башка туташуу үчүн J8-J13, J18, J19, J20, J22-J28, J24) Башка чиптер үчүн Atmelдин STK500 үчүн колдонмосунан керектүү орнотууларды аныктап алышыңыз керек.

    7 -кадам: Тактан тышкары кеңейүү

    Тактан тышкары кеңейтүү
    Тактан тышкары кеңейтүү

    Мага панель менен интерфейс кылуу абдан оңой. Бул ошол эле учурда кодду прототиптөөдө жана иштеп чыгууда бир топ ийкемдүүлүккө мүмкүндүк берет. Төмөндө сиз Dragon Rider менен байланышкан бир нече панелди көрөсүз. Мен лента кабелдерин бир четинен тиешелүү портко туташтырам. Экинчи жагынан, ICDдин туура өткөргүчүн нан такталары менен туташтыруу үчүн мен секирүүчү зымдарды колдоном.

    8 -кадам: Жыйынтык

    Бул Нускамага катыша турган дагы көп нерселер бар. Бүгүн кечинде мен Dragon Riderден ажыдаарды алып салбастан, 6-пин программалоо башын колдонууга мүмкүндүк берген адаптерди бүтүрөм. Мен сизди кантип куруу керектиги жөнүндө маалымат берем … жакында. Эгерде сизде башка нерселер болсо, анда аларды кошуу керек деп ойлойсуз.

    9-кадам: 6-пин ISP кошуу

    6-пиндүү ISP кошуу
    6-пиндүү ISP кошуу
    6-пиндүү ISP кошуу
    6-пиндүү ISP кошуу
    6-пин провайдер кошуу
    6-пин провайдер кошуу

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

    Эскертүү !

    Бул хак. Эгер бул кандайча иштээрин так билбесеңиз, муну жасабаңыз

    Сизге эскертүү берилди. Мен 6-пин исп башын камсыз кылуу үчүн өзүмдүн адаптер тактамды жана 3-пин секиргичти түздүм. Эмне кылсаңыз, Dragon Rider программасына жана 8-пин микроконтроллерге орнотулган. 3-пин розетканы колдонуу менен мен J8ди секирип 1 жана 3-казыктарды туташтырып жатам. Бул саат сигналын PortB коннекторуна багыттайт. Мен андан кийин PortB аталышынан адаптер тактасына жана voilaга секирүүчү кабелди өткөрөм! Төмөндө сүрөттөр бар …. сураныч, сураныч, сураныч, муну жасабаңыз, эгер сиз эмне кылып жатканыңызды чындап түшүнбөсөңүз, мындай кылбаңыз, анткени сиз AVR Dragon'уңузга зыян келтиришиңиз мүмкүн, эгер сиз бул туура эмес кылсаңыз.

    Pinout: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    10 -кадам: Сериялык туташууну жана ЖКны колдонуу менен RSS Reader

    Сериялык туташууну жана ЖКны колдонуу RSS Reader
    Сериялык туташууну жана ЖКны колдонуу RSS Reader
    Сериялык туташууну жана ЖКны колдонуу RSS Reader
    Сериялык туташууну жана ЖКны колдонуу RSS Reader

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

    Аппараттык

    Биз өнүктүрүү тактасы катары Dragon Rider 500 колдонуп жатабыз. Бул сизге керектүү жабдыктардын бардыгын камсыз кылат (сизде бардык кошумча комплекттер бар деп ойлосок). Бул, албетте, муну өзүңүздүн аппараттык орнотууңуз менен жасай аласыз деп айтылып жатат:

    • ATmega8 микроконтроллери (же USART бар жана бардык туташуулар үчүн жетиштүү казыктары бар
    • Микроконтроллерди программалоонун жолу (мен AVR Dragon колдоном)
    • MAX232 чип сериялык байланыш үчүн
    • DB9 туташтыргычы
    • HD44780 ЖК экраны
    • Кристалл (мен 8 МГц кристалды колдондум)
    • Түрдүү конденсаторлор жана резисторлор

    Схема төмөндө келтирилген. Dragon Riderде биз байланыштарды маршрутташтыруу үчүн бир аз чыгармачылыкты колдонушубуз керек. Адатта Порт D түздөн -түз LCD башына туташтырылышы мүмкүн. Бул жерде андай эмес, анткени USART сериялык туташуу үчүн керек PD0 жана PD1ди колдонот. Мындан тышкары, Порт B колдонулбайт, анткени PB6 жана PB7 тышкы кристалл үчүн колдонулат. Төмөндө бул көйгөйдү чечүү үчүн сүрөттөлгөн. Мен лента кабелин ЖК, В порт жана D портунун башына туташтырам, андан кийин туура жолдорду түзүү үчүн секиргич зымдарды колдоном. ЖКнын башына чыңалууну жана жерге туташтырууну унутпаңыз.

    Программалык камсыздоо

    Бул долбоордун программалык камсыздоосу эки бөлүктөн турат: микроконтроллердин микрофону жана RSS каналдарын кыруу жана аларды сериялык байланыш аркылуу жөнөтүү үчүн питон скрипти. /fleury). Бул күчтүү жана кыска, ар тараптуу жана аппараттык орнотууңузду өзгөртүү оңой. Эгерде сиз тиркелген баш файлды (lcd.h) карасаңыз, анда мен 4-бит режиминде иштеп жатканымды көрөсүз, мен D-битти, ал эми Б-портун контролдук бит катары.:

    • Микроконтроллер иштетилгенден кийин "RSS Reader" дисплейин көрсөтүп, андан кийин сериялык маалыматтарды күтөт.
    • Алынган сериялык маалыматтын ар бир байты 16 таңбадан турган буфердин солго жылышына жана байтты буферге кошууга алып келет, андан кийин буферди көрсөтөт.
    • Үч атайын буйрук микроконтроллер тарабынан кабыл алынат: 0x00, 0x01 жана 0x02. Булар так экран, 0 -сапка өтүү жана 1 -сапка өтүү.

    Python ScryptI RSS маалыматын кырып, сериялык туташуу аркылуу жөнөтүү үчүн pyton скриптин жазган. Бул үчүн, балким, системаңызга орнотушуңуз керек болгон python "pyserial" модулу керек. RSS түрмөгүн pyton файлынын жогору жагында конфигурациялоого болот. Түрмөктүн аталышын, ошондой эле түрмөктүн URL дарегин киргизишиңиз керек экенин байкаңыз. Ал жерде үч мисал бар, мен аларды туура синтез үчүн ээрчип кете аларыңа ишенем

    • Аппаратты чогултуу
    • Микроконтроллерди программалоо (эгер сиз муну өзүңүз түзгүңүз келбесе, dragon_rss.hex колдонсо болот). 8 МГц кристаллын колдонуп ATmega8 үчүн сактандыруучу жөндөөлөр: lfuse = 0xEF hfuse = 0xD9
    • Dragon Riderди күйгүзүңүз жана сериялык кабель сайылганын текшериңиз (ЖК: "RSS Reader" деп окулушу керек)
    • Python программасын аткарыңыз (python serial_rss.py)
    • Ырахат

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