RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/repair_electronic_technics/repair_home_appliances/freescale_microcontrollers_appliances_bdm_debug_interface.html

Микроконтроллеры Freescale для бытовой техники. Отладочный интерфейс BDM

Общие сведения. Комплекс отладки BDM

В журнале [1] уже публиковались материалы об особенностях программирования МК Freescale (Motorola) с помощью отладочного интерфейса MON08. Наряду с относительной простотой программно-аппаратных средств отладки MON08 для данной системы существует ряд существенных ограничений (см. [2]). Перечислим некоторые из них:

- скорость обмена с ПК в режиме отладки и программирования определяется тактовой частотой МК в конкретном исполнении изделия (программатора). Возможны случаи, когда требования отладочного ПО и конкретного изделия при выборе частоты тактирования могут вступать в противоречие;

- для контроля над ресурсами МК в ходе исполнения отлаживаемой программы в реальном масштабе времени эту программу необходимо остановить. Не все объекты управления допускают подобный режим испытаний;

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

В связи с вышеназванными ограничениями при проектировании некоторых последующих линеек МК используется уже другой модуль/режим отладки, лишенный указанных недостатков, - BDM (Background Debug Mode, фоновый режим отладки). Иногда можно встретить другой перевод аббревиатуры BDM - Background Debug Module. Это не совсем правильно, поскольку сокращение "BDM" в первую очередь характеризует именно способ реализации процесса отладки на аппаратном уровне, без останова исполнения прикладной программы. Этот способ применен в нескольких семействах МК: 8-разрядных HCS908, 16-разрядных HCS12 и 32-разрядных ColdFire. Однако аппаратная реализация подсистемы отладки для каждого из перечисленных семейств - своя собственная. То же самое можно сказать и относительно интерфейса отладки, который носит название BDM-порт. Этот интерфейс используется для сопряжения МК с ПК. Имея одинаковое название в каждом из указанных семейств МК, порты BDM различаются числом линий связи и временными параметрами обмена информацией. Об этом следует помнить при приобретении модуля сопряжения, который необходим для подключения МК конкретного изделия к ПК на этапе отладки/ прог рам мирования.

Существует большое разнообразие вариантов практической реализации устройств сопряжения между ПК и интерфейсом BDM. Больше всего распространены адаптеры USB-BDM, реже можно встретить решения типа LPT-BDM (см. [3]).

В этой статье пойдет речь о программно-аппаратных комплексах отладки BDM применительно к серии МК HCS908 (как отмечалось выше, подобные комплексы для разных серий МК имеют некоторые различия). Для специалистов-ремонтников возможности BDM в полном объеме не нужны - они ограничиваются лишь операциями чтения/записи при программировании внутренней Flash-памяти МК.

Встроенный модуль/режим внутрисхемной отладки МК HCS908 состоит из двух частей: контроллера BDC (Backgroung Debug Controller) и собственно модуля отладки (On-chip Debug Module). Контроллер BDC обеспечивает доступ ко всей памяти МК, а также чтение и модификацию регистров без остановки работы центрального процессора.

Существуют два списка команд отладки: одни выполняются на аппаратном уровне, а другие - под управлением специальной программы - монитора отладки, которая хранится в ПЗУ модуля BDM. Применительно к потребностям ремонтников интерес представляют аппаратные команды, так как с их помощью и обеспечивается весь процесс программирования памяти МК. Список аппаратных команд BDM приведен в таблице.

Таблица. Описание аппаратных команд модуля отладки BDM

Команда

Описание

BACKGROUND

Ввод в режим отладки с использованием монитора BDM

READ_BD_BYTE

Чтение байта из области памяти блока BDM, адрес указан в команде

STATUS

Чтение регистра состояния модуля BDM (частный случай команды READ_BD_BYTE)

READ_BD_WORD

Чтение 16-разрядного слова из области памяти блока BDM, адрес указан в команде

READ_BYTE

Чтение байта из области памяти МК, адрес указан в команде

READ_WORD

Чтение слова из области памяти МК, адрес указан в команде

WRITE BD BYTE

Запись байта в область памяти блока BDM

ENABLE_FIRMWARE

Производится запись в регистр состояния STATUS модуля BDM (частный случай команды WRITE_BD_BYTE). Передаваемый в регистр состояния код 1xxx xxxx разрешает работу программно-аппаратных средств модуля отладки BDM. Для перевода МК в режим отладки необходимо далее подать команду BACKGROUND

WRITE_BD_ WORD

Запись слова в область памяти блока BDM, адрес указан в команде

WRITE_BYTE

Запись байта в область памяти МК

WRITE_ WORD

Запись слова в область памяти МК, адрес указан в команде

Адаптер USB-BDM - это специальное отдельное электронное устройство, которое преобразует сигналы однопроводного интерфейса отладки МК в стандартный последовательный протокол USB для ПК. Обычно адаптер BDM соединяется с МК на плате программируемого/отлаживаемого изделия через стандартный 6-контактный соединитель. Применительно к изделиям бытовой техники, в которых используются МК серии HCS908, они не имеют на ЭМ отдельных стандартных соединителей с распайкой под адаптер USB-BDM. Для подключения адаптера к ЭМ используют переходники или просто выполняют нужную разводку между адаптером BDM и МК отдельными внешними проводниками (см. ниже). В зависимости от модели адаптера USB-BDM питание МК в них может коммутироваться (например, 3,3/5 В), а также выбираться источник питания (внешнее или от USB-порта МК). На указанный выше 6-контактный соединитель BDM адаптера обычно выведены только 4 линии: BKGD (сокращение от слова BACKGROUND, двунаправленная линия обмена данными), RST (аппаратный сброс МК), Vdd (питание МК) и GND (общий провод). В некоторых моделях МК вывод BKGD может иметь обозначение BKGD(BKGND)/MS и предназначен для реализации сразу двух функций: соединения с внешним устройством отладки (BKGND) и выбора режима работы МК (MS).

При активном состоянии сигнала сброса (RST) МК вывод BKGND/MS используется для выбора режима работы. При высоком логическом уровне на входе BKGND/MS МК переходит в пользовательский режим работы. В этом режиме будет исполняться программа управления только под управлением собственных ресурсов МК, без участия модуля отладки. МК обеспечивает переход в пользовательский режим в момент выхода из режима сброса. До вывода МК из состояния сброса изменение уровня сигнала на выводе BKGND/ MS позволяет сколь угодно раз переназначать режим работы МК, выбирая отладочный или пользовательский режимы работы.

Режим отладки BDM в варианте реализации для 8-разрядных МК HCS908 предоставляет четыре типа сервисов:

- выполняет чтение и модификацию ячеек памяти и регистров специальных функций без останова исполнения прикладной программы;

- сканирует состояние внутренних магистралей МК в определенные выбранные оператором моменты. На основании этих данных ПК восстанавливает весь ход исполнения прикладной программы без останова ее исполнения;

- обеспечение останова прикладной программы по безусловным и условным контрольным точкам;

- выполняет чтение и модификацию регистров МК после останова прикладной программы по какому-либо событию отладки.

Описание режима BDM, работа и взаимодействие программных и аппаратных средств достаточно подробно описаны в документации производителя [4].

 

Практические реализации внутрисхемных USB-BDM программаторов

Существует много разновидностей адаптеров BDM для программирования МК Freescale, у специалистов большее распространение получили устройства USB-BDM, так как подавляющее большинство ПК уже имеют в своем составе интерфейс USB.

Рассмотрим варианты устройств USB-BDM, которые получили наибольшее распространение.

 

BDM Multilink (USBMULTILINKBDME)

BDM Multilink - рекомендуемый Freescale недорогой  универсальный отладочный инструмент для МК серий RS08, HCS08, HCS12. Вместе с этим продуктом поставляется инструментальная среда CodeWarrior™ Development Studio for RS08, HC(S)08, HC(S)12, Special Edition. Устройство позволяет проводить операции по внутрисхемному программированию Flash-памяти МК, отладку программ и эмуляцию в режиме реального времени.

Внешний вид устройства показан на рис. 1, а окно программного пакета CodeWarrior™ Development Studio - на рис. 2.

Внешний вид комплекта универсального программатора BDM Multilink

Рис. 1. Внешний вид комплекта универсального программатора BDM Multilink

 

Окно программы CodeWarrior™ Development Studio

Рис. 2. Окно программы CodeWarrior™ Development Studio

 

 

Программатор USBDM TBDML

Этот программатор производства КНР является более доступной версией предыдущего устройства (цена около 800...1500 руб.). Он работает под управлением ПО CodeWarrior™ Development Studio и поддерживает МК серий HCS12, HCS08, RS08, Coldfire V1. В устройстве имеется возможность коммутации питания МК (3,3/5 В). Внешний вид устройства OSBDM TBDML показан на рис. 3. 

Внешний вид универсального программатора USBDM TBDML

Рис. 3. Внешний вид универсального программатора USBDM TBDML

 

 

BDM Programmer

Устройство в основном предназначено для программирования только МК Freescale серии HSC08, которые применяются в бытовой технике (стиральные и посудомоечные машины, холодильники и др.). Перечислим некоторые из них:

- MC9S08GB60(A) (Indesit/Hotpoint-Ariston, аппаратная платформа ARCADIA);

- MC9S08AW60 (Zanussi/Electrolux, платформа ENV-06).

Вышеприведенный список поддерживаемых МК этим не ограничивается (в серию HSC08 входит более 100 типов МК), программатор поддерживает и другие МК серии HSC08.

В устройстве предусмотрена коммутация уровней напряжения питания МК (3,3/5 В) и питание от сетевого адаптера или от USB-интерфейса. Внешний вид программатора BDM Programmer показан на рис. 4.

Рис. 4. Внешний вид программатора BDM Programmer

 

Программатор работает под управлением ПО Flash Programmer. Одно из окон программы (установки программирования МК) показано на рис. 5. Более подробно с программатором можно ознакомиться в [5] и [6].

Окно программы Flash Programmer

Рис. 5. Окно программы Flash Programmer

 

 

Схемотехника универсальных BDM-программаторов

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

Принципиальная электрическая схема BDM-программатора (вариант 1)

Рис. 6. Принципиальная электрическая схема BDM-программатора (вариант 1)

 

На рис. 6 приведена принципиальная электрическая схема одной из разновидностей простейшего BDM-программатора (вариант 1). Рассмотрим назначение его основных компонентов:

- IC1 (TPS73133) - параметрический стабилизатор напряжения 3,3 В, используется для питания внешнего МК;

- IC2, IC3 (SN743LVC1T45) - 1-разрядные 2-направ-ленные формирователи;

- IC4 (MC68HC908JB16) - управляющий МК. Он обеспечивает функционирование всех узлов программатора. Данный МК относится к другому семейству HC08 и программируется через отладочный интерфейс MON08 (см. [1]);

- JP2 - переключатель режимов работы программатора;

- JP1 - переключатель питания внешнего МК (5/3,3 В);

- D1, D2 - светодиодные индикаторы;

- CN1 - соединитель USB-интерфейса;

- CN2 - соединитель BDM.

На рис. 7 показан еще один вариант BDM-программатора, выполненный на основе МК MC68HC908JB16. Он несколько отличается от предшественника, но основные компоненты и функционал оставлены без изменений. Что касается отличий - в нем, например, применена ручная коммутация режима программирования внешнего МК (переключателями S1, S2), также используется только один двунаправленный формирователь.

Принципиальная электрическая схема BDM-программатора (вариант 2)

Рис. 7. Принципиальная электрическая схема BDM-программатора (вариант 2) (по клику крупно)

 

 

Подключение BDM-программаторов к МК

Выше уже перечислялись выводы BDM-программатора, которые подключаются к внешнему МК. В зависимости от типа МК расположение выводов для подключения может различаться. Но в этом никаких сложностей не возникает, так как выводы (интерфейс) программатора и контрольные точки МК на разных устройствах обозначаются практически одинаково. На примере МК MC9S08AW60 выделены точки подключения программатора (см. рис. 8). Чтобы избежать в будущем ошибок при подключении программатора, нужно ознакомиться с соответствующими материалами на конкретный тип МК (например, см. [7]).

Точки подключения BDM-программатора к МК MC9S08AW60

Рис. 8. Точки подключения BDM-программатора к МК MC9S08AW60

 

В заключение приведем контрольные точки подключения программатора непосредственно на ЭМ стиральных машин. На рис. 9 показаны точки подключения BDM-программатора на электронной плате стиральных машин Indesit/Hotpoint-Ariston (аппаратная платформа ARCADIA, МК типа MC9S08GB60(А)), а на рис. 10 - на ЭМ EWM1100-2100-25xx/35xx для СМ Zanussi/Electrolux (аппаратная платформа ENV-06, МК типа MC9S08AW60).

Точки подключения BDM-программатора к плате модуля стиральных машин Indesit/Hotpoint-Ariston (аппаратная платформа ARCADIA, МК типа MC9S08GB60(А))

Рис. 9. Точки подключения BDM-программатора к плате модуля стиральных машин Indesit/Hotpoint-Ariston (аппаратная платформа ARCADIA, МК типа MC9S08GB60(А))

 

 

Точки подключения BDM-программатора к плате ЭМ стиральных машин Zanussi/Electrolux (аппаратная платформа ENV-06, МК типа MC9S08AW60)

Рис. 10. Точки подключения BDM-программатора к плате ЭМ стиральных машин Zanussi/Electrolux (аппаратная платформа ENV-06, МК типа MC9S08AW60)

 

 

Литература и интернет-источники

1. Л. Гусеинов, В. Химин, А. Ростов. Микроконтроллеры Freescale в электронных модулях бытовой техники. Технология программирования через отладочный интерфейс MON08. Ремонт & Сервис, №9, 2013.

2. Т. Ремизевич. Модули внутрисхемной отладки микроконтроллеров FREESCALE SEMICONDUCTOR. Электронные компоненты, №12, 2006.

3. Сайт для специалистов по спутниковому приему: http://www.sat-digest.com/SatXpress/Digital/MM/BDM/ index.htm

4. Introduction to HCS08. Background Debug Mode. Freescale Semiconductor. Application Note. Document Number: AN3335. Rev. 1, 11/2006.

5. Форум мастеров: http://rmbt.ru/index. php?showtopic=20290.

6. Форум сайта МОНИТОР: http://monitor.net.ru/ forum/programm-hcs08-env-06-info-398403.html.

7. MC9S08AW60. HCS08 Microcontrollers. Data Sheet, Freescale Semiconductor, Rev 2, 12/2006.

8. Форум по ремонту бытовой техники: http://www. remserv-bt.ru.

9. Форум сайта ESPEC: http://www.monitor.espec.ws.

Автор: Александр Ростов (г. Зеленоград)

Источник: Ремонт и сервис