- PVSM.RU - https://www.pvsm.ru -

Программируем SFP-модули на программаторе CH341A

Программируем SFP-модули на программаторе CH341A - 1

Прошло уже более года с момента моей публикации о программаторе для CH341A под Linux - IMSProg [1] и у меня возникло желание избавиться от еще одной программы, не дающей навсегда забыть о существовании Windows. Мой прежний программатор SFP собран на чипе FT232RL и имел софт только под Windows.

Каждый SFP-модуль имеет с своем составе стандартную микросхему 24C04 или 24C02, что натолкнуло меня на мысль использования простейшего переходника для программатора CH341 с использованием четырех проводов - земли, питания, I2C сигналов SDA и SCL. После просмотра разработок различных фирм я добавил в переходник джамперы на сигналы питания для снятия защиты от записи медных модулей - J1 J2 и J3 (контакты SFP TxPWR, RxPWR и TxEN). В результате получилась такая схема:

Программируем SFP-модули на программаторе CH341A - 2

U1 - экран SFP-разъема, P1 - пластиковый коннектор.

Программируем SFP-модули на программаторе CH341A - 3

Gerber файлы для изготовления можно скачать здесь [2], страничка на OSHWLAB - здесь [3]. Адаптер устанавливается в панельку как `24xx` микросхема. Овальный вырез в плате переходника сделан под ручку панельки с нулевым усилием программатора.

Можно изготовить программатор и в виде отдельного устройства. Этот вариант можно посмотреть здесь [4].

Считывание и запись модулей не поддерживающих защиту паролем можно производить любой программой для программатора CH341A как микросхему AT24C02 или AT24C04, но изменение параметров модуля в этом случае будет ненаглядно. Кроме того, при корректировании данных нужно будет постоянно подправлять контрольные суммы в соответствии с SFF-8472 - SFF Module Management Reference Code Tables [5] по адресам 0xA03F и 0xA05F. Поэтому я написал небольшую специализированную программу под Linux - SFP-Master [6]. Многое в нее перекочевало от IMSProg, многие части, касающиеся протоколов работы, отличных от I2C были исключены за ненадобностью.

Программируем SFP-модули на программаторе CH341A - 4

Программа содержит HEX-редактор в правой части экрана и парсер параметров модуля в левой. При изменении какого-либо параметра в парсере значение автоматически вписывается в дамп и пересчитываются контрольные суммы, но при изменении данных в HEX-редакторе необходимо нажимать кнопку `Контр. сумма` для пересчета контрольных сумм. Повторный парсинг данных после работы с ними в HEX-редакторе осуществляется при нажатии на кнопку `Разобрать`.

В SFP-Master предусмотрена возможность ввода пароля для защищенных модулей.

Четыре разноцветные области с чекбоксами позволяют быстро выбрать области дампа для считывания, записи или сохранения на диск в том случае, когда необходимо оставить часть данных без изменений. Чаще всего нужна работа только с первой (зеленой) областью с младшими адресами.

SFP-master может быть собран из исходного кода на GitHub [7] с помощью готового скрипта `build_all.sh`. (В этом случае, не забудьте прочитать о необходимых пакетах на GitHub.) Также его можно установить в дистрибутивы Fedora, используя репозиторий на COPR:

sudo dnf install dnf-plugins-core

sudo dnf copr enable bigmdm/sfp-master

sudo dnf install sfp-master

Или в UBUNTU, подключив репозиторий на Launchpad:

sudo add-apt-repository ppa:bigmdm/sfp-master

sudo apt update

sudo apt install sfp-master

Или установить из ARCH AUR.

Данный материал изложен в обучающих целях. Автор не несет никакой ответственности за последствия применения материалов этой статьи, программ и устройств, описанных в этой статье.

Автор: big-mdm

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/e-lektronika-dlya-nachinayushhih/407789

Ссылки в тексте:

[1] IMSProg: https://habr.com/ru/articles/765970/

[2] здесь: https://github.com/bigbigmdm/SFP-Master/blob/main/gerber/Gerber_CH341A_SFP_ADAPTER_PCB_CH341A_SFP_ADAPTER_2024-11-22.zip

[3] здесь: https://oshwlab.com/einkreader/ch341a_sfp_adapter

[4] здесь: https://oshwlab.com/einkreader/sfp-master

[5] SFF-8472 - SFF Module Management Reference Code Tables: https://modultech.ru/wp-content/uploads/2019/09/SFF-8472.pdf?ysclid=m5xlvstfbi360046136

[6] SFP-Master: https://SFP-Master%5D(https://github.com/bigbigmdm/SFP-Master

[7] GitHub: https://github.com/bigbigmdm/SFP-Master

[8] Источник: https://habr.com/ru/articles/873792/?utm_campaign=873792&utm_source=habrahabr&utm_medium=rss