Съдържание:

Как да използвате Dragon Rider 500 с вашия AVR Dragon: 10 стъпки
Как да използвате Dragon Rider 500 с вашия AVR Dragon: 10 стъпки

Видео: Как да използвате Dragon Rider 500 с вашия AVR Dragon: 10 стъпки

Видео: Как да използвате Dragon Rider 500 с вашия AVR Dragon: 10 стъпки
Видео: ТРИ БЛЮДА НА НОВЫЙ ГОД 2024. Салат из капусты. Салат с Печенью! ЗАКУСКА С КАРТОШКОЙ И СЕЛЕДКОЙ 2024, Юли
Anonim
Как да използвате Dragon Rider 500 с вашия AVR Dragon
Как да използвате Dragon Rider 500 с вашия AVR Dragon

Тази инструкция е краш курс за това как да използвате някои от функциите на Dragon Rider 500 от Ecros Technologies. Моля, имайте предвид, че на уебсайта на Ecros има много подробно Ръководство за потребителя.

Dragon Rider е интерфейсна платка за използване с AVR микроконтролерен програмист, наречен AVR Dragon от Atmel. За повече информация: Уебсайт на Atmel: https://www.atmel.com/ AVR Dragon link: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 от Ecros Technology: 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 Пич

Имате нужда от софтуер за програмиране, за да използвате AVR Dragon за програмиране. Използвам AVRdude с операционната система Ubuntu (linux) и съм много доволен от резултатите. Тази инструкция няма да се занимава с тънкостите на софтуера за програмиране. Ако не знаете как да настроите или използвате софтуер за програмиране, проверете тази инструкция, за да ви ускорим: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon/Предполагам, че ако сте закупили и сглобили Dragon Rider 500, вече знаете как да програмирате чип с AVR Dragon … … нататък!

Стъпка 2: ATtiny2313 - Мигайте светодиодите

ATtiny2313 - Мигайте светодиодите
ATtiny2313 - Мигайте светодиодите
ATtiny2313 - Мигайте светодиодите
ATtiny2313 - Мигайте светодиодите
ATtiny2313 - Мигайте светодиодите
ATtiny2313 - Мигайте светодиодите

Нека програмираме ATtiny2313, който е 20-пинов микроконтролер. Dragon Rider 500 има гнезда за няколко различни по размер AVR микроконтролери. Те включват: 8, 20, 28 и 40 пинови гнезда. В зависимост от това кой гнездо използвате, джъмперите на платката Dragon Rider трябва да бъдат настроени по различен начин.

Настройки на джъмпера

Поставете джъмперите на Dragon Rider така, че шунтите да свързват следните щифтове. (щифт 4 е централният щифт за J22 -J -24) Пинове: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Това е основна настройка, която позволява ISP (при системно програмиране).

Blinky Blinky

Програмирането не е от полза, освен ако нямате какво да програмирате. Написах много кратък пример за код, за да мига светодиодите на Dragon Rider един по един. Използвайте лентов кабел, за да свържете LED заглавката (J29) към заглавката PortB (J2).

Програмиране

Включих файла C, както и makefile и шестнадесетичния файл. Както споменах във въведението, не мога да покрия софтуерната страна на програмирането в Instructable. Програмирайте както вие за AVR Dragon, тъй като Dragon Rider изобщо не променя софтуерната страна на нещата.

Стъпка 3: Използване на LCD добавката

Използване на LCD добавката
Използване на LCD добавката

Ето един прост начин да използвате LCD добавката. Това ще напише "Dragon Rider" на LCD екрана.

Хардуер:

  • ATtiny2313
  • R/W джъмпер: R/W трябва да бъде свързан към "BIT1" на дъската на Dragon Rider (вижте обяснението в инструкциите за монтаж)
  • J23: Този джъмпер трябва да бъде инсталиран за програмиране от ISP, но след това да бъде премахнат, за да може LCD да работи правилно.
  • Свържете LCD към PORT B с помощта на лентов кабел (J31 към J2)

Софтуер

Използвам LCD библиотеката на Peter Fleury, за да управлявам LCD дисплея в 4-битов режим. Разгледайте началната страница на Peter, за да изтеглите библиотеката. Ще трябва да се уверите, че lcd.c е компилиран с вашия код и че правите следните промени в lcd.h:

Използваме вътрешния RC осцилатор, така че XTAL трябва да бъде настроен за 1MHz:

#дефинирайте XTAL 1000000

  • Настройките на порта трябва да бъдат коригирани в PORTB:
  • #define LCD_PORT PORTB

  • Изводът за 4 реда данни трябва да бъде адаптиран:
  • #define LCD_DATA0_PIN 4 #define LCD_DATA1_PIN 5 #define LCD_DATA2_PIN 6 #define LCD_DATA3_PIN 7

  • Изводите за RS, RW и E трябва да бъдат адаптирани:
  • #define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2

    Основната програма е много проста благодарение на работата, която Питър Флери извърши в своята LCD библиотека.

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Инициализиране на LCD с изключен курсор lcd_clrscr (); // Изчистване на LCD екрана lcd_gotoxy (5, 0); // Преместване на курсора на това място lcd_puts ("Dragon"); // Поставете този низ на LCD lcd_gotoxy (6, 1); // Преместване на курсора на това място lcd_puts ("Rider"); // Поставете този низ на LCD дисплея за (;;) {// Не правете нищо завинаги (Съобщението вече се показва на LCD)}}

    Кодът е приложен

    Приложеният код включва LCD библиотеката на Peter Fleury (lcd.c и lcd.h) с негово разрешение. Благодаря ти Петър! Единствената промяна, която направих, е да задам правилните щифтове в Defines. Моля, посетете неговия сайт, за да изтеглите пакета: https://www.jump.to/fleuryВключих и makefile, който използвам, написан от Eric B. Weddington и Jorg Wunsch. Изпратих PM на Jorg на адрес avrfreaks.net, но така и не получих отговор от него. Има няколко промени в makefile, за да се приспособи към използването на Linux и Dragon. Благодаря ви и двамата, моля, уведомете ме за вашите предпочитания, като споделям работата ви.

    Стъпка 4: 28-пиново UC ISP програмиране (ATmega8)

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

    Следващата демонстрация на проекта ще използва ATmega8, който е 28-пинов avr. Ето основния набор от джъмпери за ISP програмиране на 28-пиновите микроконтролери.

    Настройки на джъмпера

    Поставете джъмперите на Dragon Rider така, че шунтите да свързват следните щифтове. (щифт 4 е централният щифт за J22 -J -24) Щифтове: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Техническа информация

    • Свързването на J11 и J12 по този начин ви позволява да използвате тези щифтове като I/O щифтове. Алтернативата би била да насочите тези щифтове, за да направите връзка с външния кристал.
    • Свързването на J13 по този начин ни позволява да го използваме като щифт за нулиране. Алтернативата би насочила този щифт към заглавката PORTC за използване като I/O пин. (това би имало много недостатъци, включително невъзможността да се програмира този чип чрез ISP).
    • J16 и J22-J24 са свързани по този начин, за да насочат съответните щифтове (нулиране, MISO, MOSI и SCK) към ISP заглавката на AVR Dragon.

    Стъпка 5: Разширено използване на LCD и бутони: Големият часовник

    Разширено използване на LCD и бутони: Големият часовник
    Разширено използване на LCD и бутони: Големият часовник

    Това е забавен проект, който използва LCD екрана и бутоните. Ще се занимаваме с функции на часовника в реално време и персонализирани символи на LCD дисплея. На снимката в долната част можете да видите часа 19:26:07 часа, показан в голям брой на LCD екрана. Всяко число използва 2х2 мрежа от дисплея на символите, за да покаже голямото число. Това използва шрифт, първоначално написан от Xtinus за проекта XBMC. Бутоните се използват за настройка на часовника. Ляво увеличава часовете, нагоре увеличава минутите, дясно превключва между 12 и 24-часово време, а Enter нулира секундите до нула. Часовникът не поддържа много добро време, тъй като използваме много неточния вътрешен осцилатор, но тази програма може лесно да бъде променена, за да се използва много по -точен външен кристал. Вижте това в действие във видеото по -долу. Обяснението как работи този код е в ред, но нямам време в момента. Засега свържете LCD заглавката (J31) към PORTD (J4) и заглавката на бутона (J30) към PORTB (J2). Уверете се, че SW1 и SW2 са в изключено положение. Свържете AVR Dragon към usb кабел и включете другия край на този кабел към компютъра. Включете SW2 и програмирайте ATmega8 със софтуера за програмиране по ваш избор (шестнадесетичен файл по -долу; предпазителите са изгорени до фабричните настройки). ЗАБЕЛЕЖКА: За да използвате бутоните наляво и нагоре, ще трябва да премахнете шунтите от J22 и J24, направете това, докато захранването е изключено.

    Стъпка 6: Програмиране с високо напрежение

    Използвал съм паралелно програмиране с високо напрежение, за да възкреся ATtiny2313, на който съм задал грешни настройки на предпазителя. Имах нужда от втори път, когато работех по тази инструкция, защото случайно написах настройката lfuse, която исках, в регистъра hfuse ….. ooops. Паралелното програмиране с високо напрежение е удобен инструмент, който трябва да имате на разположение! По -долу са дадени списъци с моите настройки на джъмпера: ИЗПОЛЗВАЙТЕ НА СОБСТВЕН СИ РИСК, ТОЗИ ТИП ПРОГРАМИРАНЕ МОЖЕ ДА УВРЕДИ ВАШИЯ ХАРАКТЕР, АКО НЕ ЗНАЕТЕ КАКВО ПРАВИТЕ !! Паралелно програмиране с високо напрежение: ATtiny2313 в гнездо U3: SW1 - OFFSW2 - ONJ5, J6, J7 - свързване на пин1 и pin2XTAL1 - свързване на щифтове 1 и pin2J16 - Свързване на щифтове 1 и pin22x5 IDC кабели: PROG_CTRL към PORT D, PROG_DATA към PORT B J8-J13, J18, J19, J20, J22-J28, J24) За други чипове трябва да можете да разберете настройките, от които се нуждаете, от ръководството за потребителя на Atmel за техния STK500.

    Стъпка 7: Разширяване извън борда

    Разширяване извън борда
    Разширяване извън борда

    Намирам за доста лесно взаимодействието с макет. Това позволява много по -голяма гъвкавост при прототипирането и разработването на код едновременно. По -долу ще видите няколко платки, свързани с Dragon Rider. Свързвам лентовите кабели към съответните портове в единия край. От другата страна използвам джъмперни проводници, за да свържа подходящия ICD проводник с платките.

    Стъпка 8: Заключение

    Има много повече неща, които биха могли да бъдат включени в тази инструкция. Точно тази вечер завършвам адаптер, който ви позволява да използвате 6-пиновата заглавна програма за програмиране, без да премахвате дракона от Dragon Rider. Ще пусна информация за това как сами да създадете такъв … скоро. Ако имате други неща, които смятате, че трябва да бъдат добавени, оставете коментар.

    Стъпка 9: Добавяне на 6-пинов ISP

    Добавяне на 6-пинов ISP
    Добавяне на 6-пинов ISP
    Добавяне на 6-пинов ISP
    Добавяне на 6-пинов ISP
    Добавяне на 6-пинов ISP
    Добавяне на 6-пинов ISP

    Обикновено вграждам 6-пинов ISP заглавка към всичките си проекти, за да мога да препрограмирам чипа, ако е необходимо, и да не се налага да го свалям от дъската на проекта. За съжаление ездачът на дракон няма 6-пинов ISP заглавие, но разбрах как да го направя.

    Внимание!

    Това е хак. Ако не знаете как точно работи това, не го правете

    Бяхте предупредени. Създадох собствена адаптерна платка и 3-пинов джъмпер, за да доставя 6-пинов заглавен isp. Това, което правите, е да настроите Dragon Rider да програмира и 8-пинов микроконтролер. С помощта на 3-пинов гнездо прескачам J8 за свързване на пинове 1 и 3. Това насочва сигнала на часовника към конектора PortB. След това пускам джъмпер кабел от заглавката на PortB към адаптерната платка и ето! Има снимки по -долу … моля, моля, моля, не правете това, освен ако наистина не разбирате какво правите, тъй като бихте могли да повредите AVR Dragon или по -лошо, ако направите това погрешно.

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

    Стъпка 10: RSS четец, използващ серийна връзка и LCD

    RSS четец, използващ серийна връзка и LCD
    RSS четец, използващ серийна връзка и LCD
    RSS четец, използващ серийна връзка и LCD
    RSS четец, използващ серийна връзка и LCD

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

    Хардуер

    Използваме Dragon Rider 500 като платка за разработка. Това осигурява целия хардуер, от който се нуждаете (ако приемете, че имате всички допълнителни комплекти). Като се има предвид, че със сигурност можете да направите това със собствената си хардуерна настройка:

    • Микроконтролер ATmega8 (или всеки, който има USART и достатъчно пинове за всички връзки
    • Начин за програмиране на микроконтролера (използвам AVR Dragon)
    • Чип MAX232 за серийни комуникации
    • DB9 конектор
    • HD44780 LCD екран
    • Кристал (използвах 8MHz кристал)
    • Разнообразни кондензатори и резистори

    По -долу е дадена схема. На Dragon Rider ще трябва да използваме малко креативност, за да насочим връзките. Обикновено порт D може да бъде свързан директно към LCD заглавката. Тук това не е така, защото USART, необходим за серийната връзка, използва PD0 и PD1. Освен това порт B не може да се използва, тъй като PB6 и PB7 се използват за външния кристал. На снимката по -долу е моето решение на този проблем. Включвам лентов кабел към заглавките за LCD, порт B и порт D, след което използвам джъмперни проводници, за да направя правилните маршрути. Не забравяйте да свържете напрежението и земята към LCD заглавието.

    Софтуер

    Софтуерът за този проект се предлага в две части, фърмуерът за микроконтролера и скриптът python за изстъргване на RSS емисиите и изпращането им през серийната връзка. AVR фърмуер Използвам отново LCD библиотеката на Peter Fleury (https://jump.to /флари). Той е мощен и кратък, универсален и лесен за промяна за вашата хардуерна настройка. Ако погледнете прикачения заглавен файл (lcd.h), ще видите, че работя в 4-битов режим с порт D като битове за данни и порт B като контролни битове. Концепцията на този фърмуер е доста проста:

    • След като се включи, микроконтролерът показва „RSS Reader“и след това изчаква серийни данни.
    • Всеки байт от получени серийни данни предизвиква буфер от 16 знака да се измести наляво и да добави байта към буфера, след което да се покаже буферът.
    • Микроконтролерът приема три специални команди: 0x00, 0x01 и 0x02. Това са ясен екран, преминете съответно към ред 0 и преминете към ред 1 съответно.

    Python Scrypt Написах pyton скрипт, който да изтрие RSS данните и да ги изпрати по серийната връзка. Това изисква модула python "pyserial", който вероятно ще трябва да инсталирате на вашата система, за да работи това. RSS емисията може да бъде конфигурирана в горната част на файла pyton. Обърнете внимание, че трябва да въведете име за емисията, както и URL адреса на емисията. Има три примера, сигурен съм, че можете да следвате тези за правилния syntx

    • Сглобете хардуера
    • Програмирайте микроконтролера (dragon_rss.hex може да се използва, ако не искате да го компилирате сами). Настройки на предпазителите за ATmega8 с помощта на 8 MHz кристал: lfuse = 0xEF hfuse = 0xD9
    • Включете Dragon Rider и се уверете, че серийният кабел е включен (LCD трябва да гласи: "RSS Reader")
    • Изпълнете програмата python (python serial_rss.py)
    • Наслади се

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