Внутрисхемный программатор микроконтроллеров семейства F2MC-16LX и FR.

ISP_MB9X v2.12

Copyright © 2001-2006 Sergey Pinigin

/files/isp_mb9x.jpg

Причины, которые подвигли на написание ISP_MB9X:

Полное или частичное отсутствие в фирменных программах следующих опций:

  • Аппаратная реализации сброса и установка режима программирования;
  • Работа в режиме командной строки;
  • Программирование при нестандартных скоростях последовательного порта (для MB90);
  • Загрузка и запуск пользовательской программы в RAM.

Содержание архива:

  • isp_mb9x.exe
  • DOC/ - Документация
    • index.html - Описание проекта
    • history.html - История проекта
    • switch.html - Описание ключей [RUS]
    • switch_en.html - Описание ключей [EN]
    • return_code.html - Список возвращаемых кодов [EN]
    • list90.html - Список поддерживаемых МК семейства MB90Fxxx
    • list91.html - Список поддерживаемых МК семейства MB91Fxxx
    • isp_mb9x_sch_v16.pdf - Пример схемы адаптера (Acrobat Reader)
    • isp_mb9x.jpg - ScreenShot.
  • OVL/ - Загружаемые в RAM модули
    • 90/ - для семейства 16-LX, MB90Fxxx
    • 91/ - для семейства FR, MB91Fxxx
    • source/fast_cl_fl/ - Source code for ae_flash.362

Установка

Разархивировать содержимое в отдельный каталог. Для запуска программатора в любом каталоге необходимо добавить в переменную окружения PATH полный путь до исполняемого файла isp_mb9x.exe.

Входные файлы:

Входные (для программирования) и выходные (чтение flash) файлы только бинарные. Сформировать бинарный файл для программирования можно при помощи утилиты M2BS.EXE, которая входит в комплект пакета Softune.

Пример:

m2bs input.mhx -ran 0xff0000,0xffffff -o output.bin

Работает с файлами, длина которых кратна 512, иначе на последнем блоке будет выдано сообщение об ошибке.

Подключение

Программирование выполняется с использованием асинхронного последовательного интерфейса RS232. Подключение к микроконтроллеру осуществляется через адаптер, он необходим для согласования уровней сигналов PC и МК и формирования дополнительных сигналов управления режимом работы МК (MD0, MD1, MD2, RESET, PortPin1, PortPin2 ). Схема рабочего примера адаптера RS232 приведена в файле isp_mb9x_sch_v16.pdf (Acrobat Reader). После выполнения операции программирования адаптер не требует отключения, если задействованный в нем линии не нарушают работоспособность схемы.

  • Используемые сигналы RS232 компьютера:
    • TX - Выходные данные (PC => MCU)
    • RX - Входные данные (PC <= MCU)
    • DTR - Формирование сигнала сброса (RESET)
    • RTS - Управление режимом (необходимо при работе с MB90) (SET MODE)

Приведены назначения выводов RTS/DTR принимаемые по умолчанию, их можно изменить.

Приведенный пример адаптера позволяет установить на вспомогательных выводах (PortPin1, PortPin2 ) логический '0'. Для формирования других значений необходимо изменить схему, это может потребоваться для микроконтроллеров, программирование которых возможно при частотах основного генератора, отличных от 4/8/16 Мгц. Для уточнения необходимо изучить Hardware manual используемого микроконтроллера.

Возможности и особенности

  • Используются готовые загружаемые модули для каждого семейства, взяты из комплекта Flash Writer 16LX и Flash Writer FR.
  • Одна программа поддерживает два семейства: 16-LX и FR (8-LX пока недоступны для проверки)

  • Используемый последовательный интерфейс можно задавать в виде системного имени: /LCOM3. (Думаю, можно и сетевой путь, мне пробовать не на чем)

  • Выбор скорости передачи данных выполняется посредсвам задания частоты генератора и информации в файле CHIPDEF.ini: /o4 /o16 /o12.5MHz

  • Возможна работа при ручном управлении режимом P0[0,1],MD[0..2] и сброса - ключ /t.

  • Блоки данных при передаче и приеме защищены CRC.

  • Программирование выполняется до завершения бинарного файла или достижения вершины flash.

  • Порядок следования параметров и команд может быть любым, порядок выполнения операций фиксированный: стирание, проверка на чистоту, программирование, сверка с исходным файлом.

  • В файле CHIPDEF.ini определены загружаемые файлы и начальные адреса Flash для каждой серии; если требуется установить другой адрес, используйте параметр /S.

  • Начальный адреса Flash в параметре /s должен быть кратным 512 (0x0001FF).

  • Для увеличения скорости работы на небольших проектах используется алгоритм "программирование только используемых блоков" - если блок 512 не содержит отличные от 0xff данные, он не программируется (но и не проверяется содержимое Flash !!! ).

  • Время чтения или программирования 64К

    • MB90 при частоте кварца 16МГц 64Кбайт/3.8(Кбайт/с) = 17 секунд. (MB90, program Baudrate 38400)
    • MB91 при частоте кварца 4МГц и скорости 115200 бод - 6 секунд.
  • При запуске без параметров выводится подсказка - список ключей командной строки.

  • Для разработки программы, работающей в RAM, изучите samplesflash.

  • Работает со всеми приведенными в CHIPDEF.INI частотами MCU, ряд 4 8 16 поддерживается адаптером и проверен.

  • Возможно непосредственное управление скоростью интерфейса (актуально при работе с МК семейства MB90Fxxx)

    /I4800:9600 : инициализация - 4800, рабочая - 9600.

    Скорости можно выбирать из ряда 115200/N, где N - целое число.

    Применение: при нестандартной частоте генератора.

    Пример:

    частота генератора - 3.686Мгц, MB90F497

    параметр задания скорости обмена - /I4430:8861

    вычислено по формуле: X_baud = Baud_for_4MHz * X_Clock / Clock_4MHz

    4800бод * 3686кГц / 4000кГц ~= 4430бод

    частота генератора - 3.500Мгц, MB90F497

    параметр задания скорости обмена - /I4267:8534

    • PS: Будет работать с микроконтоллерами, у которых не задана строка Baud2 в CHIPDEF.ini
    • PS1: По расчетам, можно программировать при любой частоте от_3мГц_до_5мГц
      • 3мГц - /i3600
      • 4.9мГц - /i5760
    • PS2: Прием и передача по RS232 с высокой степенью достоверности возможны при разнице скоростей приемника и передатчика до 5%.

Примеры:

Проверить Flash на чистоту при кварце 8МГц:

isp_mb9x /1 /o8 /MB90F497 /c

Выполнить автопоиск скорости подключения, считать содержимое Flash в файл test.bin:

isp_mb9x /2 /a /MB90F497 /b test.bin /r

Выполнить стирание, проверку на чистоту и запись файла test.bin:

isp_mb9x /o4 /MB90F497 /b test.bin

Загрузить программу в RAM с адреса 0x190 и выполнить ее:

isp_mb9x /MB90F497 /d test.bin /s190

Сбросить МК:

isp_mb9x /g

Примечания.

Проверено:

  • WIN98/2K/XP
  • MB90F457, MB90F497G, MB90F546G при частоте основного генератора 3.686, 4 и 16 МГц
  • MB90F347 при частоте основного генератора 4/8/16 МГц
  • MB91F362G (4МГц)

Процессоры MB90F591 и MB90F594 не проверенны, имеют специфичный протокол BIROM

Для работы программатора под управлением другой операционной системы необходимо портировать 5 функций работы с UART.