AVReAl и MPSSE

Некоторые из микросхем фирмы FTDI имет встроенный аппаратный блок последовательных интерфейсов MPSSE, предназначенный для реализации интерфейсов JTAG, SPI, I2C. FT2232D и её более старые версии FT2232C, FT2232L поддерживают Full-Bandwidth USB и имеют верхнюю границу частоты сигнала TCK/SCK 6 МГц. Для микросхем, работающих в стандарте USB 2.0 Hi-Speed, т.е. для FT2232H, FT4232H, FT232H, граница выше — 30 МГц.

MPSSE определяет использование линий DBUS0..DBUS2 как сигналов TCK/SCK, TDI/MOSI и TDO/MISO. Для программирования микроконтроллеров AVR необходим сигнал RESET, для которого можно использовать линию DBUS3 (TMS/CS), что и сделано в AVReAl по умолчанию.

Для применения с AVReAl не обязательно брать специальный программатор (Turtelizer, Olimex ARM-USB-OCD или подобный), достаточно простой «оценочной» платы на базе микросхемы с поддержкой MPSSE:

При использовании такого простого изделия можно обойтись столь же простыми ключами AVReAl:

-aft2232 -az

Название микросхемы ft2232 в ключе -a подходит для FT2232C, FT2232L, FT2232D.
Для FT2232H, FT4232H и FT232H следует подставить соответствующие названия.

Перечисленные простые платы не имеют буферных микросхем, поэтому используется ключ -az. AVReAl переведёт выводы SPI и RESET на вход и отключит таким образом микросхему FTDI от микроконтроллера. Следует учесть, что при этом на входах останутся высокоомные подтяжки к уровню VCCIO. Также нужно обратить внимание на рабочий ток выходов применённой микросхемы. Например, FT2232D при питании выходов 3.3 В в стандартном режиме гарантированно обеспечивает уровень логического ‘0’ 0.5 В при токе не выше 2 мА. Это означает, что при подтяжке входа RESET микроконтроллера к питанию резиcтором с сопротивлением 1 к выходной драйвер FT2232D может и не обеспечить нужного для AVR уровня ‘0’. Следует включить опцию «High current I/O» в конфигурационной EEPROM.

Если описание устройства USB (поле description, например, “Dual RS232” для FT2232C/L/D) не заменено записью в конфигурационной EEPROM, то ключ «порта» -p можно не использовать.

Микросхемы FT2232H, FT4232H имеют по два канала с поддержкой MPSSE. Без ключа -p будет выбран канал A. Для использования канала B следует добавить ключ порта с описанием или серийным номером для данного канала.

Поддержка двух каналов даёт возможность подключать программатор к двум платам и программирувать нужную, указав в ключе -p аттрибут соответствующего канала. Можно даже запустить две копии AVReAl и программировать одновремённо два микроконтроллера. Скорость программирования при этом не уменьшается, так как пропускная способность USB 2.0 Hi-Speed с большим запасом превышает максимальную скорость записи в микроконтроллер.

В следущем примере приведены варианты ключей с описанием для канала B микросхем FT2232H без EEPROM или с непрошитой EEPROM. Если аттрибут (описание устройства либо его серийный номер) имеет в своём составе пробелы, то сам аттрибут или весь ключ -p следует взять в кавычки:

-aft2232h -az -pd="Dual RS232-HS B"
-aft2232h -az "-pd=Dual RS232-HS B"

Получить перечень подключенных к компьютеру микросхем FTDI с их описаниями и серийными номерами можно при помощи следующих ключей (в ключе -a допускается указать любую из поддерживаемых микросхем):

-aft2232 -p?

Поддержка упомянутых выше микросхем FTDI в программаторе AVReAl изначально делалась так, чтобы можно было задавать назначение выводов при помощи записи в командной строке либо в конфигурационном файле. При необходимости для сигнала RESET можно задействовать любую доступную для управления в режиме MPSSE ножку микросхемы. Пусть использовано ADBUS7. Тогда ключ -a принимает вид:

-aft2232:reset=adbus7
-aft4232h:reset=dbus7

Если же в линии сигнала стоит инвертор, например, в линию RESET поставлен транзистор, то перед именем вывода ставится тильда ~. Как уже было сказано, MPSSE фиксирует использование сигналов MPSSE на определённых ножках. Поэтому для них нельзя задать перемещение на другие, но можно добавить инверсию. Пусть все линии интерфейса, включая MISO, пропущены через инверторы 74HC04. А RESET еще и перемещён на ACBUS3. Ключ -a становится таким:

-aft2232:sck=~adbus0:mosi=~adbus1:miso=~adbus2:reset=~acbus3
-aft4232h:sck=~dbus0:mosi=~dbus1:miso=~dbus2:reset=~cbus3

Можна создать конфигурационный файл, например, с именем adapter.cfg:

sck = ~adbus0
mosi = ~adbus1
miso = ~adbus2
reset = ~acbus3

и использовать другую форму ключа:

-aft2232=adapter.cfg

 

Чтобы работать в Linux с перечисленными микросхемами не используя права администратора, нужно добавить правила для системы udev. Подробнее смотри в AVReAl/Linux и права администратора.

 


 

На микросхемах фирмы FTDI с поддержкой MPSSE разарботано много адаптеров для программирования микроконтроллеров. Эти адаптеры разрабатывались в основном для работы с микроконтроллерами ARM через интерфейс JTAG, но их можно использовать и для программирования AVR в режиме Low Voltage ISP через интерфейс SPI.

Большинство адаптеров имеет буферные усилители или трансляторы уровней. Кроме того, как правило, есть индикаторные светодиоды, которыми можно управлять от компьютера. К сожалению, для управления этими сигналами каждый из «фирменных» адаптеров использует другие линии.

Обзор адаптеров, информацию про которые можно найти в интернете, рекомендации по их использованию и конфигурационные файлы будут приведены в следующих сообщениях в категории AVReAl » Адаптеры и драйверы » USB-FTDI.

One Response to “AVReAl и MPSSE”

  1. Валерий says:

    Программа AVREAL умеет работать по интерфейсу JTAG, с микроконтроллерами AVR, через программатор на FT2232H ?

Leave a Reply

[flagcounter image]