Майстерня: ремонт і досліди

Плата посудомийки Bosch SWS4118: що на ній є і як запустити нею насос (частина 1)

Опубліковано 10.11.2026

Розбираємо плату керування двигунами з посудомийки Bosch і з'ясовуємо, що з неї знадобиться. Мета — запустити насос посудомийки від її ж рідної плати й зробити з цього проточний водонагрівач. Це перша частина:

  • що корисного лишилося від посудомийки;
  • що стоїть на платі 702168823.01GA / SWS4118 Rev.4: мікроконтролер, інвертор, блок живлення, мережевий фільтр, реле, роз'єми — з фото кожної ділянки;
  • що з цього потрібно, щоб крутити насос;
  • крок 1: копія EEPROM 24C08WP програматором CH341B — куди під'єднати щупи, схема, якою програмою читати;
  • що далі: як ми прочитали прошивку STM32 — у другій частині, що в ній і яка з неї користь — у третій.

Усі частини статті:

  • Частина 1: плата, що на ній є, і копія EEPROM (ви тут)
  • Частина 2: копія прошивки STM32 через ST-Link
  • Частина 3: що вміє прошивка і яка з неї користь

чернетка — обговорюємо й дописуємо

⚠ Ця плата працює просто від мережі 230 В без розв'язки. Великий конденсатор на ній заряджається до ~325 В постійної напруги й тримає заряд після того, як вилку витягнули. Дроти двигуна теж під мережевою напругою. Поки ми досліджуємо плату, у мережу вона не вмикається: живимо лише 3,3 В — від окремого джерела або від програматора. Подробиці — в кінці статті.

Навіщо це все

Від старої посудомийки лишився циркуляційний насос із вбудованим ТЕНом — по суті готовий проточний нагрівач: насос жене воду, а ТЕН навколо камери насоса її гріє. Двигун у насосі трифазний, з магнітним ротором, і від розетки напряму не крутиться: йому потрібен інвертор. Такий інвертор уже є на рідній платі посудомийки. Тому спершу з'ясовуємо, що саме стоїть на платі і як змусити її крутити насос без решти посудомийки.

Що корисного лишилося від посудомийки

ДетальЩо цеЧи знадобиться
циркуляційний насос із ТЕНомтрифазний двигун з магнітним ротором (статор на 9 котушок) і ТЕН навколо камеритак — основа нагрівача: насос і нагрів в одному
ТЕН (у корпусі насоса)20,5 Ом у холодному стані → ≈ 11 А і ≈ 2,6 кВт від 230 Втак; вмикати лише тоді, коли насос качає воду, інакше перегріється
датчик температури на ТЕНі (3 дроти)два елементи по 10 кОм послідовно, середній дріт — спільний; схоже на два NTCтак — контроль температури й незалежний захист від перегріву
зливний насос CoPECi BLP3теж трифазний з магнітним ротором, 54 В / 55 Гцможливо — для перекачування; живиться від того самого інвертора
плата керування двигунами (ця стаття)мікроконтролер STM32, інвертор FSB50550AB, блок живлення, реле на 16 Атак — готовий інвертор для насоса й реле для ТЕНа
плата панелі керування з MC9S08AC328-бітний мікроконтролер NXP, кнопки й індикаціянавряд чи

Плата: загальний вигляд

Плата керування двигунами посудомийки Bosch з номерами ділянок
Плата 702168823.01GA, SWS4118 Rev.4. Номери — ділянки з таблиці нижче. Наклейку з кодом і номером плати на фото розмито.
№ЩоРозділ
1мікроконтролер STM32Мозок плати
2технологічні пади X20 біля краюМозок плати
3інвертор FSB50550ABІнвертор
4конденсатор шини ~325 ВЖивлення
5блок живлення TNY274GN з трансформаторомЖивлення
6реле JW2SN (перемикає двигуни)Реле
7два реле ALZ51B12T на 16 АРеле
8мережевий фільтрМережевий вхід
9запобіжникМережевий вхід
10роз'єм мережіМережевий вхід
11роз'єми до двигунів, клапанів і датчиківРоз'єми

Позначки на самій платі: 702168823.01GA — номер друкованої плати, SWS4118 Rev.4 — позначення плати та її ревізія, 888172 — схоже, номер партії. Більшість мікросхем мають код дати 1339 — схоже, 39-й тиждень 2013 року.

Мозок плати: STM32, EEPROM і пади програмування

Мікроконтролер STM32, EEPROM 24C08 і пади X20 з буквеними позначками
Ділянка мікроконтролера. Букви — компоненти з таблиці нижче.
На фотоЩоМаркуванняДля чого на платі
AмікроконтролерSTM32F301 VCT6, LQFP100керує інвертором (шість сигналів ШІМ), реле, читає датчики; тут живе прошивка
BEEPROM24C08WP (ST)пам'ять на 8 кбіт (1 КБ) по I²C: налаштування, калібрування, лічильники
CSEN013DGPower IntegrationsSENZero: відключає резистори, що міряють мережеву напругу, коли плата в черговому режимі
Dпади X20шість пад біля краютехнологічний роз'єм
Eпрямокутні пади (2 × 3)без маркуванняще одна група технологічних пад
  • SWD виведено на пади X20 (D): пад 1 — SWCLK, пад 2 — SWDIO, пад 3 — NRST (через 220 Ом), пад 4 — вивід 90 (PB4), пад 5 — GND, пад 6 — 3,3 В. Подробиці — у другій частині.
  • Маркування не збігається з кристалом. На корпусі — STM32F301 VCT6, а через SWD кристал відповідає як STM32F302/F303 на 256 КБ флеш-пам'яті (ідентифікатор 0x422). Схоже, мікросхему маркували на замовлення виробника плати.
  • Риска оранжевою фарбою на корпусі — схоже, заводська позначка.
  • Захисту від читання немає: прошивку прочитано через SWD двічі, копії однакові (друга частина). Що в ній — у третій частині.

Інвертор FSB50550AB

Інвертор FSB50550AB, резистори R820, реле JW2SN з буквеними позначками
Ділянка інвертора. Букви — компоненти з таблиці нижче.
На фотоЩоМаркуванняДля чого на платі
AінверторFSB50550ABтри фази для двигуна насоса з постійної напруги ~325 В
BрезисториR820 (0,82 Ом)схоже, вимірюють струм ключів для захисту від перевантаження
CрелеPanasonic JW2SN-B-DC12Vнайімовірніше, перемикає фази між циркуляційним і зливним насосами
Dкомпоненти в корпусах SOT-223—схоже, малі симістори для клапанів і дозатора; перевіримо за розводкою
Eроз'ємиX2, X3, X4до клапанів, датчиків і двигунів

FSB50550AB (Fairchild, тепер onsemi) — трифазний інвертор в одному корпусі: шість ключів MOSFET, драйвери ключів і діоди для живлення верхніх ключів. Саме він формує з постійної напруги три фази для двигуна насоса.

ПараметрЗначення (з паспорта)
напруга шини, робоча300 В типово, до 400 В
напруга шини, абсолютний максимум500 В
струм ключа тривалий2 А при 25 °C корпусу, 1,5 А при 80 °C
опір відкритого ключа≈ 1 Ом
живлення драйверів15 В
логіка входів3,3 або 5 В
  • 300 В шини — це випрямлена мережа 230 В (√2 × 230 ≈ 325 В). Тобто плата живить двигуни прямо від мережі, без трансформатора.
  • Сигнали з резисторів B йдуть на мікроконтролер, і він вимикає інвертор при перевантаженні.
  • Один інвертор на два двигуни. Ми прозвонили: в обох насосів одна фаза спільна, а дві інші реле перемикає між насосами — найімовірніше, саме C. Посудомийка або миє, або зливає — разом вони не працюють.

Живлення плати: TNY274GN

Блок живлення: TNY274GN, трансформатор TDK, конденсатори з буквеними позначками
Імпульсний блок живлення. Букви — компоненти з таблиці нижче.
На фотоЩоМаркуванняДля чого на платі
Aмікросхема блока живленняTNY274GNPower Integrations TinySwitch-III — серце маленького імпульсного блока живлення
BтрансформаторTDK 8220 X 363розв'язує й знижує напругу для самої плати
Cвеликий конденсатор HB 105°C—конденсатор шини ~325 В для інвертора; тримає заряд після вимкнення
Dмалий конденсатор—схоже, фільтр однієї з низьких напруг

Які саме напруги дає блок живлення — виміряємо. Котушки всіх реле розраховані на 12 В, драйвери інвертора — на 15 В, мікроконтролер — на 3,3 В.

Мережевий вхід: фільтр, запобіжник, розряд конденсаторів

Мережевий вхід: дросель, конденсатори X2 і Y2, CAP005DG, запобіжник з буквеними позначками
Мережевий фільтр. Букви — компоненти з таблиці нижче.
На фотоЩоМаркуванняДля чого
Aсинфазний дросельмідна обмотка на осердіне пускає перешкоди інвертора в мережу
Bконденсатор X20,22 мкФ M 305 V~ (синій)між фазою й нулем: гасить перешкоди від інвертора
Cконденсатори Y222 нФ M 300 V~ (сині)між мережею й землею: те саме для синфазних перешкод
DCAP005DGPower Integrations, CAPZeroрозряджає конденсатори X2, коли вилку витягли, щоб на її штирях не лишилась напруга
EзапобіжникBUSS SR-5H T4A 250Vсповільнений, 4 А — захищає саму плату (ТЕН, найімовірніше, живиться повз нього)
Fроз'єм мережі—сюди приходять фаза й нуль
Термістор NTC біля мережевого фільтра з буквеними позначками
Термістор біля дроселя. Букви — компоненти з таблиці нижче.
На фотоЩоМаркуванняДля чого
AтермісторNTC 22 1340схоже, обмежує кидок струму, коли конденсатор шини заряджається при ввімкненні
Bсинфазний дросель—той самий, що й A на попередньому фото
CрелеPanasonic ALZ51B12Tодне з двох реле на 16 А (розділ нижче)

Реле

Два реле Panasonic ALZ51B12T, роз'єм мережі й запобіжник з буквеними позначками
Кут плати з реле. Букви — компоненти з таблиці нижче. Наклейку з кодом і номером розмито.
На фотоЩоМаркування / номіналЩо, найімовірніше, перемикає або робить
A, Bдва релеPanasonic ALZ51B12T, 16 А 250 В, 12 ВТЕН (≈ 11 А): два реле — щоб розривати обидва дроти, фазу й нуль
Cроз'єм мережі—той самий, що й F на фото мережевого входу
Dроз'ємMTOP, PIN 1найімовірніше, до ТЕНа й насоса; перевіримо прозвонкою
EзапобіжникBUSS SR-5H T4A 250Vзахищає плату
FCAP005DGPower Integrationsрозряджає конденсатори X2

Третє реле — Panasonic JW2SN-B-DC12V (5 А 250 В, котушка 12 В) — стоїть біля інвертора (C на фото інвертора) і, найімовірніше, саме воно перемикає фази між насосами. Те, що фази перемикаються, ми перевірили прозвонкою.

Якщо A і B справді реле ТЕНа, для водонагрівача вони вже на місці й розраховані із запасом: 16 А проти 11 А.

Роз'єми

Біля роз'ємів на платі видно позначки X2, X3, X4, X5, X7_1, X12, X17, X20, MTOP (з позначкою PIN 1). Що куди йде, з'ясуємо прозвонкою джгута: насоси, ТЕН, датчик температури, клапани, зв'язок із панеллю керування.

[ВПИСАТИ: таблиця роз'ємів — номер, кількість контактів, куди йде, колір дротів]

Що з цього потрібно, щоб крутити насос

Ділянка платиЩо робитьЧи потрібна для насоса
мережевий вхід і фільтрзахист і менше перешкодтак
конденсатор шини~325 В для інверторатак
блок живлення TNY274GN12 / 15 / 3,3 В для реле, драйверів і STM32так
інвертор FSB50550ABтри фази для двигунатак
мікроконтролер і прошивкакерує інвертором, рахує положення роторатак — без неї інвертор не працює
реле ALZ51B12TТЕН (найімовірніше)так — для нагрівача
реле JW2SNвибір насосатак — щоб увімкнути саме циркуляційний

Головна складність — команда «крути насос». У посудомийці її дає плата панелі керування по лінії зв'язку. Панель у нас є, але як саме вони обмінюються, ми ще не знаємо. Варіанти:

ВаріантЩо требаПлюси й мінуси
рідна прошивка + рідна командазрозуміти, що надсилає панель керування, і самим надсилати те саменічого не стираємо; але протокол закритий: його треба записати аналізатором між панеллю й платою або відновити з прошивки
своя прошивка на тому самому STM32SWD-програматор, бібліотека ST для керування двигунамизалізо вже підходить ідеально; але рідна прошивка стирається, тож спершу — її копія
окремий драйвер двигунаготовий контролер трифазного двигуна без датчиків на безпечній низькій напрузінайпростіше перевірити насос; але плата посудомийки тоді не потрібна

Тому перш ніж щось змінювати, робимо копії всього, що зберігає плата.

Крок 1: копія EEPROM 24C08WP

Найпростіший і найбезпечніший перший крок: прочитати маленьку пам'ять налаштувань, нічого не випаюючи й нічого не записуючи. 24C08WP — пам'ять на 8 кбіт, тобто 1024 байти, що працює по шині I²C. Усередині — чотири блоки по 256 байт; на шині вони відгукуються адресами 0x50…0x53 (так буде, якщо вивід 3, A2, на платі з'єднано з GND — перевіримо прозвонкою), але програма для читання сама це враховує.

Скільки щупів і куди

EEPROM 24C08WP на платі з підписаними виводами
Коли напис «24C08WP» читається рівно, вивід 1 — ліворуч унизу. Потрібні чотири виводи (виділено): 8 VCC, 4 GND, 5 SDA, 6 SCL.
ВивідНазваПід'єднати до програматораНавіщо
8VCCтак, 3,3 Вживлення мікросхеми
4GNDтак, GNDспільний провід
5SDAтак, SDAдані
6SCLтак, SCLтакт
7WPнізахист від запису; читанню не заважає
1, 2, 3A0, A1, A2нівибір адреси; у 24C08 діє лише A2, і плата вже під'єднала його як треба

Щупів — чотири. Найзручніше — кліпса SOIC-8: її затискають на мікросхему, і вона торкається всіх восьми виводів одразу, а перехідник кліпси вставляють у гніздо «24xx» програматора, червоним дротом (вивід 1) до позначки «1» на гнізді. Без кліпси — чотири тонкі дроти, підпаяні до виводів 8, 4, 5 і 6 (або до сусідніх площадок, з якими вони з'єднані).

П'ятий дріт — лише якщо знадобиться. Програматор живить вивід 8, а це водночас шина 3,3 В усієї плати, тож мікроконтролер STM32 теж запуститься і може сам звертатися до EEPROM під час читання. Якщо два читання поспіль дадуть різні файли, мікроконтролер утримують у стані скидання: його вивід NRST з'єднують із GND. Де на платі NRST, визначимо прозвонкою.

Перевірити орієнтацію мультиметром, поки нічого не під'єднано:

  • між виводами 8 і 4 немає короткого замикання;
  • від виводу 5 до виводу 8 і від виводу 6 до виводу 8 — по ≈ 4,7 кОм: це резистори «472» поруч із мікросхемою, що підтягують SDA і SCL до живлення. Збіглося — значить, вивід 1 визначено правильно.

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

Підключення програматора CH341B до EEPROM 24C08WP: чотири дроти — VCC, GND, SDA, SCLПрограматор CH341Bперемикач 3,3 ВUSB до комп'ютера24C08WP24C08WP на платікліпса SOIC-8 або 4 дроти87651234SDASCLVCC 3,3 ВGND1 A0, 2 A1, 3 A2, 7 WP — для читання не потрібнінеобов'язково: NRST мікроконтролера → GND (якщо два читання поспіль різняться)плата — без мережі; 3,3 В — від програматора або окремого блока живлення
Програматор CH341B і EEPROM на платі: чотири дроти — VCC (червоний), GND (чорний), SDA (зелений), SCL (жовтий). Під схемою — необов'язковий п'ятий дріт: NRST мікроконтролера на GND.

⚠ Плату весь час не вмикати в мережу. Вона не має розв'язки від мережі, а через USB-програматор її спільний провід з'єднано з комп'ютером. Увімкнути таку плату в розетку з під'єднаним програматором — це подати мережеву напругу на комп'ютер.

⚠ Програматор — на 3,3 В. На більшості плат CH341B є перемикач 3,3 / 5 В — поставте 3,3 В і перед під'єднанням виміряйте напругу на контакті VCC гнізда. Старі чорні плати CH341A без перемикача подають на лінії даних 5 В — для плати з мікроконтролером на 3,3 В це ризик.

Чи вистачить програматора, щоб живити плату. Стабілізатор 3,3 В на програматорі зазвичай невеликий, а від нього живиться вся шина 3,3 В плати разом зі STM32. Якщо після під'єднання напруга на виводі 8 впала нижче ≈ 3 В — живіть шину 3,3 В від окремого блока живлення (спільний GND з програматором), а VCC програматора не під'єднуйте.

Якою програмою читати

СистемаПрограмаЩо вибрати
WindowsCH341A Programmer (програма, яку продавці кладуть до програматора)тип «24 EEPROM», мікросхема 24C08, «Read», потім «Save»
WindowsAsProgrammer (з відкритим кодом)I²C, 24C08, «Read», зберегти файл
LinuxIMSProg (графічна) або ch341eeprom (командний рядок)24C08

На Windows спершу ставлять драйвер CH341PAR від виробника мікросхеми WCH — сторінка завантаження; як ставили ми — нижче. У Linux — з командного рядка:

ch341eeprom -v -s 24c08 -r eeprom_1.bin
ch341eeprom -v -s 24c08 -r eeprom_2.bin
cmp eeprom_1.bin eeprom_2.bin && echo "копії однакові"

Ключі командного рядка в різних збірках ch341eeprom можуть відрізнятися — звірте з ch341eeprom -h.

На Windows дві копії порівнює fc /b eeprom_1.bin eeprom_2.bin — має відповісти, що відмінностей немає. Файл має бути рівно 1024 байти.

  • Лише читання. Кнопок «Erase», «Write», «Auto» не натискати: стерта EEPROM — це стерті налаштування плати.
  • Дві однакові копії — тоді читання надійне. Різні — перевірити контакт кліпси й під'єднати п'ятий дріт (NRST на GND).
  • flashrom тут не допоможе: з CH341 він працює лише по SPI, а 24C08 — I²C.

Як читали ми

Ми читали під Windows власним коротким скриптом на Python через бібліотеку драйвера WCH (CH341DLLA64.DLL, ставиться разом із драйвером). Скрипт тільки читає — функцій запису в ньому немає взагалі, — робить це двічі на низькій швидкості шини, 20 кГц, і порівнює копії.

  1. Драйвер: CH341PAR на сайті WCH — файл CH341PAR.EXE. Перед запуском перевірте цифровий підпис (властивості файлу → «Цифрові підписи»: Nanjing Qinheng Microelectronics). Встановлення без діалогів, від адміністратора: CH341PAR.EXE /S.
  2. Після встановлення в «Диспетчері пристроїв» програматор має з'явитися як «USB-EPP/I2C… CH341A» без знака помилки. Якщо він показується як «USB-SERIAL», перемичка на програматорі стоїть у режимі UART — переставте її.
  3. Скрипт: read_eeprom_ch341.py · 4,2 КБ — потрібен 64-бітний Python 3. Запуск:
python -I read_eeprom_ch341.py

Він кладе дві копії в теку dumps поруч зі скриптом (іншу теку можна передати аргументом: python -I read_eeprom_ch341.py D:\мої_дампи) і пише, чи вони однакові.

Що в дампі

Прочитано 1024 байти, дві копії поспіль однакові. Файл: eeprom_24c08_sws4118.bin · 1,0 КБ. Номерів плати в ньому немає: ні номера з наклейки, ні номера партії, ні номера друкованої плати — ми шукали їх у десятковому, двійково-десятковому й двійковому записі.

Блок (адреси)Байтів FF / 00Що всередині
0 (0x000–0x0FF)15 / 210таблиця з 15 однакових за будовою записів (нижче)
1 (0x100–0x1FF)15 / 113найбільше даних: схоже на налаштування й калібрування
2 (0x200–0x2FF)133 / 91схоже, ще налаштування, менша ділянка
3 (0x300–0x3FF)256 / 0порожній — усе 0xFF

Блок 0 — таблиця записів по 16 байт. Кожен запис: FF, один байт коду, 13 нулів і в кінці байт, що дорівнює сумі байтів 1–14, — схоже на контрольну суму (поки решта байтів нульова, вона збігається з кодом). Коди записів зростають: 1B, 1F, 2E, 30, 53, 54, 55, 56, 57, 58, 5A, 61, 62, 63, 64. За адресою 0x0F0 — одне число, 08. Що саме це за таблиця (журнал помилок, перелік увімкнених функцій чи щось інше), може стати зрозуміло, якщо вдасться прочитати прошивку і побачити, як вона цю таблицю використовує.

Блок 1 — схоже, налаштування. Що в ньому помітно:

  • значення 1A 23 повторюється тричі (0x126, 0x140, 0x181) — можливо, ідентифікатор версії даних;
  • на 0x1B8–0x1DF — 40 байт, майже всі 64 (= 100), серед них два 58 (= 88) і один 00: схоже на таблицю відсотків або коефіцієнтів;
  • на 0x1EE–0x1EF — 41 8F одразу після ряду FF: схоже на контрольну суму блоку. Це не проста сума байтів блоку — алгоритм поки невідомий.

Блок 2. На 0x214–0x215, теж одразу після ряду FF, — BF 41 (і це схоже на контрольну суму), далі повторювані пари 0E 74 0E 74 і 2B 0E 2B 0E і ще кілька десятків байт значень; останнє — на 0x268. Від 0x269 до 0x290 — нулі, з 0x291 до кінця блоку — лише FF.

Тексту немає — ні назви моделі, ні версії: увесь вміст двійковий.

Що це означає для нас:

  • у пам'яті є дані, і вони структуровані — найімовірніше, це налаштування плати, які треба зберегти; копія є;
  • лічильників напрацювання (годин чи циклів) поки не видно: їх можна знайти, лише порівнявши копії до й після роботи плати, а вмикати її ми поки не будемо;
  • точне значення полів шукаємо в прошивці мікроконтролера. Її вже прочитано (друга частина), і в ній знайшлася заводська копія блоку 1: 198 байт із 256 збігаються з EEPROM, 58 відрізняються — найімовірніше, це змінені налаштування чи калібрування (третя частина).

Далі

  1. Прошивка STM32 — як її прочитати, як перевірити захист і що ми прочитали: друга частина. Коротко: захисту немає, копію збережено.
  2. Що вміє прошивка і як нею скористатися, щоб запустити насос: третя частина.
  3. Роз'єми плати — таблицю допишемо тут, щойно прозвонимо.

Копію EEPROM викладено вище: номера плати в ній немає. Прошивку не викладаємо: це програма виробника.

Безпека

  • Не вмикати плату в мережу, поки досліджуємо. Під час читання пам'яті — лише 3,3 В на шину 3,3 В плати, від програматора або окремого блока живлення.
  • Конденсатор шини тримає ~325 В ще від кількох секунд до кількох хвилин після вимкнення. Перед тим як торкатися плати — виміряти напругу на ньому; за потреби розрядити через резистор 10 кОм 5 Вт, а не викруткою.
  • Дроти двигуна під мережевою напругою: інвертор не має розв'язки, і кожен вихід імпульсами сягає ~325 В відносно землі. «54 В» на зливному насосі — лише номінальна напруга обмотки, яку інвертор формує ШІМом.
  • Двигун із магнітами сам виробляє напругу, коли його вал крутиться (рукою чи потоком води), навіть якщо плата вимкнена.
  • ТЕН — лише з потоком води, окремою лінією з автоматом 16 А й УЗО 30 мА, з заземленим корпусом насоса.

Усі частини статті:

  • Частина 1: плата, що на ній є, і копія EEPROM (ви тут)
  • Частина 2: копія прошивки STM32 через ST-Link
  • Частина 3: що вміє прошивка і яка з неї користь

Журнал змін статті

  • 2026-11-10 — перша чернетка: що корисного лишилося від посудомийки, опис плати за фото, що потрібно для насоса, план копій пам'яті.
  • 2026-11-10 — статтю розділено на три частини: тут лишилися плата й EEPROM; STM32 — у другій частині, розбір прошивки — у третій. Уточнено модель кристала й пади SWD.