Ну, я затримався на цьому деякий час, можливо, 2-3 тижні на цьому етапі. Я просто не впевнений, що я роблю не так. Я намагаюся записати цю частину спі-флеш , і тепер я просто виконую підпрограми, щоб стерти, записати та прочитати, щоб спробувати ізолювати її, але поки що не пощастило. Звичайно, я вирішив купу помилок по дорозі ...
У будь-якому випадку, у мене на WD-лінійці високо прив’язана лінія WP, і я сповільнив годинний шлях до 200 кГц, потім запускаю процедуру стирання, і це виглядає приблизно так:
Спочатку я перевіряю ідентифікатор лише для налагодження, це команда 9F, потім я встановлюю WREN з командою 06, C7 - це ціле стирання мікросхеми, а потім перевіряю біт статусу з 05 і це зрозуміло. Час стирання мікросхем цієї речі становить лише 35 мс.
Тепер я перезавантажую свій код і спробую написати:
Спочатку я встановив WREN з 06, перевірте стан, щоб побачити, що WREN встановлено з 05, це, потім надішліть команду сторінки програми 02 на адресу 0x000000. Ви можете бачити, що я пишу мертвий кафе як перші кілька біт. Також не зображений тут після завершення запису (одна сторінка або 256 байт), я надсилаю команду 0x04, щоб відключити WREN. Я помітив це, і я встановив останні чотири байти буфера сторінки на 0xAA, 0x55, 0xAA, 0x55, і я побачив їх перед тим, як CS підвищиться.
Тепер зупиніть код перезавантаження та спробуйте запустити цикл читання: надішліть 0x03 як команду читання та 0x000000 як адресу, а ... всі 0xFF назад з пристрою.
Я бачу, як пристрій реагує на мій читання і встановлює команди WREN, тому я знаю, що він мене чує, і можу відповісти. Я не знаю, що я роблю неправильно на даний момент. Я думаю, я повернусь до читання даних та спробую деякі речі, але якщо хтось матиме уявлення, я вдячний за допомогу. Це буде ще один розчаровуючий вихідний, який працює над цією справою.