Реверсинг китайского FX3U 24MR: шаг 0.

топ 100 блогов eddy_em28.05.2024 Итак, решить проблему чтения/установки значений входов/выходов этой железки вменяемыми средствами "из коробки" не получилось. Заменять простенькую программку на любимой сишечке непонятной фигней — вообще желания нуль (тем паче, что займет это достаточно времени). А тут еще бонусом обозначилось то, что на плате есть разводка под CAN, разве что MCP2551 (или его любые аналоги) не распаян. В общем, поехали…

Неплохое подспорье мне оказали эти две статьи: раз и два на одном из самых отстойных ресурсов рунета. Странно, что у автора "карма" плюсовая и только "рейтинг" меньше нуля, да и статьи выше нуля (обычно там приличные статьи моментально опускают ниже плинтуса, таки основной контингент ресурса это совершенно не понимает из-за своего малолетства и собственно ориентированности ресурса на малолетних дебилов /* где Гоблин? */).
В первой публикации автор выкладывает "отреверсированную" частичную принципиальную схему (полную я в интернетах этих ваших так и не нашел, боюсь, если б и нашел, там бы все было на китайском, даже арабские цифры):
Реверсинг китайского FX3U 24MR: шаг 0.

Меня сразу обнадежило то, что его железяка очень похожа на мою. Разве что у моей немного побольше входов/выходов. ОК. Самое первое и важное — прозвонить SWD. Все в точности, как у автора, только разве что на плате лишь 4 контакта под программатор. Ножка 1 (сверху) помечена, поэтому по нумерации: 1 - GND, 2 - 3v3, 3 - SWDIO, 4 - SWCLK.
Все бы здорово, но тупо подключившись st-link'ом, я ничего не получил. Ну, китайцы бы не были китайцами, если б на 100-ногом МК, когда тебе нужно чуть больше половины ног, не задействовали бы самые нужные. Причем, самым анально-огороженным способом: ладно, пусть нога 76 (SWCLK) пинает !RE/DE преобразователя RS-485, но самая жуть в том, что нога 72 (SWDIO) идет на софтовый I2C. Я уже когда-то писал об этом (много лет назад, когда ковырял пятисимвольный "вольтметр" на STM8 с внешним АЦП, там китайцы как раз I2C софтовый воткнули, но я тогда еще был молод и зелен, и мог, не теряя гордости, говном обмазаться — написал реализацию). В общем, EEPROM вообще мимо кассы получается, но он и не нужен: похоже, ввинтили его, сдирая "ПЛК" от "митшубишы". Но в оригинале, думаю, МК был гораздо дохлей, поэтому и пришлось код "программ" сохранять во внешней EEPROM. Здесь же стоит адский МК (о нем - чуть дальше), где, даже если "программы" будут по 1кБ размером, писать их можно в МК 200×5000=один миллион раз (минимум)!!!1111 Так и вижу вантузоида-пылыкашника, который надрачивает на клавиатуре "код", прошивая его в МК каждые пять минут. Посчитаем: за рабочий день это тело сделает до 80 прошивок (все-таки, нужно иной раз покурить, чай попить и с коллегами потрындеть). В году около 250 рабочих дней. Пусть будет 200 (отпуск + прочее): тело пропишет МК 1600 раз. Боюсь, до миллиона оно просто не доживет…

Ладно, поехали дальше. Первым делом, обнаружив соответствие ног SWDIO, я впаял туда обычную "гребенку" 2.54мм (правда, пришлось долго феном елозить, чтобы провалилась: на стадии лужения отверстия прилично уменьшились). Ну, а т.к. в рабочем положении ноги используются, пришлось активировать бутлоадер: переключатель "RUN" ставим в положение "RUN" (около края платы) — чтобы BOOT1 (опять китайские приколы: посадить на такую ногу тупой переключатель, когда рядом толпа свободных) был в нуле. Затем паяем перемычку к 3v3 на резистор, сажающий на землю ногу BOOT0. Вот, что выходит:
Реверсинг китайского FX3U 24MR: шаг 0.

// Блин, омроновские релюхи! Вы можете себе вообще представить себестоимость этого куска железа? Тупо печатная плата + релюхи выходят значительно за те 3000 рублей, за которые его продают!!1111
// Ну, таки думаю, теперь читатель понимает, почему я не захотел для БТА разрабатывать свой аналог, а попытался что-то выжать из китайского УГ? Разве что китайское УГ не имеет никакой защиты, т.е. менять эти модули после каждой грозы придется.

Кстати, у "ПЛК" есть "на жопе" маленькая батарейка на Vbat и "часовой" кварц. Нафига — вопрос открытый, т.к. там RTC нафиг не нужен.

Еще, проходясь глазом по схеме, я не понял назначения двух подстроечных резисторов, подключенных средними выводами ко входам АЦП. Еще непонятно, зачем стоит чуть выдающийся вверх оптрон левей X00. Прозванивал-прозванивал, единственное предположение — для мониторинга наличия "COM" на входах (хотя это "наличие" проверяется по отношению к "земле": а кто гарантирует, что +24В с концевиков будут иметь такое же смещение к "земле" модуля? Глупая какая-то часть схемы).
Какая-то желтая фигня у питания на варистор похожа — ну, хоть по питанию защита какая-то, правда, защиты от переполюсовки я вообще не увидел. Разве что зачем-то стоят два диода левей релюшек (около разъема программатора). Один из них плюсом подключен к питанию MCP2551, а минусом на "земле" сидит. Другой вообще "земли" "защищает".. Обычные Шоттки, никакие не TVS. TVS, к слову, здесь вообще не видно. В общем, "наговняли, как могли".
"Аналоговые входы" тоже веселые: где-то стоят три "жЫрных" керамических кондера, на глаз микрофарад на 10, а где-то их вообще нет. Дальше идут делители 10кОм вверху и 4700 Ом внизу (к "земле"). Середка — прямиком на входы АЦП, даже никаких диодных защит нет.
Перед выходами ЦАП стоит операционник, потом резисторы-кондеры. Тоже никакой защиты нет.
Ну, хотя бы релюшки включаются дарлингтонами на ULN2003A.
Около разъема RS-232 непонятный выводной резистор на 0.125 Вт (а на схеме там какой-то "бык" нарисован) - ХЗ, зачем.

Что насчет CAN, реально на схеме прямо под надписью "Fx3U-24MR" расположено посадочное место для CAN-конвертера уровней. А справа — что-то похожее на место для резистора-терминатора. Вот только по прозвонке выяснилось, что ноги CAN-Rx/CAN-Tx МК соединены с преобразователем не напрямую, а через резисторы аж в 1кОм (интересно, на каких скоростях фронты начнут сыпаться?), а "терминатор" вместо соединения между CANH и CANL, соединяет CANL и "землю"!!!11
И, что интересно: несмотря на отсутствие выхода на CAN, кондер питания и резисторы на входах запаяны! ОК, будем иметь в виду: резисторы надо выпаять и заменить на 0..100 Ом.

Основная распиновка на удивление совпала с тем, что выкладывал вышеупомянутый автор. Разве что еще прозвонил дополнительные ноги, что у него отсутствовали, опишу лишь их, чтобы еще дольше клаву не топтать.
(Нога-функционал): 15 - AD4, 16 - AD5, 25 - Y11, 31 - Y10, 32 - Y7, 38 - X14, 39 - X15, 40 - X12, 41 - X13, 42 - X10, 43 - X11, 49 - "detect com" (выше писал), 81 - CAN Rx, 82 - CAN Tx.


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

Оставить комментарий

Предыдущие записи блогера :
Архив записей в блогах:
Услышал, что врачам в России будут вручать орден какого-то Луки ... А вот какого - не расслышал. Из известных  Лук или Луков (??) (или Лукей??) кроме евангелиста Луки, который, вроде не при деле, знаю только Луку Мудищева... Неужели орден его ...
Он, оказывается, дважды за день говорил про чучело еврея. То есть в промежутке ему наверняка рассказали о реакции. И о том, что он не совсем прав, мягко выражаясь. Но он все равно гнул свою линию. Непримиримый борец с антисемитизмом, ага. А ...
один мой знакомый поведал мне следующую историю, и попросил обратится за советом к уважаемому сообществу )) двигался согласно прилагаемому плану... улица Гатчинская совсем недавно стала с односторонним движением, до этого всегда по ней ездил в ...
Символом ВВП, постоянно поднимаемым им на «знамя», является «стабильность». Именно это является тем ключевым понятием, которое он раз за разом пытается внедрить в наше сознание. Смысл в целом понятен. «Ребята, без меня может быть хуже». И ...
ПЛЕОНАЗМ Этот плеоназм из двух слов, пожалуй, чаще всех других употребляется при изучении физики в школе и вузе: он присутствует и в учебниках, и в речи преподавателей, учеников, студентов. Назовите его. Скрин 2 дня. Успехов! Доска почета: kliukva281   pryanik ...