Что хранится в eeprom телевизора
EEPROM и flash память
EEPROM — это энергонезавимая память с электрическим стиранием информации. Количество циклов записи-стирания в этих микросхемах достигает 1000000 раз. Заминающие ячейки в них, также как и в постоянных запоминающих устройствах с электрическим стиранием EPROM, реализуются на основе транзисторов с плавающим затвором. Внутреннее устройство этой запоминающей ячейки приведено на рисунке 1:
Рисунок 1. Запоминающая ячейка ПЗУ с электрическим стиранием (EEPROM)
Ячейка EEPROM памяти представляет собой МОП транзистор, в котором затвор выполняется из поликристаллического кремния. Затем в процессе изготовления микросхемы этот затвор окисляется и в результате он будет окружен оксидом кремния — диэлектриком с прекрасными изолирующими свойствами. В транзисторе с плавающим затвором при полностью стертом ПЗУ, заряда в «плавающем» затворе нет, и поэтому данный транзистор ток не проводит. При программировании, на второй затвор, находящийся над «плавающим» затвором, подаётся высокое напряжение и в него за счет туннельного эффекта индуцируются заряды. После снятия программирующего напряжения индуцированный заряд остаётся на плавающем затворе, и, следовательно, транзистор остаётся в проводящем состоянии. Заряд на его плавающем затворе может храниться десятки лет.
Подобная ячейка памяти применялась в ПЗУ с ультрафиолетовым стиранием (EPROM). В ячейке памяти с электрическим стиранием возможна не только запись, но и стирание информации. Стирание информации производится подачей на программирующий затвор напряжения, противоположного напряжению записи. В отличие от ПЗУ с ультрафиолетовым стиранием, время стирания информации в EEPROM памяти составляет около 10 мс.
Структурная схема энергонезависимой памяти с электрическим стиранием не отличается от структурной схемы масочного ПЗУ. Единственное отличие — вместо плавкой перемычки используется описанная выше ячейка. Ее упрощенная структурная схема приведена на рисунке 2.
Рисунок 2. Упрощенная структурная схема EEPROM
В качестве примера микросхем EEPROM памяти можно назвать отечественные микросхемы 573РР3, 558РР3 и зарубежные микросхемы серий AT28с010, AT28с040 фирмы Atmel, HN58V1001 фирмы Hitachi Semiconductor, X28C010 фирмы Intersil Corporation. В EEPROM памяти чаще всего хранятся пользовательские данные в сотовых аппаратах, которые не должны стираться при выключении питания (например адресные книги), конфигурационная информация роутеров или сотовых аппаратов, реже эти микросхемы применяются в качестве конфигурационной памяти FPGA или хранения данных DSP. EEPROM изображаются на принципиальных схемах как показано на рисунке 3.
Рисунок 3. Условно-графическое обозначение электрически стираемого постоянного запоминающего устройства
Чтение информации из параллельной EEPROM памяти производится аналогично чтению из масочного ПЗУ. Сначала на шине адреса выставляется адрес считываемой ячейки памяти в двоичном коде A0. A9, затем подается сигнал чтения RD. Сигнал выбора кристалла CS обычно используется в качестве дополнительного адресного провода для обращения к микросхеме. Временные диаграммы сигналов на входах и выходах этого вида ПЗУ приведены на рисунке 4.
Рисунок 4. Временные диаграммы сигналов чтения информации из EEPROM памяти
На рисунке 5 приведен чертеж типового корпуса микросхемы параллельной EEPROM памяти.
Рисунок 5. Чертеж корпуса микросхемы параллельной EEPROM
Обычно данные, которые хранятся в EEPROM требуются достаточно редко. Время считывания при этом не критично. Поэтому в ряде случаев адрес и данные передаются в микросхему и обратно через последовательный порт. Это позволяет уменьшить габариты микросхем за счет уменьшения количества внешних выводов. При этом используются два вида последовательных портов — SPI порт и I2C порт (микросхемы 25сXX и 24cXX серий соответственно). Зарубежной серии 24cXX соответствует отечественная серия микросхем 558РРX.
Внутренняя схема микросхем серии 24сXX (например AT24C01) приведена на рисунке 6.
Рисунок 6. Внутренняя схема микросхемы AT24C01
Подобные микросхемы широко используются для сохранения настроек телевизоров, в качестве памяти plug and play в компьютерах и ноутбуках, конфигурационной памяти ПЛИС и сигнальных процессоров (DSP). Применение последовательной EEPROM памяти позволило значительно уменьшить стоимость данных устройств и увеличить удобство работы с ними. Пример расположения данной микросхемы на печатной плате карты памяти компьютера приведен на рисунке 7.
Рисунок 7. EEPROM на печатной плате карты памяти компьютера
На рисунке 8 приведена схема электронной карты с применением внешней EEPROM микросхемы.
Рисунок 8. Схема электронной карты с применением внешней EEPROM
На данной схеме микроконтроллер PIC16F84 осуществляет обмен данными с EEPROM памятью 24LC16B. В таких устройствах, как SIM-карта, уже не применяется внешняя микросхема памяти. В SIM-картах сотовых аппаратов используется внутренняя EEPROM память однокристального микроконтроллера. Это позволяет максимально снизить цену данного устройства.
Схема управления для электрически стираемых программируемых ПЗУ получилась сложная, поэтому наметилось два направления развития этих микросхем:
Рисунок 9. Условно-графическое обозначение FLASH памяти
При обращении к постоянному запоминающему устройству сначала необходимо выставить адрес ячейки памяти на шине адреса, а затем произвести операцию чтения из микросхемы. Эта временная диаграмма приведена на рисунке 11.
Рисунок 10. Временные диаграммы сигналов чтения информации из ПЗУ
В настоящее время широко распространилось название флешка. Это связано с внешними накопителями, предназначенными для переноски данных с одного компьютера на другой. В составе подобного устройства основной элемент, это FLASH-ПЗУ. Именно в него записывает данные, полученные по USB-интерфейсу контроллер FLASH памяти. Ну, и считывает, конечно. Фотография печатной платы USB флешки без корпуса приведена на рисунке 11.
Рисунок 11. Внутреннее устройство флешки
Именно микроконтроллер формирует сигналы, временные диаграммы которых показаны на рисунке 10, которые необходимы для работы микросхемы FLASH-ПЗУ.
Дата последнего обновления файла 04.08.2020
Понравился материал? Поделись с друзьями!
Вместе со статьей «Постоянные запоминающие устройства (ПЗУ)» читают:
Некоторые аспекты замены микросхем памяти в современных телевизорах
Оглавление
Анализ статистических данных по ремонту бытовой электронной техники показывает, что нередко причиной потери работоспособности аппаратуры и, в частности, современных телевизионных приемников, является выход из строя микросхем памяти (EEPROM). На практике наблюдается полная или частичная потеря работоспособности EEPROM, а также искажение содержащейся в них информации. В зависимости от неисправности в ряде случаев эксплуатация телевизоров становится невозможной, но во многих случаях не происходит полного отказа аппаратуры, а всего лишь теряются некоторые функциональные возможности.В телевизорах модельного ряда начала 90-х годов прошлого века микропроцессорная система управления телевизором заменяла применявшиеся ранее аналоговые механические регуляторы, а в EEPROM запоминались только значения основных аналоговых параметров (значения яркости, контрастности, насыщенности, параметров аудио-канала, настройки программ и др.). В телевизорах же более поздних разработок (подавляющее большинство моделей, выпущенных за последние 5 лет) в микросхемах памяти содержится также информация о конфигурации конкретной модели телевизора и об индивидуальных настройках различных функциональных узлов.
Если микросхема EEPROM вышла из строя, для восстановления работоспособности телевизора и его исходных параметров необходима запись во вновь устанавливаемую микросхему определенной информации. Она может быть произведена в общем случае с помощью программатора EEPROM. С его же помощью можно прочитать содержимое демонтированной микросхемы и записать в новую микросхему считанные данные, а также записать в нее базовую прошивку для данной модели телевизора из банка данных, которая не учитывает индивидуальные параметры конкретного экземпляра телевизора.Системы управления телевизоров многих производителей имеют в сервисном меню опцию записи в EEPROM базовой прошивки усредненных параметров из ПЗУ микропроцессора. Это упрощает процедуру замены микросхемы памяти. Для индивидуальной настройки параметров в любом случае необходимо проводить коррекцию содержимого памяти с использованием сервисного меню.
При отсутствии программатора для многих моделей телевизоров возможна установка требуемого содержимого EEPROM путем записи конкретных значений для каждого байта банка памяти либо регулировкой конкретных параметров в сервисном режиме. Но для осуществления этой операции необходимо, по меньшей мере, знать процедуру входа в сервисный режим. Ниже приведено краткое описание методики замены микросхем памяти и коррекции их информации в некоторых моделях телевизоров.
Замена микросхем памяти в телевизорах ORION
Необходимо отметить, что у массовых недорогих моделей телевизоров в микросхемах памяти, как правило, хранились лишь значения аналоговых параметров настройки. И при выходе из строя EEPROM, обычно сопровождающимся невозможностью запоминания вновь настроенных каналов, достаточно заменить неисправную микросхему на новую и провести настройку телевизора согласно инструкции. Очень часто такая неисправность встречается у телевизоров ORION разных моделей, например, 20 MS и 14J. Для замены можно также использовать и микросхемы с большим объемом памяти. Например, в данном случае вместо микросхемы 24С01 можно применить 24С02. 24С08. В этом случае просто весь объем памяти не будет использован.
Применим такой вариант замены и для других телевизоров. Критерием возможности такого ремонта, как правило, является наличие на панели кинескопа подстроечных резисторов (не менее 3-х) для регулировки его режимов. Это говорит о том, что основные режимы кинескопа и, возможно, всей видеосистемы, устанавливаются без использования микропроцессора и памяти.
Замена микросхем памяти в телевизорах JVC
В последнее время участились случаи выхода из строя EEPROM в телевизорах JVC моделей C-21ZE, AV-21TE, AV-G21T с наработкой 5. 8 лет. Во всех перечисленных моделях используются микросхемы памяти типа 24С04. Автор не претендует на исчерпывающее перечисление внешних проявлений ненормальной работы телевизоров, остановившись на самых распространенных ситуациях.
В подавляющем большинстве случаев в микросхемах выходит из строя канал записи данных. При этом, как правило, телевизор сохраняет работоспособность с установленными ранее параметрами настройки.
В некоторых случаях выход из строя микросхем сопровождается блокировкой шин SCL и SDA, что приводит к полной неработоспособности системы управления. Подобная неисправность может быть также вызвана и неисправностью микроконтроллера или видеопроцессора, но в подобных случаях невозможно сразу с максимальной достоверностью определить неисправную микросхему. Поиск неисправности в этой ситуации целесообразно начинать с проверки работоспособности и замены EEPROM, как наиболее дешевого компонента, способного вызвать подобную неисправность.
Но замена неисправной микросхемы на новую в телевизорах перечисленных моделей не приводит сразу к восстановлению их работоспособности, а наоборот, на первый взгляд, только осложняет ситуацию. Телевизор становится как бы неуправляемым, практически сразу после включения и разогрева кинескопа происходит его выключение схемой защиты. Причина кроется в том, что в телевизорах этих моделей в EEPROM хранится информация о всех параметрах настройки видеопроцессора, в том числе и о параметрах установки режимов кинескопа. Вследствие того, что во всех ячейках памяти новых микросхем записано значение FF в шестнадцатеричной системе счисления (или 255 в десятичной системе), то все регулировочные параметры телевизора оказываются в состоянии, вызывающем максимальный ток лучей кинескопа. Это и является причиной срабатывания системы защиты. Если есть возможность перенести дамп (содержимое) памяти демонтированной неисправной микросхемы во вновь устанавливаемую с помощью программатора, то после этой операции работоспособность телевизора восстанавливается полностью с сохранением ранее выполненных настроек. При отсутствии программатора установку параметров возможно провести по нижеописанной методике.
Все описанное ниже относится к модели телевизора «JVC C-21ZE», но вид меню и работа с ним для других моделей отличаются незначительно. Автор сознательно не приводит полное обозначение регулируемых параметров и методики проведения дополнительных регулировок телевизора. Более подробно это описано в [1], [2].
1. До проведения демонтажа микросхемы EEPROM следует переписать из пунктов сервисного меню установленные значения всех используемых параметров. o Для входа в сервисный режим одновременно нажимают на ПДУ кнопки DISPLAY и PICTURE MODE. При этом на экране должна появиться первая страница сервисного меню, из которой осуществляется переход на другие страницы нажатием цифровых кнопок 1-3;(рис. 1)
Рис. 1. Первая страница сервисного меню
Рис. 2. Страница предустановок предпочтительных настроек изображения
2.Перед включением телевизора с установленной новой микросхемой необходимо уменьшить напряжение на ускоряющем электроде кинескопа до минимума для предотвращения срабатывания системы защиты.
Рис. 3. Страница регулировок изображения для каждой системы цветности отдельно
3.Включают телевизор и проводят установку параметров телевизора согласно считанным ранее данным. Значения всех параметров выводятся на экран в десятичной системе счисления. Выбор регулируемого параметра и изменение его значения производится кнопка ми PICTURE ADJUST. Следует помнить, что при изменении многих параметров происходит скачкообразное изменение яркости изображения до минимума, поэтому иногда потребуется увеличивать величину ускоряющего напряжения, чтобы производить визуальный контроль за изменением параметров. Если производить регулировкупараметров, выбирая страницы в последовательности 4-3-2, то при этом частая регулировка ускоряющего напряжения практически не потребуется.
Рис. 4. Страница установки параметров тракта ПЧ и видеопроцессора
4.Установить номинальное значение ускоряющего напряжения, визуально контролируя изображение.
Рис. 5. Страница установки системных констант
При отсутствии возможности считывания исходной прошивки EEPROM необходимо ввести в микросхему усредненные значения параметров, приведенные на рисунках для всех пунктов меню.
Для достижения нормальной работы телевизора после ввода (корректировки) указанных параметров, желательно произвести дополнительную регулировку «баланса белого» и других режимов, используя методику, описанную в [1].
Следует особо отметить, что вход в сервисный режим обеспечивается только с оригинальными ПДУ, входящими в комплект телевизоров. Практика показала, что однотипные пульты, имеющиеся в настоящее время в широкой продаже, при одновременном нажатии кнопок DISPLAY и PICTURE MODE не обеспечивают формирование кода команды перевода телевизора в сервисный режим (автор не утверждает, что это присуще всем продаваемым ПДУ).
Мнения читателей
что может заменить микросхему xwm8716 а то ее не найти??
Интересно а dima уже приобрел 24C08? )Сайту – С Новым годом!
где можно преобрести память 24со8
Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:
Работа с параметрами в EEPROM, как не износить память
Введение
Доброго времени суток. Прошлая моя статья про параметры в EEPROM была, мягко говоря, немного недопонята. Видимо, я как-то криво описал цель и задачу которая решалась. Постараюсь в этот раз исправиться, описать более подробно суть решаемой проблемы и в этот раз расширим границы задачи.
А именно поговорим о том, как хранить параметры, которые необходимо писать в EEPROM постоянно.
Особенность таких параметров заключается в том, что их нельзя писать просто так в одно и то же место EEPROM, вы просто израсходуете все циклы записи EEPROM. Например, если, необходимо писать время работы один раз в 1 минуту, то нетрудно посчитать, что с EEPROM в 1 000 000 циклов записей, вы загубите его меньше чем за 2 года. А что такое 2 года, если обычное измерительное устройство имеет время поверки 3 и даже 5 лет.
Кроме того, не все EEPROM имеют 1 000 000 циклов записей, многие дешевые EEPROM все еще производятся по старым технологиям с количеством записей 100 000. А если учесть, что 1 000 000 циклов указывается только при идеальных условиях, а скажем при высоких температурах это число может снизиться вдвое, то ваша EEPROM способно оказаться самым ненадежным элементом уже в первый год работы устройства.
Поэтому давайте попробуем решить эту проблему, и сделать так, чтобы обращение к параметрам было столь же простым как в прошлой статье, но при этом EEPROM хватало бы на 30 лет, ну или на 100 (чисто теоретически).
Итак, в прошлой статье, я с трудом показал, как сделать, так, чтобы с параметрами в EEPROM можно было работать интуитивно понятно, не задумываясь, где они лежат и как осуществляется доступ к ним
Для начала проясню, для чего вообще нужно обращаться по отдельности к каждому параметру, этот момент был упущен в прошлой статье. Спасибо товарищам @Andy_Big и @HiSER за замечания.
Если использовать способ, который предложил пользователь @HiSER- это будет означать, что для перезаписи одного параметра размером в 1 byte, я должен буду переписать всю EEPROM. А если алгоритм контроля целостности подразумевает хранение копии параметров, то для 200 параметров со средней длиной в 4 байта, мне нужно будет переписать 1600 байт EEPROM, а если параметров 500, то и все 4000.
Малопотребляющие устройства или устройства, питающиеся от от токовой петли 4-20мА должны потреблять, ну скажем 3 мА, и при этом они должны иметь еще достаточно энергии для питания модема полевого интерфейса, графического индикатора, да еще и BLE в придачу. Запись в EEPROM очень энергозатратная операция. В таких устройствах писать нужно мало и быстро, чтобы средний ток потребления был не высоким.
Очевидно, что необходимо, сделать так, чтобы микроконтроллер ел как можно меньше. Самый простой способ, это уменьшить частоту тактирования, скажем до 500 КГц, или 1 Мгц (Сразу оговорюсь, в надежных применениях использование режима низкого потребления запрещено, поэтому микроконтроллер все время должен работать на одной частоте). На такой частоте, простая передача 4000 байт по SPI займет около 70 мс, прибавим к этому задержку на сохранение данных в страницу (в среднем 7мс на страницу), обратное вычитывание, и вообще обработку запроса микроконтроллером и получим около 3 секунд, на то, чтобы записать один параметр.
Поэтому в таких устройствах лучше чтобы доступ к каждому параметру был отдельным, и обращение к ним должно быть индивидуальным. Их можно группировать в структуру по смыслу, или командам пользователя, но лучше, чтобы все они не занимали больше одной страницы, а их адреса были выравнены по границам страницы.
Как работать с EEPROM, чтобы не износить её
Те кто в курсе, можете пропустить этот раздел. Для остальных краткое, чисто мое дилетантское пояснение.
Как я уже сказал, число записей в EEPROM ограничено. Это число варьируется, и может быть 100 000, а может и 1 000 000. Так как же быть, если я хочу записать параметр 10 000 000 раз? И здесь мы должны понять, как внутри EEPROM устроен доступ к ячейкам памяти.
Итак, в общем случае вся EEPROM разделена на страницы. Страницы изолированы друг от друга. Страницы могут быть разного размера, для небольших EEPROM это, скажем, 16, 32 или 64 байта. Каждый раз когда вы записываете данные по какому-то адресу, EEPROM копирует все содержимое страницы, в которой находятся эти данные, во внутренний буфер. Затем меняет данные, которые вы передали в этом буфере и записывает весь буфер обратно. Т.е. по факту, если вы поменяли 1 байт в странице, вы переписываете всю страницу. Но из-за того, что страницы изолированы друг от друга остальные страницы не трогаются.
Таким образом, если вы записали 1 000 000 раз в одну страницу, вы можете перейти на другую страницу и записать туда еще 1 000 000 раз, потом в другую и так далее. Т.е. весь алгоритм сводится к тому, чтобы писать параметр не в одну страницу, а каждый раз сдвигаться в следующую страницу. Можно закольцевать эти действия и после 10 раз, снова писать в исходную страницу. Таким образом, вы просто отводите под параметр 10 страниц, вместо 1.
Анализ требований и дизайн
Все требования можно сформулировать следующим образом:
Пользователь должен задать параметры EEPROM и время обновления параметра
На этапе компиляции нужно посчитать количество необходимых страниц (записей), чтобы уложиться в необходимое время работы EEPROM. Для этого нужно знать:
Количество циклов перезаписи
Время обновления параметра
Время жизни устройства
Хотя конечно, можно было дать возможность пользователю самому задавать количество записей, но что-то я хочу, чтобы все считалось само на этапе компиляции.
Каждая наша переменная(параметр) должна иметь уникальный начальный адрес в EEPROM
Мы не хотим сами руками задавать адрес, он должен высчитываться на этапе компиляции
При каждой следующей записи, адрес параметра должен изменяться, так, чтобы данные не писались по одному и тому же адресу
Это также должно делаться автоматически, но уже в runtime, никаких дополнительных действий в пользовательском коде мы делать не хотим.
Мы не хотим постоянно лазить в EEPROM, когда пользователь хочет прочитать параметр
Обычно EEPROM подключается через I2C и SPI, передача данных по этим интерфейсам тоже отнимает время, поэтому лучше кэшировать параметры в ОЗУ, и возвращать сразу копию из кеша.
При инициализации мы должны найти самую последнюю запись, её считать и закешировать.
За целостность должен отвечать драйвер.
За алгоритм проверки целостности отвечает драйвер, если при чтении он обнаружил несоответствие он должен вернуть ошибку. В нашем случае, пусть в качестве алгоритма целостности будет простое хранение копии параметра. Сам драйвер описывать не буду, но приведу пример кода.
Ну кажется это все наши хотелки. Как и в прошлой статье давайте прикинем дизайн класса, который будет описывать такой параметр и удовлетворять нашим требованиям:
Посмотрим на то, как реализуются наши требования таким дизайном.
Пользователь должен задать параметры EEPROM и время обновления параметр
При каждой следующей записи, адрес параметра должен изменяться, так, чтобы данные не писались по одному и тому же адресу
Еще одной особенностью нашего противоизносного параметра является тот факт, что кроме самого значения, мы должны хранить еще и его индекс. Индекс нужен нам для двух вещей:
По нему мы будет рассчитывать следующий адрес записи
Для того, чтобы после выключения/включения датчика найти последнюю запись, считать её и проинициализировать значением по адресу этой записи кеширумое значение в ОЗУ.
Давайте посмотрим как реализован метод расчета текущего адреса записи:
Мы не хотим постоянно лазить в EEPROM, когда пользователь хочет прочитать параметр
Теперь самое интересное, чтобы проинициализировать копию в ОЗУ правильным значением, необходимо при запуске устройства считать все записи нашего параметра и найти запись с самым большим индексом. Наверняка есть еще разные методы хранения данных, например, связанный список, но использование индекса, показалось мне ну прямо очень простым.
В общем-то и все класс готов, полный код класса:
Результат
Собственно все, теперь мы можем регистрировать в списке любые параметры:
Что произойдет в этом примере, когда мы будем писать 10,11,12. 15 в наш параметр. Каждый раз при записи, адрес параметра будет смещаться на размер параметра + размер индекса + размер копии параметра и индекса. Как только количество записей превысит максимальное количество, параметр начнет писаться с начального адреса.
На картинке снизу как раз видно, что число 15 с индексом 5 записалось с начального адреса, а 10 теперь нет вообще.
В данном случае после сброса питания, при инициализации, будет найдена запись с индексом 5 и значением 15 и это значение и индекс будут записаны в кэшируемую копию нашего параметра.
Вот и все, надеюсь в этой статье цель получилось пояснить более детально, спасибо за то, что прочитали до конца.