excaliburcenter
  • Blog
  • Blog

Программа Atmel Flip И Установить

12/22/2016

0 Comments

 

AVR4. 02. 3: протокол FLIP USB DFU . Все очень просто - это удобное средство программировать микроконтроллеры AVR с интерфейсом USB. Так что можно сделать свое устройство USB, не покупая при этом программатор. Достаточно иметь под рукой компьютер с установленным программным обеспечением FLIP и подключение через интерфейс USB. Кроме того, это удобный инструмент для обновления программного обеспечения (firmware) - чтобы обновить программу, можно даже не разбирать готовое устройство. Это программное обеспечение позволяет программировать память микроконтроллера по командам от USB хоста (компьютера). При этом нет необходимости разбирать готовое изделие, извлекать оттуда микроконтроллер, и не нужно применять никакую дополнительную внешнюю аппаратуру для программирования (не нужен программатор).

Atmel предоставляет бутлоадеры USB для микроконтроллеров AVR. Эти бутлоадеры используют проприетарный протокол USB DFU, который описывается в этом апноуте. Бутлоадер FLIP поставляется конечному потребителю уже загруженным в память чипа на заводе Atmel.

Программа Atmel Flip И Установить

Скачайте свежую версию Flip с сайта производителя и. Если внутри уже есть какая-то прошивка, то драйвер из папки нужно будет установить после шага 4. Программа для прошивки контроллеров Atmel. Драйвера находятся в директории, в которую был установлен Flip, в папке «usb». Следуйте инструкциям на экране и установите программу на ПК. Если установка драйвера не вернётся на шаг назад, найдите драйвер вручную в папке Program Files-Atmel-Flip. Процедура установки драйвера подробно описана в файле подсказки Flip "C : Program Files Atmel Flip 3.3.2infoUpdating the USB Driver.

Поддерживается программой Atmel FLIP на всех операционных системах. USB и запустит диалог Мастера установки драйвера нового устройства.

При этом тратится некоторая часть памяти программ (около 2 килобайт в старших адресах FLASH). Бутлоадеры Atmel поставляются в двоичном виде, без исходного кода. Однако благодаря тому, что спецификация протокола FLIP открыта, существуют открытые альтернативные версии бутлоадеров FLIP (с открытым исходным кодом), например в библиотеке LUFA . Обычно это замыкание определенной ножки микроконтроллера на землю при включении питания (например, для микроконтроллера AT9. USB1. 62 это ножка 1.

PD7) или сбросе. По традиции DFU называют протоколом FLIP (что создает некоторую путаницу), однако к DFU относятся все функции программирования от хоста, включая FLIP, Batch. ISP или все дальнейшие интеграции протоколов в AVR Studio.

Новое firmware может быть предназначено для замены старого, которое имеется в устройстве. Download выгрузка, передача информации от хоста к устройству. Upload выгрузка, передача информации от устройства к хосту.

Процедура установки драйвера подробно описана в файле подсказки Flip "C:Program FilesAtmelFlip 3.3.2infoUpdating the USB Driver - Windows&nbsp. Устанавливаем программу Flip. Освобождаем доступ к плате. Нажмите на значок с микросхемой или выберите пункт меню “Device — Select”. Далее в списке выберите Atmega32U2. Нам необходимо скачать и установить программу для прошивки контроллеров Flip. Сделать это можно на сайте компании Atmel.

Программа Atmel Flip И Установить

IN передача пакета USB от устройства к хосту. OUT передача пакета USB от хоста к устройству.

ZLP USB Zero Length Packet - пакет нулевой длины, специальный пакет, используемый для квитирования в протоколе USB. ISP программирование микроконтроллера . Это микроконтроллеры AT9. USB8. 2, AT9. 0USB1. AT9. 0USB6. 46, AT9. USB6. 47, AT9. 0USB1.

AT9. 0USB1. 28. 7, ATmega. U2, ATmega. 16. U2, ATmega.

U2, ATmega. 16. U4, ATmega. U4. Это микроконтроллеры ATxmega. A1. U, ATxmega. 12. A1. U, ATxmega. 64. A3. U, ATxmega. 12. A3. U, ATxmega. 19.

A3. U, ATxmega. 25. A3. U, ATxmega. 25. A3. BU, ATxmega. 16. A4. U, ATxmega. 32. A4. U, ATxmega. 64. A4. U, ATxmega. 12. A4. U, ATxmega. 64.

B1, ATxmega. 12. 8B1, ATxmega. B3, ATxmega. 12. 8B3, ATxmega. C3, ATxmega. 12. 8C3, ATxmega. C3, ATxmega. 25. 6C3, ATxmega. C3, ATxmega. 16. C4, ATxmega.

C4. С помощью протокола FLIP могут программироваться и некоторые другие микроконтроллеры, через другие интерфейсы, не USB - через CAN и USART. Процедура программирования подробна описана в даташите на соответствующий бутлоадер, применяемый для конкретного микроконтроллера. На запросы отвечает бутлоадер USB, записанный в память FLASH микроконтроллера.

Бутлоадер обрабатывает протокол USB и выполняет нужные операции чтения/записи с памятью микроконтроллера (FLASH, EEPROM, а также иногда это может быть и внешняя память). Рис. Системное рабочее окружение, в котором работает FLIP DFU. Для программирования микроконтроллеров имеется специальная бесплатная утилита Atmel Flip, написанная на JAVA. В этой статье подробно рассматривается именно протокол USB FLIP.

Статья разделена на 2 секции. Atmel USB DFU является реализацией класса вендора (vendor class implementation), основанное на части официального стандарта USB DFU, однако она не полностью реализует стандартный USB DFU class. Для обмена данными с хостом USB DFU FLIP использует только одну конечную точку управления (control endpoint, конечная точка с номером 0), и только запрос настройки (setup request). Далее будут показаны использующиеся дескрипторы USB и управляющие запросы USB (control requests).

Набор используемых дескрипторов USBУстройство USB DFU FLIP предоставляет хосту набор дескрипторов, которые содержат. USB Device Descriptor.

Смещение. Имя поля. Размер. Значение.

Описание поля. 0b. Length. 11. 2h. Размер этого дескриптора в байтах. Descriptor. Type. Тип функционального дескриптора DFU.

USB2. 01. 00h. Номер спецификации USB в формате BCD. Device. Class. 10. См. USB Interface Descriptor.

Смещение. Имя поля. Размер. Значение. Описание поля. 0b. Length. 10. 9h. Размер этого дескриптора в байтах. Descriptor. Type. Тип - дескриптор интерфейса. Interface. Number.

Номер этого интерфейса. Alternate. Setting. Альтернативная установка.

Num. Endpoints. 10. Используется только канал управления (control pipe). Interface. Class. FFh. Информация, специфичная для вендора. Interface. Sub. Class.

Нет определения подкласса. Interface. Protocol. Нет определения протокола. Interface. 10. 0h. Индекс строкового дескриптора для этого интерфейса. Специальные запросы настройки (specific setup requests)В дополнение к стандартным запросам USB, для поддержки операций обновления обрабатываются 4 специальных запроса, относящиеся к классу (class- specific requests): Таблица 6- 3. Class- specific requests.

Request. Typeb. Requestw. Valuew. Indexw. Length. Фаза данных. 00. 10 0.

DFU. Статус предоставляет информацию о выполнении предыдущего запроса. Устройство USB DFU FLIP отвечает на запрос DFU. Пакет статуса устройства.

Смещение. Имя поля. Размер. Значение. Описание поля. 0b.

Status. 1Число. Показывает статус результата выполнения самого последнего подходящего запроса. Poll. Time. Out. 3Число. Не используется, здесь всегда 0.

State. 1Число. Показывает состояние, в которое устройство немедленно переходит вслед за передачей этого ответа. String. 1Индекс. Не используется, здесь всегда 0. Возможные значения полей пакета b. Status и b. State описаны в таблице 6- 5. Таблица 6- 5. Значения статуса и состояния. Символьное имя. Статус.

Состояние. Описание. STATUS. После сообщения о любой ошибке устройство не может покинуть состояние dfu. ERROR, пока не получит запрос DFU. После получения запроса DFU.

Одиночная команда FLIP. Рис. Empty command (пустая команда).

Рис. Команда FLIP для загрузки данных FLIP (download). Рис. Команда FLIP для выгрузки данных FLIP (upload). Структура команды FLIP. Смещение (в байтах)Поле. Размер (в байтах)0. Идентификатор группы команды.

Идентификатор команды. Аргументы. 4Имеются 4 группы (таблица 7- 2), описанные в последующих секциях. Для каждой команды описана структура команды FLIP, после отправки команды возможно наличие дополнительных данных для загрузки (download), или выгрузки (upload), или статуса.

Таблица 7- 2. Группы команды FLIP. Значение (байт)Группа. Описание. 01h. CMD. Это достигается отправкой команд SELECT.

Select memory unit command. Поле. Значение. Описание.

Идентификатор группы. Выбор группы. Идентификатор команды.

Выбор команды памяти. Аргумент 1. 00h. Выбор юнита памяти. Аргумент 2. Юнит памяти. Идентификатор памяти для выбора. Аргумент 3. 00h. Зарезервировано.

Аргумент 4. 00h. Зарезервировано. Полезная нагрузка (данные)нетнет.

Таблица 7- 4. Memory unit available (доступные типы памяти). Значение. Описание. FLASH0. 1h. EEPROM0.

SECURITY0. 3h. CONFIGURATION0. BOOTLOADER0. 5h. SIGNATURE0. USER0. 7h. INT. Select memory unit status (выбор статуса юнита памяти). Символьное имя. Описание.

STATUS. Команда выбора страницы памяти. Поле. Значение. Описание. Идентификатор группы. Выбор группы. Идентификатор команды. Выбор команды памяти. Аргумент 1. 01h. Выбор страницы памяти.

Аргумент 2. Страница, MSB (старший байт)Номер страницы памяти 6. Аргумент 3. Страница, LSB (младший байт)Аргумент 4. Зарезервировано. Полезная нагрузка (данные)нетнет. Таблица 7- 7. Select memory page status (выбор статуса страницы памяти). Символьное имя. Описание. STATUS. Запись в память всегда осуществляется из содержимого буфера. Содержимое буфера обычно не имеет значения для пользователя протокола FLIP.

Команда Program Start передает буфер ISP из FLIP в выбранную память. Таблица 7- 8. Команда Program Start. Поле. Значение. Описание. Идентификатор группы.

Группа загрузки (download). Идентификатор команды. Команда Program Start. Аргумент 1. Страница, MSB (старший байт)Начальный адрес памяти. Аргумент 2. Страница, LSB (младший байт)Аргумент 3. Страница, MSB (старший байт)Конечный адрес памяти.

Аргумент 4. Страница, LSB (младший байт)Полезная нагрузка (данные для загрузки)буфер FLIPВ буфер FLIP добавляется префикс(1). Примечание: (1) Data Payload Prefix (префикс данных полезной нагрузки, т. Число X вычисляется для выравнивания начала firmware с записываемой памятью. Внимание: в настоящий момент приложение FLIP делит внутренний буфер так, чтобы размер полезной нагрузки (включая префикс) не превышал 2 килобайта. Таблица 7- 9. Статус Program Start.

Символьное имя. Описание. STATUS. Чтение памяти обновляет содержимое буфера данными, прочитанными из памяти. Во время операции проверки (verify) целевая память читается и её содержимое сравнивается с содержимым буфера. Таблица 7- 1. 0. Команда чтения памяти. Поле. Значение. Описание. Идентификатор группы.

Группа выгрузки (upload). Идентификатор команды. Команда чтения памяти.

Аргумент 1. Страница, MSB (старший байт)Начальный адрес памяти. Аргумент 2. Страница, LSB (младший байт)Аргумент 3. Страница, MSB (старший байт)Конечный адрес памяти. Аргумент 4. Страница, LSB (младший байт)Полезная нагрузка (данные для выгрузки)Содержимое памяти. Содержимое памяти, соответствующее выбранной памяти и адресу памяти. Внимание: в настоящий момент приложение FLIP делит команду Read Memory так, чтобы размер полезной нагрузки не превышал 1 килобайт.

Таблица 7- 1. 1. Статус команды Read Memory. Символьное имя. Описание. STATUS. Если произойдет ошибка STATUS. Команда Blank check memory.

Поле. Значение. Описание. Идентификатор группы. Группа выгрузки (upload). Идентификатор команды. Команда проверки памяти на чистоту. Аргумент 1. Страница, MSB (старший байт)Начальный адрес памяти. Аргумент 2. Страница, LSB (младший байт)Аргумент 3.

Страница, MSB (старший байт)Конечный адрес памяти.

Компиляция и загрузка программы в AVR- USB1. После вынужденной паузы в проекте Catboard из- за отстутствия программатора, и времени на постоянные поездки в Fab. Lab, нашёл в продаже готовую плату, идеально подходящую на роль клавиатурного контроллера, это макетная плата AVR- USB1.

Она уже полностью собрана на заводе, проверена на работоспособность (по заявлению продавца), и имеет аппаратную реализацию USB2. Порты микроконтроллера выведены на удобные площадки, куда будет легко припаять провода от клавиш. Так же имеется дополнительная макетная площадка, на которой можно разместить дополнительные детали при необходимости, или можно просто отрезать её, уменьшив габариты платы. В микроконтроллере уже присутствует загрузчик, с помощью которого будем заливать программы.

Загрузчик активируется автоматически при очищенной памяти, либо его нужно активировать вручную по следующему алгоритму: нажимаем и удерживаем кнопку Reset; нажимаем и удерживаем кнопку HWB; отпускаем кнопку Reset; делаем паузу порядка 1- 2 секунд (всё ещё удерживая кнопку HWB); отпускаем кнопку HWB. Наличие загрузчика позволит в будущем быстро менять прошивку микроконтроллера, прямо на работающей клавиатуре, работать она конечно же будет переставать при этом. Установка программ. Загрузчик FLIP, написанный на Java, в линуксе не видит макетную плату, возможно требуется дополнительная настройка, не радует то, что требуется ручная настройка даже для запуска, в виндовсе эта программа однако работает, хоть у меня и получилось прошить программу не сразу, а вот линуксовая программа dfu- programmer заработала сразу и без проблем.

Поэтому будем использовать имеющиеся в Ubuntu Linux консольные инструменты для работы с этим микроконтроллером, ставим все программы только из репозитория. Инсталлируем библиотечные файлы, без которых не получится ничего толкового скомпилировать, сам компилятор, и загрузчик. Также стартовать можно кнопкой Reset.

0 Comments



Leave a Reply.

    Author

    Write something about yourself. No need to be fancy, just an overview.

    Archives

    November 2016

    Categories

    All

    RSS Feed

Powered by Create your own unique website with customizable templates.