Не могу написать в spi flash


9

Ну, я застрял на этом некоторое время, может быть, 2-3 недели на данный момент. Я просто не уверен, что я делаю неправильно. Я пытаюсь записать в эту часть spi flash , и теперь я просто запускаю подпрограммы для стирания, записи и чтения, чтобы попытаться изолировать его, но пока что не повезло. Конечно, я решил кучу ошибок по пути ...

В любом случае, моя линия WP завязана на плате, и я замедлил такт до 200 кГц, затем я запускаю процедуру стирания, и это выглядит так:

введите описание изображения здесь Сначала я проверяю идентификатор только для отладки, это команда 9F, затем я устанавливаю WREN с помощью команды 06, C7 - это полное стирание чипа, а затем я проверяю бит состояния с помощью 05, и он сбрасывается. Время стирания чипа составляет всего 35 мс.

Теперь я перезагружаю свой код и пытаюсь написать:

введите описание изображения здесь Сначала я установил WREN с 06, проверил состояние, чтобы убедиться, что WREN установлен с 05, затем отправил команду программы страницы 02 на адрес 0x000000. Вы можете видеть, что я пишу deadcafe как первые несколько битов. Также здесь не показано, что после завершения записи (одна страница или 256 байт) я отправляю команду 0x04, чтобы отключить WREN. Я заметил это, и я установил последние четыре байта моего буфера страниц равными 0xAA, 0x55, 0xAA, 0x55, и я видел их как раз перед тем, как CS поднялся до высокого уровня.

Теперь остановите код перезагрузки и попробуйте запустить цикл чтения: введите описание изображения здесь отправьте 0x03 в качестве команды чтения и 0x000000 в качестве адреса, и ... все 0xFF верните с устройства.

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


10
И ... я понял это. Если бы у меня был доллар за каждый раз, я что-то выяснил после того, как, наконец, стал достаточно отчаянным, чтобы отправлять куда-нибудь за помощью. Оказывается, есть еще одна команда 0x98, называемая Global Unlock, которая не упоминается в разделах о включении записи или программировании ... В любом случае, добавьте это перед моей командой WREN, и это сработало. извините за беспокойство.
растерян

10
Добавьте свой комментарий в качестве ответа и примите его.
геометрикал

Согласившись с @geometrikal, вы должны ответить на свой вопрос. У меня не было ничего, кроме проблем с интерфейсом PIC SPI; по точно таким же причинам: документация.
User.1 22.02.15

2
Привет! Вы опубликовали хороший вопрос около года назад, а затем опубликовали хороший ответ в комментариях. Но вопрос все еще появляется в верхней части списка «Без ответа»! Пожалуйста, скопируйте ваши комментарии в ответ и отметьте его как "Принятый". Таким образом , это будет правильно управлять и мы можем upvote вашего ответа :)
bitmack

1
@confused, пожалуйста, опубликуйте свой ответ и пометьте его как ответивший, чтобы мы могли закрыть вопрос. Спасибо
скачок напряжения

Ответы:


3

Я просто ненавижу, что это все еще в верхней части списка без ответа, поэтому я собираюсь ответить.

Как указано в комментариях «confused», есть команда «Global Unlock», которую необходимо выполнить перед записью во флэш-часть.


1
Вы должны принять свой ответ, в противном случае этот вопрос все равно будет помечен как «без ответа».
Этьен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.