Плата Atmel AVR XPlain в основном предназначена для отладки и написания программ для ATxmega128A1.
Плата AVR XPlain в бывает в разных модификациях, из которых наиболее распространены AVR XMEGA-A1 Xplain Rev.4 и AVR XMEGA-A1 Xplained Rev.09. Платка недорогая, учитывая мощную начинку; её можно купить в России по цене примерно $60, на digikey $41.
Мне на растерзание попалась AVR XMEGA-A1 Xplained Rev.7 (вторая на фото). На плате установлено 2 микроконтроллера: ATxmega128A1 (используется для написания и отладки программ) и AT32UC3B1256 (используется как мост USB-USART, в его память записана программа USB CDC, виртуальный USB COM порт). Также на плате установлены 8 кнопок SW0..SW7 вместе с установленными рядом с ними светодиодами LED0..LED7, динамик, коннектор USB, коннектор JTAG, коннекторы портов XMEGA J1..J4, микросхема SDRAM, стабилизатор напряжения питания, датчик освещенности и другие компоненты.
Комментарии к рисунку:
JTAG and PDI - основной коннектор для подключения программатора и отладчика. Power jumper - перемычка, через которую приходит питание на микроконтроллер ATxmega128A1 (удобно использовать, например, для измерения тока потребления). USB (COM and PSU) - коннектор miniUSB, через который подается питание на плату (PSU расшифровывается как Power SUpply), и через который реализован USB-USART мост до порта USART микроконтроллера ATxmega128A1 (подключение по USB после установки информационного файла видно в операционной системе Windows как виртуальный COM-порт). XMEGA PORT A, C, D/R, F - коннекторы для подключения к портам ввода вывода GPIO микроконтроллера ATxmega128A1. Light sensor - датчик освещенности. Temp. sensor - датчик температуры. Audio amp. - усилитель звука для динамика. Speaker - динамик. AT32UC3B1256 - микроконтроллер AVR с аппаратным USB, используемый в качестве моста USB-USART (в его firmware реализован USB CDC, класс виртуального COM-порта). DataFlash footprint - посадочные места на печатной плате, куда можно впаять микросхемы памяти FLASH с последовательным интерфейсом (энергонезависимая память). SDRAM - микросхема динамической оперативной памяти.
[Мост USB на AT32UC3B1256]
Мост на микроконтроллере AT32UC3B1256 заслуживает особого внимания, так как он соединен с микроконтроллером ATxmega128A1 через целых 3 интерфейса:
USART - традиционный TTL RS232 (RXD, TXD). Через этот интерфейс работает бутлоадер Atmel (см. далее использование BatchISP), а также возможен отладочный текстовый ввод и вывод. PDI - через этот интерфейс можно прошивать ATxmega128A1 стандартным образом. В библиотеке LUFA есть проект XPLAINBridge [5], который предназначен для микроконтроллера AT90USB1287. На AT32UC3B1256 этот проект к сожалению покак не портирован. XPLAINBridge работает и как стандартный программатор Atmel AVRISP-MKII programmer, полностью совместимый с AVRStudio, и как мост USB-USART (режим выбирается перемычкой). То есть, покупая плату AVR XPLAIN, с этой прошивкой Вы автоматически сразу получаете еще и программатор AVRISP-MKII, уже установленный на плате. SPI - этот интерфейс позволяет организовать при необходимости высокоскоростной обмен данными между микроконтроллерами AT32UC3B1256 и ATxmega128A1.
[Чем прошивать AVR xplain board]
1. JTAG, для этого понадобится AVR JTAGICE mkII [3] или Atmel AVR ONE!. Через JTAG возможна также и полноценная пошаговая отладка.
2. PDI, для этого нужен программатор наподобие AVRISP-MKII [4].
3. С помощью USART-бутлоадера, который записан в память чипа ATxmega128A1. Для этого нужна утилита командной строки BatchISP, которая находится в пакете Atmel FLIP version 3.4.2 или более поздней (см. c:\Program Files\ATMEL\Flip 3.4.5\bin\).
Последний способ не требует никаких дополнительных аппаратных устройств, ни программаторов, ни отладчиков, только компьютер и подключение по USB. Для этого необходимо скачать и установить последнюю версию программы Atmel Flip (для прошивки памяти ATxmega128A1 из пакета Flip понадобится программа batchisp.exe), а также нужно установить драйвер (информационный файл) для USB CDC моста на микроконтроллере AT32UC3B1256. При первом подключении по USB операционная система Windows запросит этот файл, который можно взять из архива AVR1927_XMEGA-A1_Xplained_Example_Applications.zip [2]. Укажите путь на папку Driver (там находится информационный файл XPLAINED_Virtual_Com_Port.inf). На запрос/предупреждение об отсутствии сертификата нужно ответить "все равно продолжить". После этого установится драйвер, и в системе Windows появится новый COM-порт. Обратите внимание на последний скриншот Диспетчера Устройств - в названии появившегося устройства XPLAINED Virtual Com Port присутствует номер COM-порта (COM10). Номер COM-порта важен для указания в опции -port командной строки утилиты batchisp.exe.
На фото показано подключение AVR XPlained к различным типам популярных программаторов AVR Dragon, AVR JTAGICE mkII, AVR ONE! (можно также использовать клон AVRISP-mkII [4]).
[USART-бутлоадер Atmel для ATxmega128A1]
В память чипа ATxmega128A1 (он установлен на плату AVR XMAGA-A1 XPlained) записан USART-загрузчик, который активируется при включении питания, если удерживать кнопку SW0. Как только загрузчик будет активирован, то можно использовать для загрузки программ утилиту командной строки BatchISP. Так было написано в руководстве, однако на деле все получилось совсем не так гладко.
После установки последней версии Flip 3.4.7 в ней почему-то не оказалось поддержки чипа ATxmega128A1. То есть ни GUI-утилита flip.exe, ни программа batchisp.exe в упор не хотели программировать ATxmega128A1 (в программе Flip невозможно было выбрать Device -> Select... -> ATxmega128A1, а консольная утилита batchisp.exe ругалась "Device does not exist" в ответ на команду -device ATxmega128A1.
Интенсивное гугление подсказало решение проблемы. Оказывается, все описания чипов хранятся в XML-файлах, находящихся в папке C:\Program Files\ATMEL\Flip 3.4.7\bin\PartDescriptionFiles\. Все чипы, с которыми может работать GUI-утилита Flip, и утилита командной строки batchisp.exe, описаны в одноименных XML-файлах, которые лежат в этом каталоге. Имя файла должно совпадать с типом чипа (в нашем случае ATxmega128A1.xml), и команда -device должна совпадать с именем файла без расширения (-device ATxmega128A1). Так вот, файла ATxmega128A1.xml в каталоге PartDescriptionFiles почему-то не было (пламенный привет разработчикам Atmel, которые делают кривую документацию и недоработанные утилиты!). Пришлось этот файл ATxmega128A1.xml сделать самому (содержимое нашел на форуме avrfreaks), и положить в папку PartDescriptionFiles. Этот файл ATxmega128A1.xml также можно найти в пакете AVR1927_XMEGA-A1_Xplained_Example_Applications.zip [2], см. папку Bootloader.
< ?xml version="1.0"? >
<!DOCTYPE Part SYSTEM "part.dtd">
< Part NAME="ATxmega128A1" >
<PageSize SIZE="512" />
<Memory NAME="FLASH" SIZE="131072" ADDR="0" INDEX="0"/>
<Memory NAME="EEPROM" SIZE="2048" ADDR="0" INDEX="1"/>
<Memory NAME="BOOTLOADER" SIZE="3" INDEX="3"/>
<Memory NAME="SIGNATURE" SIZE="4" INDEX="6"/>
<Memory NAME="USER" SIZE="512" INDEX="11"/>
<Protocol FILE="RS232_I03.xml" />
< /Part >
После этого и Flip, и batchisp.exe заработали без проблем, точно так, как описано в руководстве (см. %ProgramFiles%/ATMEL/Flip 3.4.7/help/overview.htm -> BatchIsp User's Manual). Вот так, например, я считал тест-программу Atmel, которая была записана в FLASH-память чипа ATxmega128A1 платы AVR XPlained (не забывайте кнопкой SW0 активировать USART-загрузчик ATxmega128A1):
C:\Program Files\ATMEL\Flip 3.4.7\bin>batchisp.exe -device ATxmega128A1 -hardware RS232 -port COM23 -baudrate 115200 -operation read savebuffer "C:\temp\ATxmega128A1-test.hex" HEX386
Тест-программа кстати любопытная - как только подано питание, светодиоды начинают по очереди зажигаться и гаснуть, а при нажатиях на кнопки звучат интересные синтезированные музыкальные звуки. К сожалению, исходный код этого теста Atmel зажала, опубликованы только бинарники.
[Ссылки]
1. AVR1927: XMEGA-A1 Xplained Getting Started Guide site:atmel.com. 2. AVR1927_XMEGA-A1_Xplained_Example_Applications.zip site:atmel.com - драйвер для xplained cdc, примеры программ. 3. Atmel AVR JTAGICE mkII. 4. AVR-USB162MU: макетирование и изготовление программатора AVRISP-MKII в домашних условиях. 5. XPLAIN Bridge (2010) site:fourwalledcubicle.com. 6. 170407AVR-xplain.zip. |