Универсальный USB программатор
В интернете представлено множество схем программаторов микроконтроллеров. Представляю вариант внутрисхемного универсального USB программатора с возможностью отладки, которым пользуюсь я. Вы сможете собрать данный программатор своими руками.
Основой программатора является микросхема FT2232D. Представляет она собой преобразователь USB в два порта UART. Особенность заключается в том, что [верхнийk канал А может работать в режимах JTAG, SPI и I2C, что и требуется для программирования микроконтроллеров, различных микросхем памяти и т.п.
Разработка данного USB-программатора ведется на компьютере с использованием библиотек от фирмы FTDI Chip.
Питается устройство от интерфейса USB. При правильной сборке схема не нуждается в настройке. Функционирование устройства зависит от мастерства разработчика ПО. Резисторы R8, R9, R12, R13, R14, R15, R16 являются токоограничивающими при неправильном соединении с устройством, соответственно, выводы программируемого устройства не должны соединяться с другими элементами в схеме, или иметь такие подтяжки, которые при образовании делителей напряжения не искажали бы логические уровни. Микросхема U1 используется для сохранения пользовательских настроек.
Выводы U2 (канал А):
24 ADBUS0 выход- в режиме JTAG TCK, в режиме SPI SK;
23 ADBUS1 выход- в режиме JTAG TDI, в режиме SPI DO;
22 ADBUS2 вход- в режиме JTAG TDO, в режиме SPI DI;
21 ADBUS3 выход- в режиме JTAG TMS, в режиме SPI как вспомогательный сигнал(CS);
20 ADBUS4 в режиме JTAG входвыход, в режиме SPI вспомогательный выход. Этот вывод используется для подачи сигнала RESET в микроконтроллер;
15 AСBUS0 свободно программируемый входвыход во всех режимах (опционно используется для подачи питания в программируемое устройство);
13 AСBUS1 свободно программируемый входвыход во всех режимах.
В принципе, эти выводы многофункциональные. Их поведение определяется выбранным режимом при открытии порта.
Канал В используется для отладки программируемого устройства. Для этого нужно только иметь незадействованный порт UART в микроконтроллере. Далее дело техники. В программе микроконтроллера в нужных местах используем функцию форматированного вывода printf().
40 BDBUS0 выход- в режиме UART TXD;
39 BDBUS1 вход- в режиме UART RXD;
28 BСBUS2 выход- в режиме UART LED-индикатор (зажигается при передаче данных через USB);
27 BСBUS3 выход- в режиме UART LED-индикатор (зажигается при приеме данных через USB).
Ниже приведена печатная плата программатора
На сегодняшний день данный универсальный программатор поддерживает микроконтроллеры AVR по интерфейсам JTAG и SPI. Причем скорость прошивки Atmega64 по JTAG не более 5-и секунд, по SPI не более 8-ми секунд. Принципиально, прошивать можно любые микроконтроллеры, к которым распространяется спецификация для программатора. В настоящий момент, например, ведется разработка для поддержки микроконтроллеров NEC.
Рабочая форма поделена на две части: слева таблицы для работы с FLASH (сверху) и EEPROM (снизу), сюда можно открывать файлы или загружать прошивки из микроконтроллера, делать верификацию, править содержимое ячеек памяти; справа текстовое поле для отладки, сюда выводятся данные с канала В, также можно там вводить текст, который отправится в порт (функционально это аналог HyperTerminal). Разработка ведется на платформе Visual C# под Windows. Также есть возможность разрабатывать на других языках. Программатор может работать и под Linux.
Используемая литература:
1. А.В. Евстигнеев [Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMELk, М. Издательский дом [Додэка-ХХIk, 2005.
2. Future Technology Devices International Ltd. FT2232D Dual USB UART/FIFO I.C. , Datasheet, 2006.
3. Future Technology Devices International Ltd. Software Application Development D2XX Programmer's Guide , Document, 2009.
4. Future Technology Devices International Ltd. Programmers Guide for High Speed FTCJTAG DLL , Application note AN_110, 2009.
5. Future Technology Devices International Ltd. Programmers Guide for High Speed FTCSPI DLL , Application note AN_111, 2009.
6. Эндрю Троелсен [С# и платформа .NETk М.,С-П. Питер, 2007.
Скачать исходники ПО и печатную плату в формате P-CADM