Здравствуйте. Работаю с микросхемой памяти MT29F4G01AAADD. Наисал программку для ПК на которой несколько кнопок : ID, Write_enable, Write_disable, reset, program_load, program_execute, erase и get_features_C0h которые соответственно посылают запрос на чтение ID, разрешает запись, запрещает, сбрасывает устройство, программтруют кэш и производят запись его содержимого в основной массив, а так же считывают регистр состояния по адресу C0h. При нажатии на кнопку, соответствующая команда транслируется на контроллер по UART и дальше по SPI на устройство. Запрос ID проходит нормально (устройство передаёт значения 0x2C и 0x32 что соответствует числам в даташите). Далее запускаю команду разрешения записи WRITE ENABLE (06h). Чинаю данные с регистра состояния (GET FEATURES (0Fh) по адресу C0h). Устройство отсылает в ответ 2 (что значит, что бит WEL выставился в 1 что то же соответствует данным в даташите). Когда отсылаю команду WRITE DISABLE (04h) то бит WEL выставился в 0 что то же верно. Далее отсылаю WRITE ENABLE (06h), потом читаю регистр статуса - там 2, т.е. всё хорошо. Далее выполняю команду PROGRAM LOAD (02h), отсылая побайтно следующие данные : 0x02 - номер команды, 0x08, 0x40 - 2112-ая страница, блок № 0, 0x55 - данные для записи. Далее команду PROGRAM EXECUTE (10h) : 0x10 - номер команды, 0x04, 0x20, 0x00 - 2112-ая страница, блок № 0, 6 бит значение которых не важно. Читаю регистр статуса, память шлёт число 8, что значит, что P_Fail - встал в 1, что означает Program fail (т.е. ошибка записи). Примерно таже история при выполнение команды BLOCK ERASE (D8h). Не пойму, в чём дело?!