NAND flash повторяет последнюю команду

Обсуждаем цифровые устройства...
Ответить
Родился
Аватара пользователя
Сообщения: 8
Зарегистрирован: Вс июл 21, 2013 11:09:29
Откуда: WwW

Сообщение DeXP »

Надо сделать чтение/запись флэш-памяти. Реализовал через ногодрыг PIC-контроллера. Каждый дрыг передаётся по USB, так что задержки слоновые.

Для тестирования в соответствии с даташитом памяти реализовал команду Read ID (Get electronic signature) - 90h. Например, для памяти Samsung 734 K9GAG08U0M возвращает следующие 5 байт: ec-d5-14-b6-74. Вроде бы похоже на правду, т.к. EC - это samsung, также здесь указано, что памяти гигабайт.

Далее попытка чтения (00h). Один цикл на установку команды, 4 цикла адреса, далее для примера 20 циклов чтения. Если перед чтением было вызвано Read ID, то чтение будет каждый раз возвращать данные Read ID. Т.е.: ec-d5-14-b6-74- ec-d5-14-b6-74... Также тестировал на Hynix HY27UV08BG5A и Samsung 616 K9L8G08U0M. Ведут себя так же

Возможно пропускаю что-то принципиальное? Надо ли указывать какой-то маркер завершения команды? Почему новая команда может не устанавливать? C flash работаю впервые
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1119
Зарегистрирован: Ср май 01, 2013 22:37:08
Откуда: Украина

Сообщение Alter Ego »

А второй байт команды?
Изображение
Реклама
Родился
Аватара пользователя
Сообщения: 8
Зарегистрирован: Вс июл 21, 2013 11:09:29
Откуда: WwW

Сообщение DeXP »

Alter Ego писал(а):А второй байт команды?
Для Samsung 616 K9L8G08U0M нужен. Именно для него всё изначально реализовывал. Ведёт себя так же (кстати, в не зависимости, есть 30h или нету о_О). Для более свежего самсунга и для хьюникса второй байт команды по даташиту не нужен

Если первой командой после подключение было чтение, то возвращает либо ноль, либо 48, либо ещё какое-либо число для каждой ячейки. Никак не FF. После операции read ID возвращает данные Read ID. Помогает только обесточить устройство и включить секунд через 5
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1119
Зарегистрирован: Ср май 01, 2013 22:37:08
Откуда: Украина

Сообщение Alter Ego »

А почему 4 цикла адреса, а не 5?
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Аватара пользователя
Сообщения: 8
Зарегистрирован: Вс июл 21, 2013 11:09:29
Откуда: WwW

Сообщение DeXP »

Alter Ego писал(а):А почему 4 цикла адреса, а не 5?
Аналогично. Для новых микросхем нужно 4. Для этой 5. Может в самой реализации циклов ошибся? Да вроде ж копипаста с Read ID...
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1119
Зарегистрирован: Ср май 01, 2013 22:37:08
Откуда: Украина

Сообщение Alter Ego »

DeXP писал(а):Может в самой реализации циклов ошибся?
Возможно...
Реклама
Родился
Аватара пользователя
Сообщения: 8
Зарегистрирован: Вс июл 21, 2013 11:09:29
Откуда: WwW

Сообщение DeXP »

Alter Ego писал(а):
DeXP писал(а):Может в самой реализации циклов ошибся?
Возможно...
Там легко перепутать нисходящий/восходящий фронт WE/RE. Но если перепутан фронт, то возвращает нули. WE дёргается, когда пишу адрес. RE - когда читаю данные. Вроде ничего не перепутал(
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1119
Зарегистрирован: Ср май 01, 2013 22:37:08
Откуда: Украина

Сообщение Alter Ego »

Похоже, незащелкивается команда, что-то с CLE и WE.
Родился
Аватара пользователя
Сообщения: 8
Зарегистрирован: Вс июл 21, 2013 11:09:29
Откуда: WwW

Сообщение DeXP »

Alter Ego писал(а):Похоже, незащелкивается команда, что-то с CLE и WE.
Делаю:
CLE=1
WE=0
IO=00h
WE=1
CLE=0

Эта логика правильна? После каждой команды приличные задержки
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1119
Зарегистрирован: Ср май 01, 2013 22:37:08
Откуда: Украина

Сообщение Alter Ego »

Да, команда должна защелкиваться. Почему не хочет - не понятно.
Родился
Аватара пользователя
Сообщения: 8
Зарегистрирован: Вс июл 21, 2013 11:09:29
Откуда: WwW

Сообщение DeXP »

Alter Ego писал(а):Да, команда должна защелкиваться. Почему не хочет - не понятно.
Проверил ещё раз все ноги - именно CLE дёргает нестабильно. Спасибо, навели на мысль. Буду исправлять
Контактная информация:
Ответить

Вернуться в «Цифровая техника»