LAB599.RU — интернет-магазин средств связи
EN FR DE CN JP

TWINPICKS, ByteBlaster MV In-System Programmer

TWINPICKS© In-System Programmer

Tchigrinets Vladislav, Tomsk 634021, Russia
http://twinpicks.tripod.com/tp_intro_ru.htm

Программатор TwinPicks предназначен для конфигурирования устройств программируемой логики (ПЛИС, PLD - programming logic device) фирмы ALTERA и микроконтроллеров AVRT фирмы ATMEL через адаптер ByteBlaster (Altera), подключаемый к параллельному LPT порту компьютера.

Мотивация

Необходимость в данной программе возникла при проектировании и отладке сигнальных процессоров, реализованных на микросхемах ПЛИС фирмы Альтера, в рамках исследовательских проектов лаборатории "Радиооптики" Томского университета систем управления и радиоэлектроники (ТУСУР). Программатор, поставляемый с QuartusIIT (Altera), не позволяет конфигурировать ПЛИС под управлением Windows 9x, при этом программы MBlaster и JRunner не имеют удобного графического интерфейса пользователя. Программатор TwinPicks призван объединить в себе функциональность программаторов MBlaster и JRunner и удобство графического интерфейса пользователя. В январе 2005 года добавлена возможность программирования AVR микроконтроллеров.

Исходный код

Проект TWINPICKS является результатом C++ реинженеринга программ MBlaster и JRunner, исходные коды которых являются открытыми (OSP - open source programming) и доступны на WEB узле фирмы Altera. Графический интерфейс пользователя (GUI - graphic user interface) сделан аналогично интерфейсу программатора AVRISP, поставляемого вместе с программой AVRStudio (Atmel). Исполняемый файл "TwinPicks.exe" скомпилирован в среде Borland C++BuilderT 6 (sp4).

Требования к системе

  1. Операционная система: Windows 9x/ME, Windows NT/2000/XP.
  2. Для работы в операционной системе Windows NT/2000/XP необходима установка драйвера ByteBlasterMVT.
  3. Для инициализации параметров микроконтроллеров программа TwinPicks использует синтаксический анализатор (SAX2 parser) MSXML 3.0 SP4 (Microsoft).

Функциональные возможности

Программатор TwinPicks позволяет конфигурировать ПЛИС через последовательный интерфейсы: SP - serial programming и JTAG (Join Test Action Group). По интерфейсу JTAG доступны скан - регистры (BSR Boundary-Scan Register).
Программа принимает два типа файлов данных *.rbf (Raw binary file) и *.hexout (Intel hex file). В режиме JTAG возможно программирование и сканирование каскадно-соединенных ПЛИС, профиль соединения которых представляется файлом *.cdf (Chain definition file).

Список поддерживаемых устройств:

ACEX 1K
 EP1K10F256 ,
 EP1K10Q208 ,
 EP1K10T100 ,
 EP1K10T144 ,
 EP1K30F256 ,
 EP1K30Q208 ,
 EP1K30T144 ,
 EP1K50F256 ,
 EP1K50F484 ,
 EP1K50Q208 ,
 EP1K50T144 ,
 EP1K100F256 ,
 EP1K100F484 ,
 EP1K100Q208 ,
 
CYCLONE
 EP1C20F324 , 
 EP1C20F400 ,
 EP1C12F256 ,
 EP1C12F324 ,
 EP1C12Q240 ,
 EP1C6F256 ,
 EP1C6Q240 ,
 EP1C6T144 ,
 EP1C4F400 ,
 EP1C4F324 ,
 EP1C3T100 ,
 EP1C3T144 ,
 
MERCURY _
 EP1M120F484 , 
 EP1M350F780 ,
 
 

STRATIX _
 EP1S10B672 ,
 EP1S10F484 ,
 EP1S10F672 ,
 EP1S10F780 ,
 EP1S10B672ES ,
 EP1S10F484ES ,
 EP1S10F672ES ,
 EP1S10F780ES ,
 EP1S20B672 ,
 EP1S20F484 ,
 EP1S20F672 ,
 EP1S20F780 ,
 EP1S25B672 ,
 EP1S25F672 ,
 EP1S25F780 ,
 EP1S25F1020 ,
 EP1S30B956 ,
 EP1S30F780 ,
 EP1S30F1020 ,
 EP1S40B956 ,
 EP1S40F780 ,
 EP1S40F1020 ,
 EP1S40F1508 ,
 EP1S60B956 ,
 EP1S60F1020 ,
 EP1S60F1508 ,
 EP1S80B956 ,
 EP1S80F1020 ,
 EP1S80F1508 ,
 
STRATIX GX
 EP1SGX40 ,  
 EP1SGX25 ,
 EP1SGX10 ,
 
STRATIX II
 EP2S60F484 , 
 EP2S60F672 ,
 EP2S60F1020 

FLEX 10KE
 EPF10K30EF256 ,
EPF10K30EF484 ,
 EPF10K30EQ208 ,
 EPF10K30ET144 ,
 EPF10K50EF256 ,
 EPF10K50EQ240 ,
 EPF10K50ET144 ,
 EPF10K50SB356 ,
 EPF10K50SF256 ,
 EPF10K50SF484 ,
 EPF10K50SQ208 ,
 EPF10K50SQ240 ,
 EPF10K50ST144 ,
 EPF10K100EB356 ,
 EPF10K100EF256 ,
 EPF10K100EF484 ,
 EPF10K100EQ208 ,
 EPF10K100EQ240 ,
 EPF10K130EB356 ,
 EPF10K130EB600 ,
 EPF10K130EF484 ,
 EPF10K130EF672 ,
 EPF10K130EQ240 ,
 EPF10K200EB600 ,
 EPF10K200SB356 ,
 EPF10K200SB600 ,
 EPF10K200SF484 ,
 EPF10K200SF672 ,
 EPF10K200SR240 ,
 

APEX 20KE
 EP20K30ET144 ,
 EP20K60EB356 ,
 EP20K60EF144 ,
 EP20K60EF324 ,
 EP20K60EQ208 ,
 EP20K60ET144 ,
 EP20K100EB356 ,
 EP20K100EF144 ,
 EP20K100EF324 ,
 EP20K100EQ208 ,
 EP20K100EQ240 ,
 EP20K100ET144 ,
 EP20K160EB356 ,
 EP20K160EF484 ,
 EP20K160EQ208 ,
 EP20K160EQ240 ,
 EP20K160ET144 ,
 EP20K200EB356 ,
 EP20K200EB652 ,
 EP20K200EF484 ,
 EP20K200EF672 ,
 EP20K200EQ208 ,
 EP20K200EQ240 ,
 EP20K300EB652 ,
 EP20K300EF672 ,
 EP20K300EQ240 ,
 EP20K400EB652 ,
 EP20K400EF672 ,
 EP20K600EB652 ,
 EP20K600EF672 ,
 EP20K600EF33 ,
 EP20K1000EB652 ,
 EP20K1000EF672 ,
 EP20K1000EF33 ,
 EP20K1500EB652 ,
 EP20K1500EF33 ,

APEX 20K
 EP20K100B356 ,
 EP20K100F324 ,
 EP20K100Q208 ,
 EP20K100Q240 ,
 EP20K100T144 ,
 EP20K200B356 ,
 EP20K200F484 ,
 EP20K200R208 ,
 EP20K200R240 ,
 EP20K400B652 ,
 EP20K400F672 ,
 
APEX 20KC
 EP20K200CB356 ,
 EP20K200CF484 ,
 EP20K200CQ208 ,
 EP20K200CQ240 ,
 EP20K400CB652 ,
 EP20K400CF672 ,
 EP20K600CB652 ,
 EP20K600CF672 ,
 EP20K600CF33 ,
 EP20K1000CB652 ,
 EP20K1000CF672 ,
 EP20K1000CF33 ,
 
APEX II
 EP2A15B724 ,
 EP2A15F672 ,
 EP2A25B724 ,
 EP2A25F672 ,
 EP2A25F1020 ,
 EP2A40B724 ,
 EP2A40F672 ,
 EP2A40F1020 ,
 EP2A70B724 ,
 EP2A70F1508 ,
 

Программатор TwinPicks позволяет программировать AVR микроконтроллеры через последовательный интерфейс SPI. Возможность программирования через порт JTAG в настоящее время рассматривается, но реализация остается под большим вопросом из-за отсутствия времени.

Для микроконтроллеров AVR возможны два типа входных данных — бинарный (*.rbf) и текстовый (*.hex, *.eep). Если расширение файла не совпадает с выше названными расширениями, то считается, что файл бинарный.

Список поддерживаемых устройств определяется из директории описания устройств В AVRStudio 4.10 определены следующие микроконтроллеры:

AT90S1200
AT90S2313
AT90S2323
AT90S2343
AT90S4414
AT90S4433
AT90S4434
AT90S8515
AT90S8515comp
AT90S8535
AT90S8535comp
 

ATmega103
ATmega103comp
ATmega128
ATmega16
ATmega161
ATmega161comp
ATmega162
ATmega163
ATmega165
ATmega168
ATmega169
 

ATmega32
ATmega323
ATmega325
ATmega3250
ATmega329
ATmega3290
ATmega48
ATmega64
ATmega649
ATmega8
ATmega8515
ATmega8535
ATmega88

ATtiny12
ATtiny13
ATtiny15
ATtiny22
ATtiny2313
ATtiny26
 

Программа позволяет считывать память программ и данных микроконтроллеров и сохранять данные в бинарном (*.rbf) и текстовом (*.hex) форматах, отображает данные в текстовом виде (подобно FAR manager) и имеет функцию подсветки для файловых данных несовпадающих с данными ячеек памяти микроконтроллера.

Ограничения программы

  1. В настройках программы добавлена функция выбора LPT порта, однако, в действительности эта функция будет реализована лишь при острой необходимости.
  2. Не смотря на внушительные списки поддерживаемых устройств, частичная отладка программы осуществлялась на микросхемах серии Acex™ (EP1K100) и Cyclone™ (EP1C6). Из микроконтроллеров частичная проверка функциональности проводилась на устройствах AT90S8515, AT90S8535, ATmega16, ATmega32.
  3. При сохранении данных в файле с расширением (*.hex) автоматически выбирается тип данных «04 Extended Linear Address Record» (см. Intel Hexadecimal Object File Format Specification Revision A, 1/6/88).
  4. Чтение HEX-файлов записей типа ‘02’ Extended Segment Address Record производится в соответствии с Intel-овскими рекомендациями (вычисление адреса смещения по модулю 64К), что соответствует формату данных, формируемых Quartus II (Altera), но от части не совместимо с форматом данных AVR при размере данных более 64К (см. описание проблемы в AVReAL).
  5. В связи с отказом Microsoft® в поддержке операционной системы Windows95 мне лично не удалось инсталлировать на Windows95 парсер MSXML3, соответственно программа не может загрузить список доступных микроконтроллеров в данной операционной системе. Если этот вопрос останется не разрешенным, то со временем будет предпринята попытка подключить сторонний XML Parser.
  6. Исполняемый файл "TwinPics.exe" скомпилирован в режиме DEBUG, т.е. без оптимизации по скорости работы, файл включает множественные проверки на соответствие типов данных, их размер и допустимость диапазонов. Поскольку скорость обмена по LPT порту значительно ниже скорости работы (реакции) процессора, то замедление работы в режиме программирования практически не видно.
  7. Параметры микроконтроллеров содержатся в т.н. “Partdescriptionfiles” – XML файлах, включенных в инсталляционный пакет. Partdescriptionfiles взят из AVRStudio™ 4.11. Если на компьютере установлена более старая версия AVRStudio™, то в настройках программатора TwinPics следует прописать путь именно к Partdescriptionfiles, инсталлированных в директории TwinPics.

Рекомендации

  1. В связи с выше указанными ограничениями функциональности программы, я рекомендую первоначально сверить правильность работы программатора TwinPicks с программатором AVReAL (например, запрограммировать одним программатором, а сверить результат другим программатором). Можете присылать результаты тестов по e-Mail, или в конференцию, по результатам будет сформирован отдельный список протестированных микроконтроллеров.
  2. В программе, в разделе Help>About… имеется ссылка на адрес электронной почты. Вопросы можно присылать на русском, немецком и английском языках.
  3. Помимо алгоритмических ошибок (bugs, в настоящее время не выявлены), программа может содержать грамматические ошибки/неточности (интерфейс английский, интернационализация не планируется). Исправления и рекомендации приветствуются.
  4. Программа имеет интуитивно понятный интерфейс, описание работы программы (Help) планируется выпустить в ближайшие дни.

Важное замечание

Проект TWINPICKS© является некоммерческим проектом и осуществляется только за счет личного энтузиазма автора. Программатор TwinPicks поставляется бесплатно и без каких-либо ограничений по времени и функциональности работы. Перед использованием данного программатора ознакомьтесь, пожалуйста, с лицензионным соглашением: LICENSE TERMS. ВСЮ ОТВЕТСТВЕННОСТЬ ЗА ПОСЛЕДСТВИЯ ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОДУКТА ПОЛЬЗОВАТЕЛЬ ПРОГРАММЫ НЕСЕТ САМ.

Программатор ByteBlasterMV:

(Прислал Евгений Лисовой lisovy {at] id.ru)

Путаницы в интернете -- МОРЕ! Это чистокровный ByteBlasterMV (не BitBlaster, не ByteBlaster, не AVRISP, не ByteBlaster-II, а именно
ByteBlasterMV!!!!!!!). Что это там такое на транзисторе? У чистокровного ALTERA ByteBlasterMV должна присутствовать такая цепь, это детектор напряжения питания на TARGET-плате и соответственно на самом ByteBlasterMV. На плате я разместил 2 ISP разъема:

  1. 6-пиновый -- распиновка ATMEL ISP-6
  2. 10-пиновый -- распиновка ALTERA ISP-10 (а не ATMEL ISP-10), с целью стандартизации (чтобы были линии STAT# и XTAL1).

Также я установил USB-TypeB гдездо, это для подачи +5V как на ByteBlaster, так и на TARGET. Т.к. диодная развязка на Rectifier-ах 1N5818, то схеме не страшно питание как с TARGET, так и от USB, и падение напряжения крайне ничтожное.

Принципиальная схема

Принципиальная схема программатора ByteBlasterMV

Разводка печатной платы

Разводка печатной платы

Фотографии программатора

(Еще не запаяны разъемы ISP-6 и ISP-10.)

 

Партнеры