Сегодня предлагаю рассмотреть еще один микроконтроллер компании Atmel - AT90USB162. В чем его особенность вы наверно уже догадались из названия – он поддерживает интерфейс USB на аппаратном уровне, причем это полноценный USB 2.0 интерфейс (Full-speed со скоростью передачи до 12 Мбит/с). Иногда необходимость передачи данных на компьютер от микроконтроллера дает о себе знать – это как изготовление USB программаторов, так и каких-то пользовательских устройств, работающих в связке с персональным компьютером, причем на сегодняшний день набирают обороты USB устройства для планшетов (Android). Так вот такой микроконтроллер отлично подходит для разработки подобных устройств (более современные ARM пока что не затрагиваем). Однако, кроме USB в AT90USB162, в принципе, больше ничего особенного и не найдем: привычный корпус tqfp32, 16 кб флэш памяти, по 512 байт оперативной и энергонезависимой памяти eeprom, 1 таймер 8 бит и 1 таймер 16 бит, интерфейсы USART и SPI, дополнительно к USB PS/2 интерфейс. Печалит отсутствие аппаратного I2C и хоть какого-нибудь АЦП. В связке с аппаратным USB микроконтроллер может работать с двумя кварцами – 8 МГц и 16 МГц. При этом если питание МК на уровне 2,7 вольта, то максимально можно использовать кварц на 8 МГц, при питании на уровне 4,5 вольт можно использовать кварц до 16 МГц.
Фишкой Atmel в линейке 90USB микроконтроллеров является возможность программировать их без программатора, подключив просто напрямую через USB к компьютеру (естественно программируется не само, а при помощи специального софта - Flip). На самом деле это очень удобно, а скоростью прошивки вы будете приятно удивлены, недаром ведь Full-speed – все операции для записи микропрограммы займут от долей секунды до 1 секунды. В каждом плюсе этого микроконтроллера кроется и минус, здесь он заключается в том, что общий объем флэш памяти составляет 16 кбайт, но для возможности прошивки через USB необходим bootloader, который съедает 4 кбайта флэш памяти AT90USB162, остается всего 12 кбайт для использования. Конечно, жалко, но вообще-то большинство прошивок не выйдут за пределы 12 кбайт, поэтому это можно стерпеть, а вообще этот же микроконтроллер можно программировать как по USB, так и стандартными средствами – через программатор по SPI. В этом случае bootloader удаляется из памяти и освобождается вся память для использования. Однако при необходимости bootloader всегда можно загрузить через SPI и снова использовать программирование через USB. Последние версии можно найти на сайте Atmel’a.
Ну вот, с функционалом AT90USB162 разобрались, теперь можно приступить к разработке какого-нибудь устройства, но что нам для этого понадобится? В первую очередь необходима какая-нибудь отладочная или макетная плата с данным микроконтроллером. Пожалуй, этим и займемся в продолжение статьи.
Итак, предлагаю свой вариант отладочной платы для микроконтроллера AT90USB162:
Вся плата питается от USB компьютера напряжением 5 вольт, при этом используется кварц на частоту 16 МГц. На плате присутствует весь необходимый минимал обвязки микроконтроллера, для того чтобы соединить с компьютером и сразу же приступить к работе с микроконтроллером: конденсаторы по питанию микроконтроллера и внутреннего стабилизатора 3,3 вольта, резисторы по выводам Data + и Data -, подтягивающие резисторы для кнопок Reset и HWB (необходимо для использования bootloader’a, об этом чуть позже), два светодиода с токоограничивающими резисторами – один светодиод красного цвета соединен с землей и плюсом питания для индикации присутствия напряжения, другой светодиод через перемычку соединен с выводом микроконтроллера для индикации чего-либо. Перемычка дает возможность отключить вывод микроконтроллера от светодиода и использовать его для других целей. Таким же образом присутствует перемычка для отключения подтягивающего резистора кнопки HWB, чтобы использовать этот вывод в своих целях. Все порты ввода/вывода микроконтроллера выведены на штыревые соединения, а также плюс и минус питания.
Схема отладочной платы:
Схема построена на микроконтроллере AT90USB162, питание которого берется от порта 5 вольт. Микроконтроллер внутри содержит стабилизатор на 3,3 вольта для питания линий USB (которые как раз и работают именно на таком напряжении). Конденсатор C6 выполняет функцию фильтра для этого внутреннего стабилизатора напряжения. Номинал можно увеличить. Резисторы R2, R3 необходимы для корректной работы по линиям данных USB порта. Кварц используется номиналом 16 МГц, так как микроконтроллер питается от 5 вольт, что позволяет поставить кварцевый резонатор на более высокую частоту. При питании 3,3 вольта, согласно даташиту, максимальная частота кварца для этого микроконтроллера составила бы 8 МГц. Резисторы R5 и R6 подтягивают 5 вольт к линиям микроконтроллера для правильной работы кнопок и исключения воздействия помех на этих линиях. Резисторы R1 и R4 ограничивают ток, протекающий через светодиоды, чтобы исключить их выход из строя.
Берем в руки паяльник, кусок текстолита и паяем отладочную плату. Готово? Хорошо. Теперь можно подключить устройство к USB компьютера или ноутбука. Ага, но не тут то было. Нужны какие-то драйвера, так как устройство не распознается должным образом. Сначала необходимо установить софт от компании Atmel – Flip, он необходим для программирования МК через USB. Этот софт содержит как раз тот драйвер, который необходим для AT90USB. Его можно найти по следующему пути c:\Program Files (x86)\Atmel\Flip 3.4.7\usb\ (в зависимости от версии windows путь может немного отличаться). Через диспетчер устройств указываем путь к драйверу и получаем сообщение из трея.
Это значит устройство загрузилось и определилось успешно. В диспетчере устройств после успешной установки драйвера микроконтроллер определится вот так:
Теперь можно смело начинать работу с микроконтроллером. Для первых опытов с отладочной платой была написана тестовая прошивка, которая моргает зеленым светодиодом на отладочной плате, прошивка и исходник предоставлены в конце статьи, видео работы там же.
Для загрузки тестовой прошивки будем использовать программу Flip (кто не скачал, качаем последнюю версию с сайта Atmel’a). Открываем ее (интерфейс очень простенький и разобраться с программой займет одну минуту времени).
Открыли Flip, появилось вот такое окно, жмем на иконку микросхемки и выбираем наш микроконтроллер AT90USB162, далее жмем на шнурок USB рядышком с предыдущей иконкой и выбираем соединение по USB и жмем открыть – все можно загружать прошивку. Для этого либо жмем на третью обведенную в красный квадрат иконку, либо меню File -> Load HEX и выбираем путь к прошивке. Стоит учитывать, что путь не должен содержать русских символов (только латиница), иначе, возможно, будет появляться ошибка при попытке выбрать файл. Итак, сделали все правильно и выбрали файл прошивки, теперь жмем на кнопку RUN, доля секунды и процесс прошивки завершен, жмем Reset на отладочной плате AT90USB162 и светодиод начинает бодро моргать! При этом из диспетчера устройств пропал наш микроконтроллер и мы не можем снова прошить его в Flip. Без паники! Все так и задумано! Чтобы снова активировать bootloader жмем и удерживаем кнопку Reset, жмем кнопку HWB и удерживаем ее, отпускаем Reset, отпускаем HWB, через секунду в трее снова определяется микроконтроллер, можно снова перепрошить его. Жмем на Reset и снова запускается прошитая программа.
К статье прилагается прошивка, исходник прошивки, печатная плата для AT90USB162, документация на микроконтроллер, Proteys не содержит модели данного микроконтроллера, поэтому экспериментировать можно только на отладочной плате, также небольшое видео работы.
На этом все, спасибо за внимание, все вкусности еще впереди!
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | МК AVR 8-бит | AT90USB162 | 1 | Поиск в магазине Отрон | ||
C1, C6 | Конденсатор | 1 мкФ | 2 | 1206 | Поиск в магазине Отрон | |
C2 | Конденсатор | 0.1 мкФ | 1 | 1206 | Поиск в магазине Отрон | |
C3, C4 | Конденсатор | 22 пФ | 2 | 1206 | Поиск в магазине Отрон | |
C5 | Конденсатор | 10 мкФ | 1 | 1206 | Поиск в магазине Отрон | |
R1 | Резистор | 1.5 кОм | 1 | 1206 | Поиск в магазине Отрон | |
R2, R3 | Резистор | 22 Ом | 2 | 1206 | Поиск в магазине Отрон | |
R4 | Резистор | 1 кОм | 1 | 1206 | Поиск в магазине Отрон | |
R5, R6 | Резистор | 10 кОм | 2 | 1 - 0805, 1 - выводной | Поиск в магазине Отрон | |
LED1 | Светодиод | Красный | 1 | 1206 | Поиск в магазине Отрон | |
LED2 | Светодиод | Зеленый | 1 | 1206 | Поиск в магазине Отрон | |
Z1 | Кварцевый резонатор | 16 МГц | 1 | Поиск в магазине Отрон | ||
Jmp1, Jmp2 | Перемычка | Джемпер | 2 | Поиск в магазине Отрон | ||
S1, S2 | Тактовая кнопка | IT-1127-5-160G-G | 2 | smd | Поиск в магазине Отрон | |
X1 | Штыревое соединение | PLS-4 | 1 | Поиск в магазине Отрон | ||
X2 | Штыревое соединение | PLS-2 | 1 | Поиск в магазине Отрон | ||
X3 | Штыревое соединение | PLS-14 | 1 | Поиск в магазине Отрон | ||
X4 | Штыревое соединение | PLS-8 | 1 | Поиск в магазине Отрон | ||
X5 | Разъем | miniUSB | 1 | smd | Поиск в магазине Отрон | |
Штыревое соединение | PLS-2 угловой | 2 | для джемперов | Поиск в магазине Отрон | ||
Скачать список элементов (PDF)
Прикрепленные файлы:
- 446 hex.hex (1 Кб)
- AT90USB162_final_v_2_0.lay6 (91 Кб)
- AT90USB162 - 446.rar (10 Кб)
Комментарии (7) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
[Автор]