UART-подключение к MB90F395HA

Снятие дампа flash через штатный Boot ROM загрузчик Fujitsu — не через диагностический протокол BMW, без обхода подписи/аутентификации. Применимо ко всем щиткам на этом МК: E9X BASIS (Low), HKOML2, DKOML2. Полный markdown-источник: docs/hardware/FUJITSU_MB90F395_UART_PINOUT.md.

Номера выводов сверены с даташитом Fujitsu/Spansion DS07-13723-8Ea «MB90390 Series» (PIN ASSIGNMENTS → «MB90394HA/MB90F394HA/MB90F395HA», не соседний MB90V390HB с другой распиновкой). Предыдущая версия этой страницы содержала неверные номера выводов — если паяли по ней, перепроверьте монтаж по таблице ниже.
Перед тем как паять: работайте только на донорской плате, не на щитке в автомобиле. Ошибка на шаге 0.5 мм при пайке LQFP-120 может привести к короткому замыканию соседних выводов.

Характеристики

MCUFujitsu/Spansion MB90F395HA (семейство MB90390)
КорпусLQFP-120, шаг 0.5 мм, 16×16 мм (код FPT-120P-M21)
Логический уровень I/O5.0 В — джампер переходника USB-UART в положение 5V
ИнтерфейсВстроенный Boot ROM по UART4 (асинхронный) — не UART0, см. ниже

Распиновка (LQFP-120)

Правка 2026-10-11: выводы UART для Boot ROM — SIN4 (Pin 52) и SOT4 (Pin 54), а также обязательные P00 (Pin 93 → +5V) и P01 (Pin 94 → GND). Старые SIN0 (Pin 7)/ SOT0 (Pin 5) — это общий UART0 штатного режима, Boot ROM его не слушает. Найдено после многочасовой живой отладки: вся остальная пайка (MD0/MD1/MD2/RST/GND, уровень 5В) была верна с самого начала и не была причиной молчания — см. полную историю в FUJITSU_MB90F395_UART_PINOUT.md.
ВыводИмяНазначение в штатном режимеПри программировании
Pin 52SIN4 / PB4Вход UART4 RX («SIN input for Serial I/O 4»)→ TXD переходника
Pin 54SOT4 / PB6Выход UART4 TX («SOT output for Serial I/O 4»)→ RXD переходника
Pin 93P00GPIO общего назначенияна +5V — обязателен для Boot ROM
Pin 94P01GPIO общего назначенияна GND — обязателен для Boot ROM
Pin 89MD0Mode Select 01 (подтянут к +5V на плате)
Pin 88MD1Mode Select 11 (подтянут к +5V на плате)
Pin 87MD2Mode Select 2замкнуть на GND — вход в Boot ROM
Pin 90RSTСброс (CMOS Schmitt, подтяжка)кратковременно на GND после MD2
Pin 16, 47, 106VSS (GND)Общий минус→ GND переходника
Pin 15, 105VCC (+5V)Питаниеот платы (12В на разъёме), НЕ от переходника
Не перепутайте: Pin 1 (RX0) и Pin 2 (TX0) в даташите подписаны «for CAN Interface 0» — это CAN-шина, не UART, несмотря на созвучное имя. А SIN0 (Pin 7)/ SOT0 (Pin 5), несмотря на название «UART 0», — тоже не то, нужные выводы — SIN4 (Pin 52) и SOT4 (Pin 54).
Ориентир при пайке: MD2(87)→MD1(88)→MD0(89)→RST(90) — четыре подряд идущих вывода на одной стороне корпуса, нашли один — остальные по соседству. SIN4(52)/SOT4(54) на противоположной стороне не подряд (между ними вывод 53, не используется); рядом с ними, по данным iProg, есть ещё один подписанный VSS — удобный ориентир для отсчёта.
Режим Flash Serial Programming: штатно MD0=1, MD1=1, MD2=1 (P00/P01 ни на что не влияют); для входа в загрузчик — MD0=1, MD1=1, MD2=0 (GND) и дополнительно P00=1 (+5V), P01=0 (GND). Замкните MD2 (Pin 87) и P01 (Pin 94) на GND, подайте +5V на P00 (Pin 93), и кратковременно дёрните RST (Pin 90).

Схема подключения

Картинка ниже пока устарела (ещё старые Pin7/Pin5, нет P00/P01) — ориентируйтесь на таблицу и текст выше/ниже, не на неё.
Схема подключения USB-UART переходника к MB90F395HA (устарела, см. предупреждение выше — актуально: TXD→Pin52/SIN4, RXD←Pin54/SOT4, GND→Pin16, MD2→GND, P00→+5V, P01→GND)

VCC/5V переходника — не подключать к плате вообще. Питание платы — отдельно: X11175 Pin 9 = +12V (Kl.30), Pin 18 = GND (Kl.31).

Порядок действий

  1. Подайте штатное питание +12 В на разъём приборки X11175. Не подавайте +5V с переходника на плату — только сигнальные TXD/RXD/GND.
  2. Припаяйте TXD→Pin 52 (SIN4), RXD→Pin 54 (SOT4), GND→Pin 16. MD2/P00/P01 пока не трогайте.
  3. Запустите скрипт чтения дампа — он должен ждать синхронизацию.
  4. Замкните MD2 (Pin 87) и P01 (Pin 94) на GND, подайте +5V на P00 (Pin 93).
  5. Только теперь — кратковременный импульс RST (Pin 90) на GND (или включите питание, если оно было выключено). Именно в этот момент Boot ROM проверяет MD0/MD1/MD2.
  6. Отпаяйте перемычки с MD2/P01 и перезагрузите плату, чтобы вернуть обычный режим.
python3 tools/fujitsu_uart_flasher/fujitsu_flasher.py -p /dev/tty.usbserial-XXXX -o kombi_dump.bin

Безопасная идентификация выводов перед пайкой

У корпуса LQFP-120 шаг 0.5 мм — отсчитать нужный вывод «на глаз» по фото легко ошибиться. В даташите (раздел «PACKAGE DIMENSION») рядом с «LEAD No. 1» действительно подписан INDEX — то есть физическая метка «Pin 1» у корпуса есть. Но по одной фотографии нельзя быть на 100% уверенным, что увиденная точка — именно она, а не ещё один технологический след от tie-bar, и что чип впаян в той же ориентации, что и чертёж в даташите.

  1. Выключите питание платы.
  2. Мультиметром в режиме прозвонки: один щуп на Pin 18 разъёма X11175 (GND, известен точно) — второй щуп на кандидатов в VSS (Pin 16/47/106), пока не зазвенит.
  3. Для кластера SIN4/SOT4 (Pin 52/54) — на том же нижнем краю корпуса, по данным iProg, рядом подписан ещё один VSS (около Pin 46-47) — удобный короткий ориентир прямо у цели.
  4. Для кластера MD2/MD1/MD0/RST рядом в даташите есть DVSS (Pin 86) — отдельная земля буферов ШИМ-выходов. На простых платах обычно запаяна в ту же сеть GND, но сначала подтвердите это прозвонкой до основной VSS, прежде чем доверять ей как ориентиру.
  5. После каждой новой пайки — сразу прозвоните на отсутствие КЗ с соседними выводами.

Пайка на 0.5 мм: тонкая проволока 30–32 AWG (wire-wrap), тонкое конусное жало, флюс, фиксация термоклеем/каптоном после пайки.

Если синхронизация не идёт

Критичен порядок: Boot ROM проверяет MD2 в момент сброса, не постоянно.

Источник

Номера выводов и их функции — из официального даташита Fujitsu/Spansion DS07-13723-8Ea, «MB90390 Series», раздел «PIN ASSIGNMENTS» (таблица «MB90394HA/MB90F394HA/MB90F395HA», TOP VIEW) и «PIN DESCRIPTION». Сам файл — собственность Fujitsu и в репозиторий не публикуется, здесь приведены только номера выводов и их документированные функции как факты.