Бдм программатор своими руками

Универсальный USB программатор

В интернете представлено множество схем программаторов микроконтроллеров. Представляю вариант внутрисхемного универсального USB программатора с возможностью отладки, которым пользуюсь я. Вы сможете собрать данный программатор своими руками.

Основой программатора является микросхема FT2232D. Представляет она собой преобразователь USB в два порта UART. Особенность заключается в том, что «верхний» канал А может работать в режимах JTAG, SPI и I 2 C, что и требуется для программирования микроконтроллеров, различных микросхем памяти и т.п.

Разработка данного 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) г.Сызрань, Самарская обл.

Источник

Зачем мужу программатор Freescale USBDM: мое расследование

Универсальный программатор / отладчик / эмулятор / дебаггер Freescale FZ0622 USBDM… Что это за зверь и зачем мой муж опять тратит деньги на какие-то электронные железки из Китая?

Начинаю свое расследование в интернете) Оказывается, если я залью много средства в стиральную машинку, то чтобы ее починить, может потребоваться этот программатор. То есть из мозгов машинки сотрется программа стирки и нужно будет ее залить заново.

Да.. если бы не одно но! Подходит программатор только для блоков Аркадия. Блоки Аркадия устанавливаются в машинки фирм Electrolux, Indesit, Hotpoint-Ariston, Whirlpool Candy, Aeg, Zanussi, Whirlpool … А у нас машинка LG( Пишут также, что подходит для холодильников. Но холодильник у нас тоже лыжник..

Ну ладно, для ремонта нашей стиралки этот программатор USBDM бесполезен. Читаю дальше…Для процессоров HSC08 и HSC12 в автомобилях (комбинации приборов ВАЗ) Лада Гранта/Калина/Datsun. Поддерживает процессора семейства HSC08 и HCS12, которые устанавливались как на стиральных машинах так и на автомобилях.
Программирует прошивками в формате s19.
Для прошивки нужно конвертировать прошивку под ту версию программы, которая написана на модуле.
Значит решил что-то ремонтировать в Калине. Но она же не ломалась, что ее ремонтировать-то?
Продолжаю расследование. Смотрю, какие-то новые программы установлены на компе:

CodeWarrior, что в переводе с английского — Воин Кода.. Игра что ль новая вышла?

К программатору приложен листок с сайтом docs.diymalls.com. Вход по паролю, ишь, секретность какая)
Интересненько, что там?

Хмм, какие-то документы.. Руководства пользователя:

Спрашиваю мужа, что ты сделал этим программатором? Ничего ж не ломалось?
Он, довольный, показывает мне фото до/после:

По мне так, ничего не поменялось) Вот, говорит, было 7 версия, а стала 12. Ну нифига себе прогресс, думаю. А суть то в чем тут?

Читайте также:  Бумажный фильтр для самогона своими руками

Оказывается, со старой прошивкой приборная панель не показывала температуру за бортом, и в двигателе. Ну и заморочки, не догадывалась о таком..

Хотя датчики были и выводили температуру на маленький бортовой компьютер, который расположен под магнитолой.

Ну а теперь все будет удобненько в одном месте. Хотя был риск получить кирпич вместо приборной панели.. Есть такие отзывы в сети, что после прошивки приборка больше не включалась.

Как вы думаете, пригодится еще этот программатор? Или это сугубо одноразовая покупка?

Источник

Внутрисхемный USB BDM программатор микроконтроллеров Freescale

Внутрисхемный USB BDM

программатор микроконтроллеров Freescale.

Программатор предназначен для внутрисхемного программирования микроконтроллеров Freescale семейства HSC08. Для программирования используется интерфейс BDM который обеспечивает высокую скорость программирования и позволяет выполнить полное стирание ранее запрограммированного МК в случае активированной защиты от чтения.

Программатор разработан и нацелен на микроконтроллеры используемые в бытовой технике, в стиральных машинах и холодильниках построенных на платформе Аркадия и соответственно микроконтроллеров MC9S08GB60(mask 3L31R), MC9S08GB60A(mask 4L11Y) и в стиральных машинах Zanussi/Electrolux с платформой ENV-06 и соответственно контроллеров MC9S08AW60 и MC9S08AC60. Безусловно на этом возможности программатора не ограничиваются, ниже предоставлен список поддерживаемых микроконтроллеров.

MC9S08AC8,MC9S08AC16,MC9S08AC32,MC9S08AC48,MC9S08AC60,MC9S08AC96,
MC9S08AC128,S9S08AW8A, S9S08AW16A, MC9S08AW16,MC9S08AW32,MC9S08AW48,
MC9S08AW60,MC9S08DE32,MC9S08DE60,MC9S08DN16,MC9S08DN32,MC9S08DN48,
MC9S08DN60,MC9S08DV16,MC9S08DV32,MC9S08DV48,MC9S08DV60,MC9S08DV96,
#MC9S08DV128,MC9S08DZ16,MC9S08DZ32,MC9S08DZ48,MC9S08DZ60,MC9S08DZ96,
#MC9S08DZ128,MC9S08EL16,MC9S08EL32,MC9S08EN16,MC9S08EN32,MC9S08FL8,
MC9S08FL16,MC9S08GB32,MC9S08GB32A, MC9S08GB60,MC9S08GB60A, MC9S08GT8A,
MC9S08GT16,MC9S08GT16A, MC9S08GT32,MC9S08GT32A, MC9S08GT60,MC9S08GT60A, MC9S08JM8,MC9S08JM16,MC9S08JM32,MC9S08JM60,MC9S08JS8,MC9S08JS16,
MC9S08JS8L, MC9S08JS16L, MC9S08LC36,MC9S08LC60,MC9S08LG16,MC9S08LG32,
MC9S08LL8,MC9S08LL16,MC9S08LL36,MC9S08LL64,MC9S08MP12,MC9S08MP16,
MC9S08NM8,MC9S08QA2,MC9S08QA4,MC9S08QB4,MC9S08QB8,MC9S08QD2,
MC9S08QD4,S9S08QD2,S9S08QD4,MC9S08QE4,MC9S08QE8,MC9S08QE64,
MC9S08QE96,MC9S08QE128,MC9S08QG4,MC9S08QG8,MC9S08RC8,MC9S08RC16,
MC9S08RC32,MC9S08RC60,MC9S08RD8,MC9S08RD16,MC9S08RD32,MC9S08RD60,
MC9S08RE8,MC9S08RE16,MC9S08RE32,MC9S08RE60,MC9S08RG32,MC9S08RG60,
MC9S08SE4,MC9S08SE8,MC9S08SG4,MC9S08SG8,MC9S08SG16,MC9S08SG32,
MC9S08SH4,MC9S08SH8,MC9S08SL8,MC9S08SL16,MC9S08SV8,MC9S08SV16.

Программатор не тестировался со всеми микроконтроллерами из этого списка, в случае возникновения каких либо проблем с программированием МК входящего в этот список просьба обратиться за консультацией.

Аппаратная часть программатора.

Программатор имеет интерфейс USB 2.0, посредством которого осуществляется связь с ПК и 4-х проводной интерфейс BDM для программирования целевого МК.

Для связи с ПК используется стандартный USB кабель принтера с разъемом USB-B, который входит в комплектацию и по желанию может быть заменен аналогичным стандартным кабелем USB-USB-В.

Кабель для внутрисхемного программирования имеет разъем только с одной стороны для подключения к программатору. Для подключения к микроконтроллеру на целевой плате необходимо подпаяться к соответствующим выводам. Для программирования микроконтроллеров вне платы, пользователь может изготовить дополнительные переходники самостоятельно.

Для подачи напряжения питания на программируемый микроконтроллер можно использовать как внутренний источник питания от линии USB, так и внешний

источник питания. Программатор имеет встроенный стабилизатор напряжения питания 3,3вольта.

Выбор источника питания микроконтроллера и напряжение программирования (USB/ внешнее питание, 5в/3,3в ) осуществляется при помощи джамперов на разъеме программатора.

Программатор не имеет гальванической развязки, поэтому нельзя подавать на модуль в режиме программирования штатное питание 220 вольт!

Джамперы и разъем для программирования.

Вид со стороны интерфейсного разъёма

Подача внешнего питания осуществляется от стабилизированного источника питания 5в,

Джампер J1 переключает напряжение питания для программирования микроконтроллера

Джампер J2 переключает источник напряжения для программирования МК (внутреннее — USB /внешнее — с разъема внешнего питания)

Источник

Как собрать универсальный BDM программатор своими руками

Многие владельцы сложной техники по различным причинам задаются вопросом перепрошивки процессоров, которые отвечают за логику работы этих приборов. Это могут быть микроконтроллеры автомобилей (в обиходе называемые «мозгами»), стиральных машин и другой бытовой техники.

Читайте также:  Как сделать украшения для комнаты своими руками

Чтобы скопировать имеющуюся или «залить» (закачать, установить) новую прошивку в такой процессор необходимо:

1. Аппаратное подключение к процессору через специальный интерфейс;

2. Специальный контроллер, который сможет обеспечить правильный обмен данными с процессором на понятном ему «языке».

3. Программное обеспечение, предназначенное для обработки кода прошивки и обмена данными с контроллером.

BDM – это аббревиатура от слов «Background Debug Mode» (русск. «Фоновый режим отладки»). Фактически это специальный интерфейс, применяемый в отдельных моделях процессоров. Разработан он и применяется в микропроцессорах производителя Motorola (в отдельных линейках продуктов. Наиболее часто используются для контроля работы двигателей автомобилей в составе блоков управления ДВС, изображение ниже), а также в решениях производителя Freescale Semiconductor. Основное назначение интерфейса BDM – отладка, запись, чтение данных.

Рис. 1. Блок управления ДВС

Использование BDM предполагает обмен данными с согласованием уровней напряжения, что требует особого подхода к проектированию контроллеров BDM.

Почему собрать универсальный BDM-программатор своими руками не получится

Дело в том, что производитель не открывает спецификаций для своих микроконтроллеров и не описывает формат обмена данными для протокола BDM.

Это значит, что все потенциальные технические решения – это своеобразный реверс-инжиниринг (анализ входов/выходов с последующей попыткой воспроизведения логики их работы).

Несмотря на то, что на рынке присутствуют готовые BDM-программаторы, они очень часто не справляются со своими функциями, так как производители автомобилей и бытовой техники предпринимают ряд мер по борьбе с потенциальными попытками взлома и модификации заводских прошивок. Ведь такие изменения могут нанести вред не только самому устройству, но и окружающим (как, например, в случае с автомобилями, которые сами по себе являются потенциальными источниками опасности).

В любом случае, даже в теории, разработка такого программатора очень сложна:

1. требуются знания не просто в области радиоэлектроники, но и в микропроцессорах (коды и формат обмена данными может изменяться в различных моделях микроконтроллеров);

2. одного только контроллера для практического применения недостаточно, нужно специализированное программное обеспечение (его нужно написать, проверить в работе и т.д.);

3. как и было сказано выше, следует учесть множество нюансов, свойственных различным моделям процессоров, работающих с протоколом BDM, методы защиты производителей и способы их обхода;

Исходя из вышесказанного, следует, что на такое способны только конструкторские бюро или профессиональные проектные организации.

И даже после создания такого программатора и софта к нему (или покупки и использования готового прибора – смотри фото ниже), вы получаете следующие проблемы:

1. вмешательство в заводскую прошивку лишает вас гарантий производителя;

2. ошибка в логике работы микроконтроллера может повлечь за собой непредвиденные проблемы и последствия.

Мнения читателей

Нет комментариев. Ваш комментарий будет первый.

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

Источник

Оцените статью