Принтеры HP Business InkJetЧипы картриджей принтеров Hewlett-Packard Business InkJet

Чипы картриджей принтеров Hewlett-Packard Business InkJet


В этих принтерах используются четыре картриджа: один черный и три цветных. Каждый картридж имеет один чип для сохранения данных об уровне чернил; эти чипы имеют различные адреса на шине I2C:

  • Черный - B8hex (команда Write) и B9hex (команда Read);
  • Голубой - BAhex (команда Write) и BBhex (команда Read);
  • Пурпурный - BChex (команда Write) и BDhex (команда Read);
  • Желтый - BEhex (команда Write) и BFhex (команда Read)
  • Каждый чип имеет интересную структуру: некоторые области чипа изменить нельзя. При включении принтер проверяет это свойство памяти в каждом чипе.
    Вот некоторые мои наблюдения по чипу:

  • 00,01 - код цвета (нельзя использовать чип одного цвета в другом месте)
  • 19,1A,1Bhex - счетчик использованной краски
  • 38,39hex и 46-47hex - счетчики отпечатанных страниц
  • Внешне чипы одинаковы. Отличие в адресе на шине - внутреннее.
    Некоторые свойства шины I2C:

  • Частота обмена 65-70 кГц
  • SCL низкий уровень 9-10 микросекунд
  • SCL высокий уровень 6-7 микросекунд
  • Start (между фронтами SDA и SCL) 15-17 микросекунд
  • Stop 10-12 микросекунд
  • Внутренний цикл Write 10-10.5 миллисекунд.
  • Кроме всего прочего, в принтере есть четыре чипа на печатающих головках. Их адресация:

  • B0hex - черный;
  • B2hex - голубой;
  • B4hex - пурпурный;
  • B6hex - желтый
  • Их структуру пока не изучал; судя по всему, она та же, что и у чипов картриджей.

    Структура команды чтения такова (для примера - черный Ink Cartridge):

    Start - B9 - Acknowledge - Addr - Acknowledge - Data - NoAck - Stop

    Команда записи для того же чипа:

    Start - B8 - Acknowledge - Addr - Acknowledge - Data - Acknowledge - Stop

    Тут Addr - адрес ячейки памяти, Data - прочитанный байт в команде чтения или записываемый байт для команды записи.

    Для работы с чипом используется любой программатор для I2C. Питание чипа Vcc = +5В.

    Цоколевка чипа

    Принтеры HP Business InkJet, I2C

    Структура памяти чипа

    00-0Fhex - однократно программируемая область памяти. Изначально в ней нулевые данные. Возможна перезапись в единицу на уровне битов. Обратное изменение невозможно.
    Первый байт (адрес 00) определяет адрес чипа на линии I2C. Точнее, последние три бита этого байта. Предположительно, тут получена некоторая универсальность чипа – то есть изготавливаются все чипы одинаковыми, потом для использования в составе соответствующего картриджа или печатающей головки программируется первый байт. Эту строку данных, судя по всему лучше вообще не трогать. Более того, ее принтер также не изменяет в процессе работы, кроме одного байта с адресом 06 (иногда двух байт – 06 и 07). Эти два байта меняются на значения 7F и F0 после печати около полусотни страниц с индикацией 0 мл краски.
    Иногда примерно тогда же прописывается 80 в байт с адресом 06. Вполне может быть, что это изменение является «фатальным» для чипа, т.е. он маркируется, как уже отработавший (во всяком случае, похожие алгоритмы есть у Xerox, хотя ни один из разработанных мной алгоритмов восстановления чипа Xerox тут не помог).

    10-27hex - эта область памяти выглядит, как неизменяемая область (ROM). Именно попытка записи в эту область не приводит к появлению сигнала Acknowledge, а приводит к сообщению «Устройство не отвечает». Причем все это выглядит несколько странно – байт команды записи подтверждается, байт адреса также подтверждается, а байт данных – нет. Я на 99% процентов уверен, что эти данные могут быть изменены неизвестным мне алгоритмом. Причина уверенности все в той же универсальности чипа, заложенной в определении его адреса первым байтом данных.

    28-47hex - это самый обычный EEPROM; изменять можно что угодно и как угодно. Именно в этой области расположены текущие счетчики отпечатанных страниц и использованной краски.

    48-7Fhex - эта область содержит нулевые данные и ведет себя также, как и ROM 10-27hex. Принтер вообще никогда к ней не обращается.

    Еще заметил одну странную деталь – чипу не нужно напряжения питания. Достаточно подключить SDA, SCL и GND – и чип можно читать и писать по вышеописанным правилам.
    Хотя, если вывод Vcc соединить с GND, то он перестает работать.
     

    Arvador
     

    Дополнение от

    Обмен данных с чипами у HP Business InkJet 1100/1200 (с другими не пробовал) можно просто отключить, разобрав аппарат и выдернув разъем на контактную площадку, предназначенную для чипов.
     


    Опубликовано 16.01.2007 г.
    Рейтинг@Mail.ru Rambler's Top100