AT-USB Start - это компактная отладочная платформа на базе контроллера AT90USB162, которая содержит все необходимое и помещается у Вас на ладони. Создана специально для использования с беспаечными макетными платами, что позволяет удобно и быстро расширить используемую совместно с ней переферию.
С этой отладочной платой Вы можете собрать множество подключаемых по USB устройств - кейлоггер, MP3-плеер, подключить внешние датчики и вообще сделать все, на что хватит фантазии. Ведь контроллер AT90USB162 поддерживает интерфейс USB 2.0 и уже содержит загрузчик. Просто установите отладку на макетную плату и в считанные минуты Вы соберете Ваш собственный USB-гаджет!
Питается AT-USB Start от внешнего источника 5 В, либо прямо от USB, что очень удобно.
Вот и все, что нужно для быстрого старта. Чтобы залить программу в чип Вам даже не потребуется программатор, все делается через порт USB с использованием бесплатной программы FLIP, которую можно скачать с сайта ATMEL.COM. Ну а сама программа (прошивка) пишется в бесплатной среде AtmelStudio6.2
PB0 - ~SS, PCINT0. ~SS - этот вывод может работать как аппаратная выборка интерфейса SPI (Slave Port Select input). PCINT0 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PB1 - SCK, PCINT1. SCK - тактовый сигнал интерфейса SPI (Master Clock output, Slave Clock input). PCINT1 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PB2 - PDI, MOSI, PCINT2. Этот вывод не выведен на контакты P1..P22, поскольку используется для для программирования ISP. PDI - SPI Serial Programming Data Input. Во время последовательного программирования AT90USB162 этот вывод используется как вход данных. MOSI - сигнал данных интерфейса SPI. PCINT2 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PB3 - PDO, MISO, PCINT3. Этот вывод не выведен на контакты P1..P22, поскольку используется для для программирования ISP. PDO - SPI Serial Programming Data Output. Во время последовательного программирования AT90USB162 этот вывод используется как выход данных. MISO - сигнал данных интерфейса SPI. PCINT3 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PB4 - T1, PCINT4. эта ножка может работать как тактовый вход для таймера/счетчика 1 (Timer/Counter1 External Counter Input). PCINT4 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PB5 - PCINT5 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PB6 - PCINT6 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PB7 - OC0A, OC1C, PCINT7. OC0A и OC1C могут работать как выходы сигнала события совпадения таймера/счетчика 0 и 1 (Timer/Counter Compare Match Output). PCINT7 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PC2 - PCINT11 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PC4 - PCINT10 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PC5 - OC1B, PCINT9. OC1B - выход сигнала события совпадения таймера/счетчика 1 (Timer/Counter1 Output Compare Match Output). PCINT9 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PC6 - OC1A, PCINT8. OC1A - выход сигнала события совпадения таймера/счетчика 1 (Timer/Counter1 Output Compare Match Output). PCINT8 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня.
PC7 - ICP1, INT4, CLKO. ICP1 - вход для захвата внешних импульсов (Timer/Counter1 Input Capture Pin). Может использоваться для измерения длительностей сигнала с помощью таймера 1. INT4 - внешний источник прерывания 4 (External Interrupt source 4). CLK0 - может работать как выход тактов генератора, эта возможность разрешается программированием фьюза.
PD0 - OC0B, ~INT0. OC0B - выход сигнала события совпадения таймера/счетчика 1 (Timer/Counter1 Output Compare Match Output). INT0 - внешний источник прерывания 0
PD1 - AIN0, ~INT1. AIN0 - положительный вход аналогового компаратора (Analog Comparator Positive input). INT1 - внешний источник прерывания 1
PD2 - AIN1, RXD1, ~INT2. AIN1 - отрицательный вход аналогового компаратора (Analog Comparator Positive input). RXD1 - вход приемника UART (USART1 Receive Data). INT2 - внешний источник прерывания 2
PD3 - TXD1, ~INT3. TXD1 - вход передатчика UART (USART1 Transmit Data). INT3 - внешний источник прерывания 3.
PD4 - INT5 - эта ножка может работать как внешний источник прерывания 5.
PD5 - XCK1, PCINT12. XCK1 - тактовый вход для UART (USART1 External Clock). PCINT12 - этот вывод может также работать как вход внешнего прерывания по изменению логического уровня
PD6 - ~RTS, INT6 управление входным потоком данных UART (USART1 Receiver Flow Control). INT6 - внешний источник прерывания 6.
PD7 - ~HWB, TO, ~CTS, INT7. HWB - Hardware Boot, вход активации бутлоадера (загрузчика программы через USB), подключен к кнопке HWB. T0 - тактовый вход для таймера/счетчика 0. ~CTS - управление потоком данных передачи UART (USART1 Transmitter Flow Control). INT7 - внешний источник прерывания 6
Давайте попробуем залить простейшую программу в наш чип. Схема будет банальна.... помигать диодиком.
В микроконтроллере уже присутствует загрузчик, с помощью которого будем заливать программы. Загрузчик активируется автоматически при очищенной памяти, либо его нужно активировать вручную, если Вы уже залили свою прошивку. Делается это по следующему алгоритму:
Все, теперь снова можно заливать прошивку.
Внимание! Некоторые программы, например dfu-programmer, может выдавать ошибку следующего содержания, при попытке залить прошивку:
Error while flashing.
В этом случае, перед заливкой прошивки нужно выполнить:
dfu-programmer AT90USB162 erase
А сейчас посмотрим что у нас получилось. Скачать проект из видео можно здесь.