Например TDA7294

РадиоКот >Конкурсы >Поздравь Кота по-человечески 2018! >

Теги статьи: Добавить тег

USB программатор картриджей струйных принтеров EPSON

Опубликовано 09.09.2018.
Создано при помощи КотоРед.

        Многие владельцы струйных принтеров EPSON не пользуются СНПЧ, но при этом вынуждены периодически сбрасывать уровни чернил в картриджах при помощи внешнего ресеттера. Это делается либо автономным покупным ресеттером, либо при помощи программы SSC Service Utility и самодельного ресеттера под LPT порт. Такой ресеттер прост для самостоятельного изготовления, но сам LPT порт становится всё большей редкостью и на современных компьютерах его не ставят. Так же программа заявлена для работы максимум на Windows XP и её развитие остановилось очень давно. На Windows 7 такой программатор работать уже не будет из –за отсутствия прямого доступа в LPT порт.

        Сейчас у меня в наличии имеются два принтера EPSON – С87 и R220. Один дома, другой на работе. Ресеттер под LPT порт у меня был изготовлен давно, так как периодически через мои руки проходили и другие принтеры. Но LPT порт есть только на домашнем ПК и носить картриджи для сброса домой очень не удобно. Поэтому я решил изготовить новый ресеттер. Вариантов было два – делать его автономным только для функции сброса или под USB интерфейс с возможностью расширить функционал. Я выбрал второй вариант. С дополнительным функционалом это уже не просто ресеттер, а программатор.

        Для начала я проштудировал соответствующую тему на форуме ixbt. После чего в своём программаторе я запланировал следующий функционал:


        - возможность выбора разных моделей картриджей
        - чтение чипов картриджей для возможности последующего полного восстановления содержимого чипа
        - сброс уровней чернил
        - восстановление содержимого чипа картриджа
        - запись чипа содержимым чипа другого картриджа

        Для возможности управления функциями программатора я выбрал работу через любую терминальную программу, работающую с СОМ портами, так как это позволяло не думать о специализированной программе. Соответственно, сам программатор должен быть в виде устройства, работающего через СОМ порт. Это может быть либо приставка к уже имеющемуся в наличии преобразователю USB-RS232, либо это может быть самостоятельное устройство. Я выбрал второй вариант и реализовал его на микроконтроллере STM32F042F4. Для данной задачи он подходит как нельзя лучше. Он очень дешёвый, имеет штатную поддержку USB интерфейса, требует минимум внешних компонентов и может быть запрограммирован без применения внешних программаторов посредством DFU загрузчика напрямую через USB. Хотя у меня есть китайский ST-Link и для записи прошивки я пользовался им. Но запись через DFU я проверил.

        Схема очень простая

        Данный программатор работает только с 7-контактными чипами. В качестве микросхемы U1 может быть использован любой LDO стабилизатор на 3.3В с соответствующей коррекцией платы. Для записи прошивки через DFU нужно замкнуть джампер BOOT и воспользоваться соответствующим ПО от ST. После записи прошивки джампер нужно снять и переподключить USB кабель. После подключения прошитого контроллера к USB в системе появится новый COM порт, для которого нужно установить драйвер VCP от ST. Настройки самого порта можно не трогать.

        Для работы с картриджами нужно запустить любую терминальную программу и открыть в ней соответствующий порт. Теперь можно посылать в программатор команды и наблюдать за их отработкой. Поддерживаемые на данный момент модели картриджей: T048x - 6 цветов, T063x и T044x - 4 цвета, так как именно такие есть у меня в наличии. Команды вводятся литиницей, регистр букв роли не играет. Ввод любой буквы, не относящейся к командам, выводит на экран список доступных команд. Вот они:

        C - смена модели картриджа;
        R - чтение всех картриждей;
        A - сброс уровня чернил всех картриджей;
        Z - сброс уровня чернил одного картриджа;
        S - запись всех данных (из прошивки) для картриджа текущей модели;
        F - стирание чипа значением FF для последующей смены цвета или модели картриджа;
        N - запись данных картриджа нужного цвета (если в чипе все FF).

После ввода некоторых команд идёт запрос на выбор картриджа нужного цвета.

        По команде R чтение производится для всех картриджей выбранной модели подряд. После чтения на экран выводится информация в двух видах – в виде НЕХ дампа и в виде строк с обратным порядком полубайтов.

        Первый вариант может быть полезен для создания базы прочитанных чипов с последующим добавлением этих данных в прошивку, а второй вариант соответствует формату, принятому на форуме ixbt. Здесь полубайты следуют в порядке их считывания из чипа, то есть слева в строке расположен младший полубайт первого байта, а справа - старший полубайт последнего байта (адрес чипа). В исходниках прошивки в файле chip.h приведена информация именно в таком формате, которая взята с форума ixbt и снята мной в процессе работы с этим программатором. После остальных команд и контрольного чтения чипа информация выводится только во втором варианте.

        Бывают случаи, когда либо запортится информация в чипе, либо выйдет из строя сам чип и его нужно заменить. Если информация не правильная, но номер чипа правильный (старший полубайт последнего байта), то можно просто восстановить содержимое командой S. Если из чипа считываются все FF, то возможно, что такой чип исправен, но его содержимое полностью стёрлось, при этом он фактически изменил свой адрес на 7. В этом случае в него можно записать содержимое от чипа любого цвета или модели при помощи команды N. Для принудительной смены цвета или модели исправного чипа чип нужно сначала стереть командой F. После этой команды можно сменить модель картриджа командой С и записать данные для картриджа от другой модели принтера. Например, перешьём чип картриджа Т0441 Black в T0484 LightMagenta:

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

        Прошивка основана на примере Virtual_COM_Port из STM32F0x2xx_USB_FS_device_library под Keil uVision. Из этого примера было удалено всё, что относилось к аппаратному UART контроллера, так как он не используется. Сейчас прошивка в памяти контроллера занимает около 10 килобайт. Даже при добавлении дополнительных моделей картриджей она увеличится не сильно и в штатные 16 килобайт памяти контроллера влезет легко. Код, относящийся к работе с картриджами, находится в файле chip.c и больше ориентирован на возможность простого добавления новых моделей картриджей, чем на достижение максимальной компактности. Я использовал Keil uVision версии 5.22. Для прошивок объёмом до 32 килобайт его можно использовать без регистрации и бесплатно.

        Конструктивно программатор выполнен на односторонней печатной плате (я использовал текстолит толщиной 0.5мм), для которой на 3D принтере распечатан простенький корпус. Контактная колодка для картриджа снята с нерабочего Epson-а.

        Теперь я могу такую маленькую коробочку спокойно носить с собой вместо картриджей, не боясь вытекания остатков чернил при транспортировке.

        Данный программатор поможет продлить жизнь стареньким, но простым и надёжным принтерам.


        В приложенных файлах исходники прошивки и уже скомпилированная прошивка, а так же проект железа под Altium Designer и эта статья в формате DOC.

Все вопросы в форум.


Файлы:
Проект железа под Altium
Проект прошивки под Keil
Эта статья в формате DOC


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

40 7 2