Программирование AVR Отладочная плата Atmel AVR XPlain board Fri, April 19 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Отладочная плата Atmel AVR XPlain board Печать
Добавил(а) microsin   

Плата Atmel AVR XPlain в основном предназначена для отладки и написания программ для ATxmega128A1.

Плата AVR XPlain в бывает в разных модификациях, из которых наиболее распространены AVR XMEGA-A1 Xplain Rev.4 и AVR XMEGA-A1 Xplained Rev.09. Платка недорогая, учитывая мощную начинку; её можно купить в России по цене примерно $60, на digikey $41.

xmega-a1-xplain-rev4 xmega-a1-xplained-rev7

Мне на растерзание попалась 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, стабилизатор напряжения питания, датчик освещенности и другие компоненты.

XMEGA-A1-Xplained-kit-overview

Комментарии к рисунку:

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.

XPLAINED-CDC-first-USB-connect XPLAINED-CDC-USB-driver-install1 XPLAINED-CDC-USB-driver-install2 XPLAINED-CDC-USB-driver-install3 XPLAINED-CDC-USB-driver-install4

На фото показано подключение AVR XPlained к различным типам популярных программаторов AVR Dragon, AVR JTAGICE mkII, AVR ONE! (можно также использовать клон AVRISP-mkII [4]).

XMEGA-A1-Xplained-connecting-AVR-Dragon XMEGA-A1-Xplained-connecting-AVR-JTAGICE-mkII XMEGA-A1-Xplained-connecting-AVR-ONE!

[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.

XMEGA-A1-Xplained-batchisp-Device-does-not-exist

Интенсивное гугление подсказало решение проблемы. Оказывается, все описания чипов хранятся в 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

XMEGA-A1-Xplained-batchisp-read-FLASH-ATxmega128A1

Тест-программа кстати любопытная - как только подано питание, светодиоды начинают по очереди зажигаться и гаснуть, а при нажатиях на кнопки звучат интересные синтезированные музыкальные звуки. К сожалению, исходный код этого теста 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.

 

Добавить комментарий


Защитный код
Обновить

Top of Page