Ну, я застрял на этом некоторое время, может быть, 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, поэтому я знаю, что оно меня слышит и может ответить. Я не знаю, что я делаю не так в данный момент. Я думаю, что я вернусь к чтению таблицы и пробую кое-что, но если у кого-то есть понимание, я буду признателен за помощь. Это готовится к очередным разочаровывающим выходным, работающим над этой вещью.