Оглавление:

Как использовать Dragon Rider 500 с вашим AVR Dragon: 10 шагов
Как использовать Dragon Rider 500 с вашим AVR Dragon: 10 шагов

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

Видео: Как использовать Dragon Rider 500 с вашим AVR Dragon: 10 шагов
Видео: Приказ комиссара. Warhammer 40k 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 Wesite: https://www.atmel.com/ Ссылка на AVR Dragon: 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/Assembly-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 (в системном программировании).

Блинки Блинки

Программирование бесполезно, если вам нечего программировать. Я написал очень короткий пример кода, чтобы по одному мигать светодиодами Dragon Rider. Используйте ленточный кабель для подключения заголовка светодиода (J29) к заголовку PortB (J2).

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

Я включил файл C, а также make-файл и шестнадцатеричный файл. Как я уже упоминал во вступлении, я не могу охватить программную сторону программирования в Instructable. Программируйте, как вы сделали бы для AVR Dragon, поскольку Dragon Rider вообще не меняет программную сторону вещей.

Шаг 3. Использование надстройки LCD

Использование надстройки LCD
Использование надстройки LCD

Вот простой способ использовать надстройку LCD. Это напишет "Dragon Rider" на ЖК-экране.

Аппаратное обеспечение:

  • ATtiny2313
  • Перемычка R / W: R / W должна быть подключена к «BIT1» на плате Dragon Rider Board (см. Объяснение в инструкции по сборке)
  • J23: Эта перемычка должна быть установлена для программирования ISP, но затем снята для правильной работы ЖК-дисплея.
  • Подключите ЖК-дисплей к ПОРТУ B с помощью ленточного кабеля (с J31 по J2).

Программное обеспечение

Я использую ЖК-библиотеку Питера Флери для управления ЖК-дисплеем в 4-битном режиме. Посетите домашнюю страницу Питера, чтобы загрузить библиотеку. Вам нужно будет убедиться, что lcd.c скомпилирован с вашим кодом и что вы внесли следующие изменения в lcd.h:

Мы используем внутренний RC-генератор, поэтому XTAL необходимо установить на 1 МГц:

#define 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

    Основная программа очень проста благодаря работе, проделанной Питером Флери над своей ЖК-библиотекой.

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

    Код прикреплен

    Прилагаемый код включает ЖК-библиотеку Питера Флери (lcd.c и lcd.h) с его разрешения. Спасибо, Питер! Единственное изменение, которое я сделал в нем, - это установка правильных выводов в Defines. Посетите его сайт, чтобы загрузить пакет: https://www.jump.to/fleury Я также включил make-файл, который я использую, написанный Эриком Б. Веддингтоном и Йоргом Вуншем. Я отправил ЛС Йоргу на avrfreaks.net, но так и не получил от него ответа. В make-файл внесены некоторые изменения для адаптации к использованию 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. Вот базовый набор перемычек для программирования 28-контактных микроконтроллеров ISP.

    Настройки перемычки

    Установите перемычки на Dragon Rider так, чтобы шунты соединяли следующие контакты. (контакт 4 является центральным для J22-J-24) Контакты: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

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

    • Соединение J11 и J12 таким образом позволяет использовать эти контакты в качестве контактов ввода / вывода. В качестве альтернативы можно было бы проложить эти контакты для соединения с внешним кристаллом.
    • Подключение J13 таким образом позволяет нам использовать его как контакт сброса. В качестве альтернативы этот вывод будет направлен в заголовок PORTC для использования в качестве вывода ввода / вывода. (у этого было бы много недостатков, в том числе невозможность запрограммировать этот чип с помощью ISP).
    • J16 и J22-J24 подключаются таким образом для маршрутизации соответствующих контактов (Reset, MISO, MOSI и SCK) к заголовку ISP AVR Dragon.

    Шаг 5: Расширенное использование ЖК-дисплея и кнопок: большие часы

    Расширенное использование ЖК-дисплея и кнопок: большие часы
    Расширенное использование ЖК-дисплея и кнопок: большие часы

    Это забавный проект, в котором используются ЖК-экран и кнопки. Мы будем иметь дело с функциями часов реального времени и пользовательскими символами на ЖК-дисплее. На картинке внизу вы можете увидеть время 19:26:07, отображаемое большими цифрами на ЖК-экране. Для каждого числа используется сетка отображения символов 2x2 для отображения большого числа. При этом используется шрифт, изначально написанный Xtinus для проекта XBMC. Кнопки используются для установки часов. Влево увеличивает часы, Вверх увеличивает минуты, Вправо переключает время между 12 и 24 часами, а Enter сбрасывает секунды на ноль. Часы не очень хорошо отсчитывают время, поскольку мы используем очень неточный внутренний генератор, но эту программу можно легко изменить, чтобы использовать гораздо более точный внешний кристалл. Посмотрите это в действии на видео ниже. Объяснение того, как работает этот код, нужно, но сейчас у меня нет времени. А пока подключите заголовок ЖК-дисплея (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 и 2 XTAL1 - подключите контакты 1 и 2J16 - Подключите контакты 1 и 22x5 IDC кабели: PROG_CTRL к PORT D, PROG_DATA к PORT BA Все остальные перемычки не подключены (J8-J13, J18, J19, J20, J22-J28, J24) Для других микросхем вы сможете определить необходимые настройки из руководства пользователя Atmel для их STK500.

    Шаг 7: Расширение за пределы доски

    Расширение за пределы доски
    Расширение за пределы доски

    Мне довольно легко взаимодействовать с макетной платой. Это обеспечивает большую гибкость при создании прототипов и разработке кода одновременно. Ниже вы увидите пару макетов, подключенных к Dragon Rider. Я подключаю ленточные кабели к соответствующим портам на одном конце. На другом я использую перемычки, чтобы соединить правильный провод ICD с макетами.

    Шаг 8: Заключение

    В это руководство можно включить гораздо больше. Буквально сегодня вечером я собираю адаптер, который позволяет использовать 6-контактный разъем для программирования, не снимая дракона с Dragon Rider. Я буду размещать информацию о том, как построить его самостоятельно … в ближайшее время. Если у вас есть другие вещи, которые, по вашему мнению, необходимо добавить, оставьте комментарий.

    Шаг 9: добавление 6-контактного интернет-провайдера

    Добавление 6-контактного интернет-провайдера
    Добавление 6-контактного интернет-провайдера
    Добавление 6-контактного ISP
    Добавление 6-контактного ISP
    Добавление 6-контактного ISP
    Добавление 6-контактного ISP

    Я обычно встраиваю 6-контактный заголовок ISP во все свои проекты, чтобы при необходимости можно было перепрограммировать чип и не снимать его с платы проекта. У Dragon Rider, к сожалению, нет 6-контактного разъема ISP, но я понял, как сделать его доступным.

    Предупреждение!

    Это взлом. Если вы точно не знаете, как это работает, не делайте этого

    Вас предупредили, я создал свою собственную плату адаптера и 3-контактную перемычку для питания 6-контактного разъема isp. Что вы делаете, так это настраиваете Dragon Rider для программирования и 8-контактный микроконтроллер. Используя 3-контактный разъем, я перемыкаю J8 для соединения контактов 1 и 3. Это направляет тактовый сигнал на разъем PortB. Затем я провожу перемычку от разъема PortB к моей плате адаптера и вуаля! Ниже приведены фотографии…. пожалуйста, пожалуйста, пожалуйста, не делайте этого, если вы действительно не понимаете, что делаете, так как вы можете повредить свой AVR Dragon или хуже, если сделаете это неправильно.

    Распиновка: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    Шаг 10: RSS-ридер с использованием последовательного подключения и ЖК-дисплея

    RSS-ридер с использованием последовательного подключения и ЖК-дисплея
    RSS-ридер с использованием последовательного подключения и ЖК-дисплея
    RSS-ридер с использованием последовательного подключения и ЖК-дисплея
    RSS-ридер с использованием последовательного подключения и ЖК-дисплея

    Продолжаю экспериментировать с этой отладочной платой. На этот раз я потратил часть дня на разработку RSS-модуля (в основном на стороне Python). Я не думаю, что это требует собственного инструктажа, поэтому я добавляю его здесь.

    Аппаратное обеспечение

    Мы используем Dragon Rider 500 в качестве платы для разработки. Это обеспечивает все необходимое оборудование (при условии, что у вас есть все дополнительные комплекты). При этом вы, безусловно, можете сделать это со своей собственной настройкой оборудования:

    • Микроконтроллер ATmega8 (или любой, имеющий USART и достаточное количество контактов для всех подключений).
    • Способ программирования микроконтроллера (я использую AVR Dragon)
    • Микросхема MAX232 для последовательной связи
    • Разъем DB9
    • ЖК-экран HD44780
    • Кристалл (я использовал кристалл на 8 МГц)
    • Разные конденсаторы и резисторы

    Схема представлена ниже. На Dragon Rider нам понадобится немного творчества, чтобы проложить соединения. Обычно порт D может быть подключен непосредственно к заголовку ЖК-дисплея. Здесь дело обстоит не так, потому что USART, необходимый для последовательного соединения, использует PD0 и PD1. Кроме того, порт B нельзя использовать, поскольку для внешнего кристалла используются PB6 и PB7. На рисунке ниже показано мое решение этой проблемы. Я подключаю ленточный кабель к разъемам для ЖК-дисплея, порта B и порта D, а затем использую перемычки, чтобы проложить правильные маршруты. Не забудьте подключить напряжение и землю к разъему ЖК-дисплея.

    Программное обеспечение

    Программное обеспечение для этого проекта состоит из двух частей: микропрограммы для микроконтроллера и сценария python для очистки RSS-каналов и их отправки по последовательному соединению. Прошивка AVR Я снова использую ЖК-библиотеку Питера Флери (https://jump.to) / Fleury). Он мощный и лаконичный, универсальный, и его легко изменить в соответствии с настройками вашего оборудования. Если вы посмотрите на прикрепленный файл заголовка (lcd.h), вы увидите, что я работаю в 4-битном режиме с портом D в качестве битов данных и портом B в качестве управляющих битов. Концепция этой прошивки довольно проста.:

    • После включения микроконтроллер отображает «RSS Reader» и ожидает последовательных данных.
    • Каждый байт полученных последовательных данных заставляет буфер из 16 символов сдвигаться влево и добавлять байт в буфер, а затем отображать буфер.
    • Микроконтроллер принимает три специальные команды: 0x00, 0x01 и 0x02. Это чистый экран, переход к строке 0 и переход к строке 1 соответственно.

    Python Scrypt Я написал сценарий pyton для очистки данных RSS и отправки их через последовательное соединение. Для этого требуется модуль python "pyserial", который вам, вероятно, придется установить в вашей системе, чтобы это работало. RSS-канал можно настроить в верхней части файла pyton. Обратите внимание, что вам нужно ввести имя для канала, а также URL-адрес канала. Там есть три примера, и я уверен, что вы сможете следовать им, чтобы найти правильный синтаксис.

    • Соберите оборудование
    • Запрограммируйте микроконтроллер (можно использовать dragon_rss.hex, если вы не хотите компилировать его самостоятельно). Настройки предохранителя для ATmega8 с использованием кристалла 8 МГц: lfuse = 0xEF hfuse = 0xD9
    • Включите Dragon Rider и убедитесь, что последовательный кабель подключен (на ЖК-дисплее должно отображаться: «RSS Reader»).
    • Запустите программу python (python serial_rss.py)
    • Наслаждаться

    Рекомендуемые: