В интернете представлено множество схем программаторов микроконтроллеров. Представляю вариант внутрисхемного универсального USB программатора с возможностью отладки, которым пользуюсь я. Вы сможете собрать данный программатор своими руками.
Основой программатора является микросхема FT2232D. Представляет она собой преобразователь USB в два порта UART. Особенность заключается в том, что «верхний» канал А может работать в режимах 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 фирмы ATMEL», М. Издательский дом «Додэка-ХХI», 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. Эндрю Троелсен «С# и платформа .NET» М.,С-П. Питер, 2007.
Скачать исходники ПО и печатную плату в формате P-CAD вы можете ниже
Борисов Алексей (Albor) г.Сызрань, Самарская обл.
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
U1
МикросхемаAT93C46D-8S1
U2
МикросхемаFT2232D1
VT1
MOSFET-транзисторBSS841
С1
Конденсатор0.01 мкФ1
С2, С3
Конденсатор27 пФ2
С4, С5, С7, С9, С10
Конденсатор0.1 мкФ5
С6
Конденсатор0.033 мкФ1
С8
Электролитический конденсатор10 мкФ1
R1
Резистор2.2 кОм1
0.05ВтR2
Резистор10 кОм1
0.05ВтR3, R4
Резистор27 Ом2
0.05ВтR5
Резистор470 Ом1
0.05ВтR6, R7
Резистор1.5 кОм2
0.05ВтR8-R16
Резистор220 Ом9
0.05ВтZQ1
Кварц6 МГц1
FB
Катушка индуктивности1
HL1, HL2
Светодиод2
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- univ_programmator.rar (400 Кб)