Программа для прошивки чипа 921
Программа для прошивки принтера
Программатор для микросхем S3CC921
Заказать программатор в интернет магазине
Статья Андрея Лутова выложенная в свободный доступ
О чипе
S
3
CC
921.
Невозможность прошивки печально известные самсунговских чипов с криптозащитой S3CC921, да и вообще их отсутствие отдельно от фирменных картриджей делало заправку принтеров и МФУ, где они применяются, невозможной. На протяжении года довольно успешно «боролись» с такими принтерами путем
разовой
смены
прошивки самого принтера на модифицированную, позволяющую принтеру
работать
без чипа. Но производитель в ответ закрыл доступ к своим прошивкам, а «достать» прошивку можно не из любой модели, так что проблема заправки картриджей новых самсунговских принтеров остается актуальной.
Программа PS3CC921.
EXE
позволяет с некоторыми ограничениями читать и записывать эти чипы. Это тестовая версия программатора. Пока программатор может работать лишь с одной версией чипа из 4-х возможных и записывает лишь часть прочитанного. Ограничения программы связаны с отсутствием у меня вообще к
акой-либо и
нформации по этому чипу, а потому все изложенное в дальнейшем добыто и продолжает добываться исключительно опытным путем. Тем не менее даже в таком виде программа может быть полезна.
Железо.
Для работы программы нужен программатор I2C
для
COM
или
LPT
порта, а также компьютер, имеющий хотя бы один «
настоящий» последовательный или параллельный порт. Программа доступается к ним при помощи своего драйвера I2CDRV.
SYS
, так что USB эмуляторы этих портов работать не будут. Параметры всех параллельных и последовательных портов берутся из реестра, а затем порты сканируются на предмет подключенного программатора.
Хотя по отзывам чип работает и от 5 вольтового питания, но я на всякий случай питание на него я подал с USB через стабилизатор на 3.3 вольта 78ls33. На 3.3 вольта я прицепил и подтягивающие резисторы по шинам SDA и SCL.
Программа.
Собственно программа
Программатор – это консольная программа. Если ее запустить без параметров, она читает чип и записывает содержимое в файл RS3CC921.BIN размером 384 байта в текущей папке.
При запуске с именем файла в командной строке программа читает
э
тот файл и пишет содержимое в микросхему. Принимается только файлы длиной 384 байта.
Редактировать полученный бинарн
ы
й файл можно в любом HEX-редакторе, например, подойдет FlexHex
,
WinHex
.
Как я понял, память микросхемы состоит из 2-х блоков. Первый блок имеет размер 256 байт и находится в файле по адресам
0
x
00
–
0
x
FF (
hex
). Этот блок читается и записывается программатором без проблем, и именно здесь находится большинство счетчиков принтера. Отмечу, что область памяти 0
xC
0
–
0
x
FF принтер
ами
не используется, и в разн
ых
чипах содержит разные данные. Для исключения затирания этой информации запись в эту область я в данной версии программы заблокировал, данные по этим адресам в файле при записи игнорируются.
Второй блок расположен в файле по адресам 0
x
1
00
–
0
x
17F
. Он нормально читается, но пока он доступен как однократно программируемый. Это значит, что однократная запись возможна только в ячейки памяти, которые содержат число 0xFF. В этом блоке находятся в основном константы: номер
CRUM
-а, емкость и тип картриджа, дата выпуска, и т.д. В этой области также расположено несколько важных однократно программируемых данных. Это флаг окончания тонера
«
Exhaust toner» (0
x
14
C
)
, флаг игнорирования тонера «Clear toner» (0x
14
D
),
16 байтное поле
«
Progress
Bar
» (
0
x
160-
0
x
16
F). Флаги изначально равны 0
x
FF, а при активации флагов принтер пишет число «01». Поле «
Progress
Bar
» в новом картридже содержит 10 байт
0
x
FF. При увеличении счетчика страниц
CRUM
-а принтер заполняет это поле слева направо байтами 0
xA
5. Если поделить число байт 0
xA
5 на общее число байт (16) и умножить на 100%, то получим процент израсходованного тонера, вычисленного исходя из количества распечатанных страниц. Принтер периодически проверяет поле «
Progress
Bar
», и, если нужно, счетчик страниц
CRUM
-а корректируется по этому полю.
Пока эта память доступна как однократно программируемая, предлагаю на новом катридже поля (Exhaust toner – 0
x
14c) и «
Progress
Bar
» (
0
x
160-
0
x
16
F), если они есть в конкретной модели принтера, заполнять нулевыми байтами.
Использование памяти s3cc921 в различных принтерах.
В чипах принтеров 46хх серии нужно обнулить область памяти 0
x
00
–
0
xB
F, записать число 0x64 (=100% -
Toner
amount
/
остаток тонера)
по смещению 0
x
1
F
, обнулить 0
xFF
байты
Progress
Bar
-а и 0
xFF
байт поля
Exhaust
toner
. Если поле Exhaust toner уже равно 0x01, то чип в этих принтерах работать скорее всего уже не будет. Но эти чипы можно, например, использовать в принтерах 1910, 2525 серии, где это поле не используется.
В чипах принтеров 482х и 2855 серии (и в XEROX 3210/3220) тоже нужно обнулить область памяти 0
x
00
–
0
xB
F, записать число 0x64 (=100% -
Toner
amount
/
остаток тонера)
по смещению 0
x
1
F
, обнулить 0
xFF
байт поля
Exhaust
toner
. В прошивках этой серии принтеров, включая 41 версию 482х, на данный момент поле
Progress
Bar
не используется. Но можно его и обнулить – на работу принтера это влиять не должно.
В чипах принтеров 191х, 252х серии (и в XEROX 3140/3155) нужно обнулить область памяти 0
x
00
–
0
xB
F,
обнулить 0
xFF
байты
Progress
Bar
-а. Поля
Toner
amount
и
Exhaust
toner
в этих принтерах на данный момент не используются.
Обнуление чипов 164х, 224х серии аналогично 191х. Отмечу только, что только последние прошивки используют
Progress
Bar
. То есть закончившийся по этому полю чип вполне возможно использовать в принтерах со старыми версиями прошивок
В принтерах 4300 все просто - нужно обнулить область памяти 0
x
00
–
0
xB
F и все.
По другим принтерам достоверной информации у меня пока нет, но, думаю, что приведенная подробные карты памяти позволят обнулять прошивки и этих принтеров.
|