Технологии флэш-памяти. Программирование микросхем FLASH-памяти Что же нужно для полноценной работы флэш-памяти

В статье описаны микросхемы флэш-памяти объемом 4 Гбита K9K4G08Q0M-YCB0/YIB0, K9K4G16Q0M- YCBO/YIBO, K9K4G08U0M- YCBO/YIBO, K9K4G16U0M-YCB0/YIB0. Эти микросхемы используются в качестве энергонезависимой памяти в бытовых, промышленных и компьютерных устройствах. В цифровых видео- и фотокамерах, диктофонах и автоответчиках эти микросхемы используются в качестве памяти для изображения и звука в составе твердотельных флэш-дисков.

Микросхемы флэш-памяти разделяются на группы по напряжению питания и архитектуре (табл. 1). В табл. 2 представлено назначение выводов микросхем флэш-памяти.

Таблица 1

Таблица 2

№ выводов Обозначение вывода (тип микросхемы) Назначение выводов
29-32; 41-44 I/O(0-7) (K9K4G08X0M-Y) Ввод/вывод данных. Выводы используются для ввода/вывода адресов ячеек, данных или команд в течение циклов считывания/записи. Когда микросхема не выбрана, или обращение к выводам запрещено, они переводятся в состояние высокого импеданса
26, 28, 30, 32, 40, 42, 44, 46, 27, 29, 31, 33, 41, 43, 45, 47 I/0(0-15) (K9K4G16X0M-Y)
16 CLE Разрешение фиксации команды. Высокий уровень сигнала на этом выводе переключает мультиплексоры на входах I/O по направлению регистра команд. Запись команды в регистр производится по фронту сигнала WE
17 ALE Разрешение фиксации адреса. Высокий уровень сигнала на этом входе переключает мультиплексоры на входах I/O по направлению адресного регистра. Загнись команды в регистр производится по фронту сигнала WE
9 СЕ Выбор микросхемы. Низкий уровень на входе разрешает операцию чтения данных, а высокий, при отсутствии каких-либо операций, переводит микросхему в дежурный режим. Во время операций записи/стирания, высокий уровень на этом входе игнорируется
8 RE Разрешение чтения. Вход управляет последовательным выводом данных, когда активна передача данных на шину ввода/вывода. Данные действительны после спада сигнала RE и некоторого нормированного времени выборки. Сигнал RE также увеличивает внутренний счетчик адреса столбца на единицу
18 WE Разрешение записи. Вход управляет записью в порт ввода/вывода. Команды, адрес и данные фиксируются по фронту импульса WE
19 WP Блокировка записи. Выход обеспечивает защиту от случайной записи/стирания во время включения питания. Внутренний генератор программирующего напряжения блокирован, когда на выводе WP активный низкий уровень
7 R/B Свободно/занято. Выход R/B указывает состояние микросхемы. Низкий уровень указывает, что выполняется операция записи, стирания или чтения с произвольной выборкой, высокий уровень устанавливается после завершения этих операций. Этот выход с открытым стоком не переходит к состоянию высокого импеданса, когда микросхема не выбрана, или когда выходы заблокированы
38 PRE Разрешение чтения при включении питания. Выход PRE управляет операцией авточтения, выполняемой при включении питания. Авточтение при включении питания разрешено, если вывод PRE подключен к выводу VCC
12 VCC Напряжение питания
13 VSS Общий

Микросхемы K9K4GXXX0M имеют емкость 4 Гбита с резервом 128 Мбит (фактическая емкость составляет 4 429 185 024 бита) и архитектуру 512 Мбит х 8 или 256 Мбит х 16 с надежностью до 1 млн. циклов записи/стирания. 8-разрядные микросхемы организованы в 2112 х 8 страниц, а 16-разрядные - в 1056 х 16 столбцов. Во всех микросхемах есть резервные биты, располагающиеся в 128 строках с адресами 2048-2111 у 8-разрядных микросхем, или в 64 столбцах с адресами 1024-1055 - у 16-разрядных. Для организации передачи данных в течение операции чтения/записи страницы между ячейками памяти и портами ввода-вывода у этих микросхем имеются последовательно связанные друг с другом регистры данных размером 2112 байт для 8-разрядной, или 1056-словный для - 16-разрядной микросхемы и регистры кэша соответствующего объема. Массив памяти строится из 32 связанных ячеек, находящихся на разных страницах и объединенных структурой И-НЕ. 32 ячейки, объединяющие 135168 структур 2И-НЕ и расположенные на 64 страницах, составляют блок. Совокупность 8- или 16-разрядных блоков составляет массив памяти.

Операция чтения выполняется постранично, в то время как операция стирания - только поблочно: 2048 отдельно стираемых блоков пс 128 Кбайт (для 8-разрядных микросхем), или блоков по 64 Кслов (для 16-разрядных микросхем). Стирание отдельных битов невозможно.

Запись страницы в микросхемы выполняется за 300 мкс, стирание - за 2 мс на блок (128 Кбайт - для 8-разрядных, или на 64 Кслов - для 16-разрядных микросхем). Байт данных считывается со страницы за 50 нc.

Для записи и контроля данных в микросхемах имеется встроенный контроллер, обеспечивающий весь процесс, включая, если требуется, повторение операций внутренней проверки и разметки данных. У микросхем K9K4GXXX0M реализована система обеспечения проверки информации с исправлением ошибок и выбраковкой ошибочных данных е реальном времени.

Микросхемы имеют 8 или 16 мультиплексных адресов ввода/вывода. Такое решение резко уменьшает число задействованных выводов, и позволяет проводить последующие модернизации устройств, не увеличивая их размеров. Ввод команд, адреса и данных производится при низком уровне на выводе СЕ по спаду сигнала WE через одни и те же ножки ввода/вывода. Вводимая информация записывается в буферные регистры по фронту сигнала WE. Сигналы разрешения записи команды (CLE) и разрешения записи адреса (ALE) используются, чтобы мультиплексировать команду и адрес соответственно через одни и те же ножки ввода/вывода.

Таблица 3

* Произвольный ввод/вывод данных возможен в пределах одной страницы

В табл. 3 показаны команды управления микросхем. Подача на входы других, не перечисленных в таблице, шестнадцатеричных (HEX) кодов команд, ведет к непредсказуемым последствиям, и поэтому запрещена.

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

Выбраковка блоков

Блоки памяти в микросхемах K9K4GXXX0M определяются как недопустимые, если содержат один иль более недопустимых битов, однозначность чтения которых не гарантируется. Информация из недопустимых блоков трактуется как «недопустимая информация блока». Микросхемы с недопустимыми блоками не отличаются по статическим и динамическим характеристикам и имеют тот же самый качественный уровень, как и микросхемы со всеми правильными блоками. Недопустимые блоки не влияют на работу нормальных блоков, потому что они изолировань от разрядной и общей шины питания транзистором выбора. Система спроектирована таким образом, что у недопустимых блоков блокируются адреса. Соответственно, к некорректным битам попросту нет доступа.

Идентификация недопустимого блока

Содержимое всех ячеек микросхемы (кроме тех, где хранится информация о недопустимых блоках) с адресами FFh для 8-разрядных и FFFFh для 16-разрядных, может быть стерта. Адреса недопустимых блоков, находящихся в резервной области массива памяти, определяет первый байт для 8-разрядных микросхем или первое слово - для 16-разрядных. Производитель гарантирует, что или 1-я или 2-я страница каждого блока с адресами недопустимых ячеек имеют в столбцах с адресами 2048 (для 8-разрядных) или 1024 (для 16-разрядных) данные, отличные, соответственно, от FFh или FFFFh. Так как информация о недопустимых блоках также является стираемой, то в большинстве случаев стирания адресов бракованных блоков их восстановить невозможно. Поэтому в системе должен быть заложен алгоритм, способный создать таблицу недопустимых блоков, защищенную от стирания и основанную на первоначальной информации о бракованных блоках.

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

Со временем число недопустимых блоков может возрасти, поэтому необходимо периодически проверять фактическую емкость памяти, сверяя адреса забракованных блоков с данными из резервной таблицы недопустимых блоков. Для систем, где необходима высокая отказоустойчивость, лучше всего предусмотреть возможность поблочного переписывания массива памяти со сравнением результатов с фактическими данными, оперативно выявляя и заменяя блоки некорректной информации. Данные из выявленного недопустимого блока переносятся в другой, нормальный пустой блок, не затрагивая соседние блоки массива и используя встроенный буфер, размер которого соответствует размеру блока. Для этого и предусмотрены команды для поблочной перезаписи.

Микросхемы флеш-памяти eeprom серии 25xxx широко применяются в микроэлектронике. В частности, в современных телевизорах и материнских платах в 25xxx хранится прошивка биоса. Перепрошивка 25xxx осуществляется по интерфейсу SPI, в чем и заключается отличие этих микросхем от флеш-памяти семейства 24xxx, которые шьются по i2c(квадратная шина).

Соответственно, для чтения/стирания/записи 25xxx нужен SPI-программатор. Одним из самых дешевых вариантов программаторов для этой цели является USBasp, который стоит смешные деньги- с доставкой всего около 2$ на ебее. В свое время я купил себе такой для программирования микроконтроллеров. Теперь мне понадобилось прошить не микроконтроллер, а SPI-флеш и решено было им воспользоваться.

Забегая вперед скажу, что прошивка от Tifa работает, микросхемы 25xxx шьются. Кстати, кроме 25xxx, модифицированный программатор рассчитан на работу с 24xxx и Microwire.

1. Перепрошивка USBasp

Сначала нужно замкнуть контакты J2:

Лично я не просто замкнул, а впаял в контакты переключатель:

При замкнутых контактах J2 (это у меня переключатель в положении вправо) USBasp переходит в режим готовности к перепрошивке.

Сам себя USBap перепрошить не может, поэтому нужен еще один программатор. USBasp как бы оказывается в положении хирурга, который не может сам себе вырезать аппендикс и просит друга помочь. Для перепрошивки USBasp я использовал самодельный программатор AVR910 , но для одного раза можно по-быстрому за пару минут спаять программатор «5 проводков» , который состоит всего-лишь из одного разъема LPT и 5 резисторов.

Подключаем программатор к USBasp:



Теперь идем на форум альтернативной прошивки от Tifa, в самом верхнем посте находим и качаем архив с последней прошивкой и ПО.

Находим там файл mega8.hex, это и есть альтернативная прошивка для USBasp.

Запускаем CodeVisionAvr (я использую версию 2.0.5), выставляем настройки программатора: Settings-> Programmer.

Устанавливаем настройки записи: Tools->Chip programmer. Выбираем чип Atmega8L, именно такой стоит на USBasp. Фьюзы не выставляем- те, что надо, уже прошиты в чипе. Остальные настройки оставляем по умолчанию.

Стираем старую программу USBasp: Program-> Erase chip.

Открываем файл прошивки mega8.hex: File-> Load flash.

Перепрошиваем USBasp: Program-> Flash.

Если прошла запись и не выдало сообщение об ошибке, значит альтернативная прошивка благополучно прошита в USBasp. Теперь USBasp может не только шить AVR-микроконтроллеры, как раньше, но еще и работать с флеш-памятью. Размыкаем контакты J2, что бы USBasp снова перешел в режим программатора.

Теперь проверим, видит ли Windows 7 x86 этот программатор. Вставляем USBasp в USB и… система пишет «USBasp не удалось найти драйвер». Понятно, нужно установить драйвер. Но драйверов в скачанном на форуме нет, их нужно скачать на родном сайте USBasp , оригинальные драйвера подходят и для модифицированного программатора. Скачали, установили, Win7 увидела программатор, все ок. Впрочем, я программирую микроэлектронику на ноутбуке с WinXP, она тоже после установки драйверов видит программатор.

2. Площадка для подключения USBasp к микросхеме 25xxx DIP

Теперь нужно подготовить площадку для программирования 25xxx. Я это сделал на макетной плате по такой схеме:

3. Прошивка микросхем 25xxx через USBasp

Для прошивки 25xxx через модифицированный USBasp используется программа AsProgrammer, которая тоже есть в .

Для примера, поработаем с микросхемой Winbond 25×40. Запускаем AsProgrammer, ставим режим работы SPI и выбираем тип микросхемы: Микросхема-> SPI-> Winbond->…

… и видим, что W25X40 в списке нет. Что же, тогда заполним параметры микросхемы вручную. Находим мануал на Winbond 25X40 и там на странице 4 видим такие параметры:

Эти параметры вносим сюда:

Подключаем USBasp к компьютеру и микросхеме Winbond 25×40:

С помощью кнопок «прочитать», «записать», «стереть», проверяем работу программатора:

Только нужно учесть, что перед тем, как что-то записать в микросхему, сначала нужно выставить: Настройки-> Проверка записи, что бы после записи прошивки в микросхему была выполнена проверка на соответствие того, что писали тому, что в итоге записали. Это немаловажная вещь, потому что если прошивку делать не на очищенный чип, в него запишется чёрт-те что. Поэтому сначала нужно стереть микросхему, а затем только проводить ее запись.

Благодаря прошивке от Tifa дешевый китайский программатор USBasp теперь умеет работать с микросхемами flash-памяти eeprom 25xxx. Теоретически еще может работать c 24xxx и Microwire, но я проверил только работу с 25xxx.

UPD1:
Оказывается, такую же прошивку можно записать и в программатор AVR910. Тогда он тоже будет работать с flash-памятью 25xxx:

На сегодняшний день флешки являются самыми популярными внешними носителями данных. В отличие от оптических и магнитных дисков (CD/DVD и винчестеры соответственно), флеш-накопители более компактны и устойчивы к механическим повреждениям. А за счет чего были достигнуты компактность и устойчивость? Давайте же разберемся!

Первое, что следует отметить — внутри flash-накопителя нет движущихся механических частей, которые могут пострадать от падений или сотрясений. Это достигается за счет конструкции — без защитного корпуса флешка представляет собой печатную плату, к которой припаян USB-разъем. Давайте рассмотрим её составляющие.

Основные компоненты

Составные части большинства флешек можно разделить на основные и дополнительные.


К основным относятся:

  1. чипы NAND-памяти;
  2. контроллер;
  3. кварцевый резонатор.
  4. USB-разъем

NAND-память
Накопитель работает благодаря NAND-памяти: полупроводниковым микросхемам. Чипы такой памяти, во-первых, весьма компактны, а во-вторых — очень ёмкие: если на первых порах флешки по объему проигрывали привычным на тот момент оптическим дискам, то сейчас превышают по ёмкости даже диски Blu-Ray. Такая память, ко всему прочему, еще и энергонезависимая, то есть для хранения информации ей не требуется источник питания, в отличие от микросхем оперативной памяти, созданных по похожей технологии.


Однако у НАНД-памяти есть один недостаток, в сравнении с другими типами запоминающих устройств. Дело в том, что срок службы этих чипов ограничен определенным количеством циклов перезаписи (шагов чтения/записи информации в ячейках). В среднем количество read-write cycles равно 30 000 (зависит от типа чипа памяти). Кажется, это невероятно много, но на самом деле это равно примерно 5 годам интенсивного использования. Впрочем, даже если ограничение будет достигнуто, флешкой можно будет продолжать пользоваться, но только для считывания данных. Кроме того, вследствие своей природы, NAND-память очень уязвима к перепадам электричества и электростатическим разрядам, так что держите её подальше от источников подобных опасностей.

Контроллер
Под номером 2 на рисунке в начале статьи находится крохотная микросхема — контроллер, инструмент связи между флеш-памятью и подключаемыми устройствами (ПК, телевизорами, автомагнитолами и пр.).


Контроллер (иначе называется микроконтроллер) представляет собой миниатюрный примитивный компьютер с собственным процессором и некоторым количеством RAM, используемыми для кэширования данных и служебных целей. Под процедурой обновления прошивки или BIOS подразумевается как раз обновление ПО микроконтроллера. Как показывает практика, наиболее частая поломка флешек — выход из строя контроллера.

Кварцевый резонатор
Данный компонент представляет собой крохотный кристалл кварца, который, как и в электронных часах, производит гармонические колебания определенной частоты. Во флеш-накопителях резонатор используется для связи между контроллером, NAND-памятью и дополнительными компонентами.

Эта часть флешки также подвержена риску повреждения, причем, в отличие от проблем с микроконтроллером, решить их самостоятельно практически невозможно. К счастью, в современных накопителях резонаторы выходят из строя относительно редко.

USB-коннектор
В подавляющем большинстве случаев в современных флешках установлен разъем USB 2.0 типа A, ориентированный на прием и передачу. В самых новых накопителях используется USB 3.0 типа А и типа C.

Дополнительные компоненты

Кроме упомянутых выше основных составляющих запоминающего flash-устройства, производители нередко снабжают их необязательными элементами, такими как: светодиод-индикатор, переключатель защиты от записи и некоторые специфические для определенных моделей особенности.

Светодиодный индикатор
Во многих flash-накопителях присутствует небольшой, но довольно яркий светодиод. Он предназначен для визуального отображения активности флешки (запись или считывание информации) или же просто является элементом дизайна.


Этот индикатор чаще всего не несет никакой функциональной нагрузки для самой флешки, и нужен, по сути, только для удобства пользователя или для красоты.

Переключатель защиты от записи
Этот элемент характерен скорее для SD-карт, хотя порой встречается и на запоминающих устройствах USB. Последние нередко используются в корпоративной среде как носители разнообразной информации, в том числе важной и конфиденциальной. Чтобы избежать инцидентов со случайным удалением таких данных, производителями флеш-накопителей в некоторых моделях применяется переключатель защиты: резистор, который при подключении в цепь питания запоминающего устройства не дает электрическому току добираться к ячейкам памяти.


При попытке записать или удалить информацию с накопителя, в котором включена защита, ОС выдаст такое вот сообщение.

Подобным образом реализована защита в так называемых USB-ключах: флешках, которые содержат в себе сертификаты безопасности, необходимые для корректной работы некоторого специфического ПО.

Этот элемент тоже может сломаться, в результате чего возникает досадная ситуация — девайс вроде работоспособен, но пользоваться им невозможно. У нас на сайте есть материал, который может помочь решить эту проблему.

Уникальные компоненты

К таковым можно отнести, например, наличие разъемов Lightning, microUSB или Type-C: флешки с наличием таковых предназначены для использования в том числе на смартфонах и планшетах.

В процессе создания и эволюции средств вычислительной техники было затрачено немало усилий, чтобы устройство могло не только обрабатывать информацию, но и надежно ее хранить, как в процессе вычислений, так и в виде окончательных результатов.

Электронную память можно разделить на два основных вида — энергозависимый и энергонезависимый. Несмотря на то, что энергозависимая память обладает хорошими характеристиками по скорости чтения/записи, ее содержимое при выключении питания безвозвратно теряется. Оборудование, рассчитанное на запоминание и хранение информации после выключения питания, даже и на долгий срок (иногда годы), содержит энергонезависимую память.

Для целей долгосрочного хранения информации в настоящее время используются в основном два вида энергонезависимой памяти — это EEPROM и FLASH (см. рис. 1). И неизменным лидером в производстве микросхем памяти все это время остается компания STMicroelectronics. Рассмотрим варианты EEPROM и FLASH на примере микросхем, выпускаемых этой компанией.

Рис. 1.

Любая микросхема памяти отвечает требованиям быстродействия, времени хранения информации и стоимости. Помимо этого, на выбор того или иного вида памяти влияют несколько моментов:

Порядок запоминания информации:

  • по одному байту информации в нужный момент;
  • большими блоками информации.

Тип доступа к памяти:

  • через параллельную шину;
  • через последовательную шину.

Дополнительные требования:

  • возможность считывать содержимое памяти одновременно с запоминанием информации;
  • обеспечение только авторизованного доступа;
  • большой объем памяти для хранения только данных по наименьшей цене;
  • возможность выполнять код непосредственно из энергонезависимой памяти (XiP).

Существуют микросхемы, которые обладают наилучшими характеристиками, такими как:

  • выполнение кода на месте,
  • высокая степень разбиения массива памяти с множеством поддерживаемых специальных функций (наличие двух портов, защищенный режим работы);
  • энергонезависимая память, но со скоростью, присущей энергозависимым;
  • с напряжением питания меньше 1,8 В;
  • с неограниченным количеством циклов записи/стирания.

Однако цена такого устройства не будет низкой.

Если основным требованием к устройству является хранение ограниченных объемов информации (калибровочные таблицы сенсоров, серийные номера плат, небольшие объемы данных [несколько номеров телефонов для DECT, некоторые параметры статуса, может быть даже несколько строк кода]), то удачное решение для такого случая — EEPROM-память, которая используется почти везде. При этом, как правило, используются EEPROM с последовательным интерфейсом, потому что с параллельным уже практически не выпускаются. Такая память допускает перепрограммирование одного произвольного байта информации без необходимости предварительного стирания. В номенклатуре ST присутствует широкий выбор EEPROM:

  • объемом от 1 Кбит до 1 Мбит;
  • диапазоны питающих напряжений с низким потреблением от 2,5 до 5,5 В и от 1,8 до 5,5 В;
  • три стандартных последовательных шины I 2 C, SPI, MICROWIRE ® ;
  • 1 миллион циклов записи/стирания как стандартное значение;
  • время хранения данных — больше 40 лет;
  • промышленный и автомобильный температурный диапазон;
  • минимальные посадочные площадки, включая MSOP8, TSSOP8 и уникальный по размерам UFDFPN8 (2×3 мм) корпуса.

На табл. 1 приведена номенклатура выпускаемой памяти EEPROM.

Таблица 1. Микросхемы памяти EEPROM

Наименование Тип
интерфейса
Размер, кб Напряжение
питания, В
Диапазон
температур, °С
Типы
корпусов
M24Cxxx I 2 C 1…64 1,8…5,5 2,5…5,5 -40…85
-40…125
DIP8, SO8, MSOP8, TSSOP8
M93Cxxx Microwire 1…16 2,5…5,5 4,5…5,5 -40…125 DIP8, SO8, TSSOP8
M95xxx SPI 1…512 1,8…5,5 2,5…5,5 -40…85
-40…125
SO8, TSSOP8

Если основным требованием является хранение увеличенных объемов информации (большое количество строк кода, большое количество данных), то решение для такого случая — обычная FLASH-память (FLASH NOR). FLASH NOR с параллельным доступом распространена больше, однако последовательная FLASH NOR становится все более популярной в приложениях, где нет специфических требований параллельного доступа (см. рис. 2). Например, производители персональных компьютеров уже выбрали последовательную FLASH NOR, как основную. Эта тенденция распространения последовательной энергонезависимой памяти (EEPROM и FLASH) прослеживается во всех существующих приложениях (так же, как и во многих новых приложениях, например, в цифровой бытовой электронике).

Рис. 2.

Почему последовательный интерфейс?

  • уменьшается стоимость контроллера, меньше выводов;
  • уменьшается занимаемое место на печатной плате, размер корпуса;
  • уменьшается стоимость памяти (в среднем);
  • увеличивается гибкость по плотности памяти (не нужно менять плату, если нужен больший объем памяти, достаточно установить на то же посадочное место кристалл памяти большего объема);
  • содержимое загружается для выполнения в ОЗУ (хранение кода программы).

Основные направления развития последовательной памяти таковы:

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

В табл. 2 представлены доступные типы и семейства памяти NOR FLASH.

Таблица 2. Микросхемы памяти NOR FLASH

Название ядра
микросхемы
Интерфейс Размер, Мб Напряжение
питания, В
Темпера-
турный
диапазон,
°С
Тип
корпуса
M29Fxxx Параллельный 1…32 4,5…5,5 -40…85 PLCC32, TSOP32, SO44
M28Wxxx Параллельный 16…64 2,7…3,6 -40…85 TFBGA48, TSOP48
M25Pxxx Последовательный 0,5…128 2,7…3,6 -40…85 SO8, TSSOP8, SO16, VFQFPN8
M45Pexxx Последовательный 1…16 2,7…3,6 -40…85 SO8, VFQFPN8

Если основным требованием является хранение все увеличивающихся объемов информации, которая в основном представляет собой данные, то для такого случая лучше выбрать FLASH NAND. Эта память предназначена именно для хранения данных. Хранить программный код в такой памяти слишком опасно из-за возможных ошибок при считывании. Такую память обслуживают специальным образом: производят коррекцию ошибок, маркируют негодные области памяти, распределяют нагрузку по страницам в количествах циклов записи/стирания. Как правило, все эти функции возлагаются на ПО управляющего процессора.

Преимущество этого типа памяти — относительная дешевизна в пересчете на объем доступной памяти. ST производит FLASH NAND объемом от 128 Мбит до 8 Гбит и больше, с различными размерами страниц: 528 байт/264 слова и 2112 байт/1056 слов, с независящим от плотности памяти посадочным местом, питанием 1,8 В и 3 В и в разнообразных корпусах.

NAND FLASH используется также и в картах памяти SD, Compact Flash, MMC, которые также выпускает ST.

Отдельно можно отметить особый тип памяти, который выпускается ST — так называемая NVRAM.

NVRAM — это устройства энергонезависимого (благодаря встроенной литиевой батарее) статического ОЗУ — устройство ZEROPOWER co всеми присущими ему свойствами такими, как скорость записи и неограниченный ресурс (семейство М48Z). Батарея соединяется с корпусом микросхемы посредством технологии SNAPHAT ® — инновационного и дешевого решения для поверхностного монтажа продуктов компании ST.

Кроме этого ST выпускает по той же технологии устройства TIMEKEEPER, которые имеют емкость памяти от 1 кбит до 4 Мбит и включают в себя еще и энергонезависимые часы реального времени (семейство М48Т). Имеются также функционально насыщенные TIMEKEEPER Supervisors, предлагающие такие полезные функции как RTC, POR/LVD, Power-Fail Warning, Battery Monitor, Battery Switchover и Write Protection.

С полным перечнем предлагаемых ST микросхем памяти можно ознакомиться на сайте: http://www.st.com/stonline/products/families/memories/memory/index.htm .

Получение технической информации, заказ образцов, поставка —
e-mail:

Датчик движения широкого применения

Компания STMicroelectronics расширила линейку датчиков движения новым двухосевым линейным акселерометром с цифровым выходом. Микромощный миниатюрный датчик LIS202DL, обладающий интеллектуальными функциями, предназначен для широкого использования, как в бытовой технике, так и для индустриальных применений.

Интеллектуальными возможностями акселерометр обладает благодаря встроенной в датчик интегральной схеме и фильтру высокой частоты, позволяющим реагировать и различать воздействие — одинарное или двойное прикосновение, определять движение (перемещение, поднятие). LIS202DL позволяет, например, отключить некстати звонящий в кармане телефон, не доставая его — одним касанием руки.

Подстраиваемые высокочастотные фильтры могут быть настроены на мониторинг вибрации или на активирование необходимых функций устройства через движение. Возможность реализации заданных функций по внешнему воздействию не зависит от того, в каком положении будет находиться исследуемый объект в момент измерений.

Датчик ST со встроенной функцией определения движения можно использовать для прекращения подачи энергии в устройство, которое может включаться или выключаться после передвижения (например, пульт ДУ).

Цифровой выход, реализованный в виде стандартных интерфейсов SPI/I 2 C (можно выбирать), делает датчик эффективным в использовании и легко интегрируемым в систему.

LIS202DL помещен в миниатюрный пластиковый корпус размерами 5х3х0,9 мм, который можно разместить практически в любом месте, ограниченном малыми размерами.

Всем доброго дня!
Сегодняшняя статья положит начало новому, небольшому циклу статей, посвященному хранению информации, различным типам памяти, способам записывания/считывания информации и всему, что с этим связано 😉 И начнем мы с устройства хорошо нам всем знакомой Flash-памяти.

Что из себя вообще представляет Flash-память? Да просто обычная микросхема, ничем внешне не отличающаяся от любой другой. Поэтому может возникнуть резонный вопрос – а что там внутри и как вообще происходят процессы сохранения/считывания информации.

Итак, сердцем многих устройств памяти является полевой транзистор с плавающим затвором. Гениальнейшее изобретение 70-х годов 20-го века. Его отличие от обычных полевых транзисторов заключается в том, что между затвором и каналом, прямо в диэлектрике, расположен еще один проводник – который и называют плавающим затвором. Вот как все это выглядит:

На рисунке мы видим привычные нам сток-исток-затвор, а также расположенный в диэлектрике дополнительный проводник. Давайте разберемся как же это устройство работает.

Создадим между стоком и истоком разность потенциалов и подадим положительный потенциал на затвор. Что тогда произойдет? Правильно, через полевой транзистор, от стока к истоку потечет ток. Причем величина тока достаточно велика для того, чтобы “пробить” диэлектрик. В результате этого пробоя часть электронов попадет на плавающий затвор. Отрицательно заряженный плавающий затвор создает электрическое поле, которое начинает препятствовать протеканию тока в канале, в результате чего транзистор закрывается. И если отключить питание транзистора, электроны с плавающего затвора никуда не денутся и его заряд останется неизменным на долгие годы.

Но, конечно же, есть способ разрядить плавающий затвор. Для этого надо всего лишь подать на “основной” затвор напряжение противоположного знака, которое и “сгонит” все электроны, в результате чего плавающий затвор останется не заряженным.

Собственно так и происходит хранение информации – если на затворе есть отрицательный заряд, то такое состояние считается логической единицей, а если заряда нет – то это логический ноль.

С сохранением информации разобрались, осталось понять как нам считать информацию из транзистора с плавающим затвором. А все очень просто. При наличии заряда на плавающем затворе его электрическое поле препятствует протеканию тока стока. Допустим при отсутствии заряда мы могли подавать на “основной” затвор напряжение +5В, и при этом в цепи стока начинал протекать ток. При заряженном плавающем затворе такое напряжение не сможет заставить ток течь, поскольку электрическое поле плавающего затвора будет ему мешать. В этом случае ток потечет только при напряжении +10В (к примеру =)). Таким образом, мы получаем два пороговых значения напряжения. И, подав, к примеру +7.5В мы сможем по наличию или отсутствию тока стока сделать вывод о наличии или отсутствии заряда на плавающем затворе. Вот таким образом и происходит считывание сохраненной информации.

Как все это связано с Flash-памятью? А очень просто – полевой транзистор с плавающим затвором является минимальной ячейкой памяти, способной сохранить один бит информации. И любая микросхема памяти состоит из огромного количества расположенных определенным образом транзисторов. И вот теперь пришло время рассмотреть основные типы Flash-памяти. А именно я бы хотел обсудить NOR и NAND память.

Оба этих типа памяти построены на основе транзисторов с плавающим затвором, которым мы сегодня уделили немало времени) А принципиальное отличие состоит в том, каким образом соединены эти транзисторы.

Конструкция NOR использует двумерную таблицу проводников. Проводники называют линией битов и линией слов. Все стоки транзисторов подключаются к линии битов, а все затворы к линии слов. Рассмотрим пример для лучшего понимания.

Пусть нам надо считать информацию из какой-то конкретной ячейки. Эта ячейка, а точнее этот конкретный транзистор, подключен затвором на одну из линий слов, а стоком на одну из линий битов. Тогда мы просто подаем пороговое напряжение на линию слов, соответствующую затвору нашего транзистора и считываем его состояние как в том примере, что мы рассмотрели чуть выше для одной ячейки.

С NAND все несколько сложнее. Если возвращаться к аналогии с массивом, то ячейки NAND-памяти представляют собой трехмерный массив. То есть к каждой линии битов подключен не один, а сразу несколько транзисторов, что в итоге приводит к уменьшению количества проводников и увеличению компактности. Это как раз и является одним из главных преимуществ NAND-памяти. Но как же нам считать состояние определенного транзистора при такой структуре? Для понимания процесса рассмотрим схему:

Как видно из схемы, одна линия битов соответствует нескольким ячейкам. И важной особенностью является следующее: если хотя бы один из транзисторов закрыт, то на линии битов будет высокое напряжение. Вот смотрите:

Действительно, низкий уровень на линии битов будет только тогда, когда вся цепочка транзисторов окажется открытой (вспоминаем курс, посвященный полевым транзисторам 😉).

С этим вроде бы понятно, возвращаемся к нашему вопросу – как же считать состояние конкретного транзистора? А для этого недостаточно просто подать на линию слов (на затвор транзистора) пороговое напряжение и следить за сигналом на линии битов. Необходимо еще чтобы все остальные транзисторы были в открытом состоянии. А делается это так – на затвор нашего транзистора, состояние которого нам нужно считать, подается пороговое напряжение (как и в случае с NOR-памятью), а на затворы всех остальных транзисторов в этой цепочке подается повышенное напряжение, такое чтобы независимо от состояния плавающего затвора транзистор открылся. И тогда считав сигнал с линии битов мы узнаем в каком состоянии интересующий нас транзистор (ведь все остальные абсолютно точно открыты). Вот и все)

Такая вот получилась статейка сегодня) Разобрались мы с принципом работы и основными типами Flash, а также с устройством и принципом работы NAND и NOR-памяти. Надеюсь, что статья окажется полезной и понятной, до скорых встреч!