logo
Прошивка чипа картриджа Samsung SCX-4200

1.5 Характеристика микросхемы 24c04, используемой в чипе картриджа

Микросхемы 24Cxx или Xerox90/01 представляют собой память EEPROM (electricaly erasable programable read only memory - электрически стираемая программируемая читаемая только память) которая использует I2C-протокол (или IIC bus - Inter Integrated Circuits bus).

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

Вся изложенная ниже информация была получена тестированием чипов серии 24xx производителей Microchip, Atmel, Xicor, STMicroelectronics, а также чипов 8-DIP, на корпусе которых написано Xerox90 (...) или Xerox01(...) /записи во второй и третьей строках чипов Xerox по мнению автора не имеют отношения к их свойствам/. Максимально точное описание своей продукции дает Atmel, и больше всего несоответствий datasheet и чипа обнаружено у Microchip.

Зачастую несоответствием параметров чипов с их описанием можно пренебречь (таковы наиболее общие условия использования микросхем).

Чипы выполнены в 8-DIP, SOIC, TSSOP корпусах. Расположение и назначение выводов обозначено на рисунке 3.

Рисунок 3 - Расположение и назначение выводов микросхемы

Вывод 4 - GND (общий, земля). Вывод 8 - Vcc (положительное по отношению к GND напряжение питания чипа). Минимальное значение Vcc, при котором некоторые микросхемы начинали работать +1.3V. Все микросхемы заработали от +2.7V. Типичное напряжение питания при использовании в аппаратуре (магнитофоны, мониторы, принтеры, копировально-множительная техника и т.д.) +5V (-10%,+5%). Кратковременно (до 10 секунд) выдерживают переполюсовку напряжения питания и превышение его до +17V. При этом сильно греются (около 15-20W тепловой энергии). Горят от перегрева. Полевой ключ на выводе SDA слабо-чувствителен к электростатике. Остальные выводы на бытовые статические разряды не реагируют.

В целом, внешними электрофизическими факторами привести в негодность такие микросхемы трудно. Что касается программных факторов, то чипы 24Cxx устойчивы и надежны в работе, а микросхемы Xerox90 и Xerox01 при неумелом обращении очень легко выходят из строя.

Выводы 1, 2, 3 - адресные выводы A0, A1, A2. Для большинства микросхем они определяют адрес чипа на шине I2C. Для 24C01, 24C02, Xerox90, Xerox01 значащими являются все три вывода (до 8 корпусов на шине). Для 24C04 имеют значение только A1, A2 (выводы 2 и 3, до 4 корпусов); для 24C08 - только A2 (вывод 3, может быть две микросхемы на шине); в 24C16 эти выводы не используются. Кроме того, в линейке 24Cxx есть микросхемы, которые не поддерживают такую адресацию, хотя по описанию производителя должны это делать.

Поведение таких чипов объясню на примере 24С04 - чип в 512 байт. Независимо от потенциала на выводах 1,2,3 отвечает на обращение к I2C-EEPROM и при чтении ведет себя так, будто это чип 24С16, четыре области по 512 байт которого содержат одинаковую информацию. При записи по некоторому адресу в этом псевдо-24С16 число данных помещается во все четыре адреса, смежные через 512 байт. То есть, реальной памяти есть 512 байт, а добавить еще три чипа на шину с другими адресами нельзя. Хотя, к примеру, Microchip регламентирует, что выводы 1, 2, 3 чипа 24LC04B не подключены.

Вывод 7 - сигнал WP (защита от записи). Процедура чтения данных из произвольного чипа работает одинаково и независима от логического уровня на этом выводе. Что касается процедуры записи в микросхему, то при низком логическом уровне на выводе WP доступна для записи вся область чипа. Чип всегда выдает сигнал подтверждения (acknowledge), данные записываются по сигналу STOP протокола I2C.

Запись является внутренне-синхронизованной. Во время цикла записи чип не отвечает на обращение к нему. Наименьшая длительность записи 1.6мс у чипов Atmel, наибольшая - 4.3мс у Xicor. Запись одного байта в побайтном режиме и N байт в режиме PageMode (страничная запись) происходит за одинаковый промежуток времени. Если количество байт N превосходит длину страницы, то сохраняются последние K байт, где K - длина страницы. В процессе тестов было получено, что K=1 для 24C01; K=4 или K=8 или K=16 для 24C02;K=8 или K=16 для 24C04; K=16 для 24C08 и 24C16 . Величины длины страницы для чипов 24C02 и 24C04 невозможно определить по внешним признакам (есть две микросхемы 24C02 одного производителя с длиной страницы 4 и 8 байт). Информация о страничной записи в чипы Xerox90 и Xerox01 есть в их описании.

При высоком логическом уровне WP микросхемы 24C01, 24C02 защищены от записи. Для чипов 24C04 возможны два варианта: защищен весь чип, или защищена только верхняя половина памяти. Для 24C08 и 24C16 возможным есть защита всей области памяти, либо верхней ее половины, либо им вообще безразлично, что есть на выводе WP.

Кроме того, все микросхемы имеют различную реакцию на попытку записи в защищенную выводом 7 область. Одни микросхемы не подтверждают обращение на запись (не выдают сигнал acknowledge), тем самым показывая невозможность записи. Другие микросхемы дают подтверждение, но запись не происходит. При этом часть этих чипов готова к обмену сразу после сигнала STOP в конце «записи», а часть микросхем будет недоступна на время, равное времени, требуемому для записи (хотя при этом данные в чипе не изменятся).

Вывод 6 - SCL (serial clock) - тактовый сигнал, синхронизирующий обмен по шине I2C. Не могу сказать, есть ли какое-то ограничение на минимальную частоту обмена по шине. Во всяком случае автор проверил работу чипа на частоте 0.1Hz и получил положительные результаты, правда чтение одного байта при этом занимает около шести минут. Относительно максимальной частоты, то микросхемы памяти с I2C-протоколом можно поделить на две категории: с частотой обмена 100kHz - Standard Mode (реально работают до 180-200kHz, возможная форма импульса - меандр) и с частотой обмена 400kHz -Fast Mode (реально работают на частоте не менее 480 kHz, не исключено, что может быть и выше. Есть аппаратные сложности для проверки более высоких частот. Начиная от 300 kHz требуют иной скважности импульса. На 400 kHz соотношение периода импульсов clock к их длительности должно равняться трем).

Вывод 5 - SDA (serial clock)- последовательные данные. Это двунаправленный вывод, по которому чип принимает команды и данные для записи, и выдает информацию при чтении.

Есть два способа внутренней организации буфера этого вывода. Их можно увидеть на рисунке 4

Рисунок 4 - Способы внутренней организации буфера вывода SDA

В первом случае линия выходных данных через открытый сток полевого транзистора включена параллельно входной линии. Чип корректно реагирует на сигнал START I2C-протокола, сбрасывая внутренний контроллер в независимости от команд и процедур, выполняемых им в текущий момент.

Во втором случае вывод SDA использует двунаправленный буфер, управляемый внутренним контроллером чипа. Микросхема не «видит» сигнала START в процессе выдачи битов данных на линию (когда буфер включен в режим Out). Если неизвестно состояние такого чипа в данный момент, то необходимо послать в него девять тактовых импульсов с высоким (если сам чип позволит) логическим уровнем на линии SDA, потом сигнал START. После этого состояние чипа будет определено.

В первом случае нет необходимости делать это.

В 1989 году по заказу компании Fuji-Xerox, изготовили микросхему памяти в 256 байт. Чип был назван Xerox90 и в основе работы использовал классический I2C-протокол. Он обладает некоторыми оригинальными свойствами как в способе обращения к нему, так и в структуре памяти. При неверном обращении его легко можно заблокировать (или как стало популярным говорить «убить»). Заблокированный (или убитый, мертвый) чип по сути есть чип, все байты памяти которого при классическом I2C чтении имеют неизменяемое нулевое значение. В связи с высокой трудоемкостью восстановления или разблокирования такого чипа его дальнейшее использование нецелесообразно. В 1994 году чип был доработан, но название Xerox90 сохранилось. Изменения от первоначального варианта в большей степени коснулись структуры памяти и способа ее полного перепрограммирования. Последняя известная его доработка произошла в 2000 году. Микросхема незначительно изменила структуру работы по классическому протоколу и способу перепрограммирования. Она получила новое название Xerox01. Вероятно, существовали или есть и другие производители таких чипов, так как численность таких микросхем с несущественными отклонениями от основной идеи защиты памяти достигает трех десятков. Однако все эти микросхемы очень легко привести в «мертвое» состояние. И все они имеют сходную структуру полного перепрограммирования.

Демонстрационная версия программы, представленная на сайте, позволяет Вам прочитать чип Xerox и получить такую же информацию, какую Вы получили бы используя любой другой программатор I2C и убили бы чип. Демо-версия не убивает чип Xerox при установке опции «Устройства» программы в позицию «Xerox» и предупреждает о возможных последствиях при иных установках.

Что касается чипов от HP Business InkJet, они имеют сходный с I2C протокол. Отличия в структуре команд чтения. Оно вместе с адресацией данных в чипе проходит в одну последовательность от Start до Stop. Все чипы одного аппарата (а их там 8 штук) имеют различный адрес устройства, зависящий от установки чипа. В виду отсутствия видимого интереса пользователей к этому чипу, его поддержка не включена ни в демонстрационную версию, ни в полный вариант программы для I2C. Однако если будет такая необходимость, то соответствующие доработки будут произведены.