Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: проблемы с MT29F4G01AAADD
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
Грендайзер
Здравствуйте. Работаю с микросхемой памяти 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). Не пойму, в чём дело?! 05.gif
gerber
Команда 02h адресует данные внутри страницы (page), то есть валидны 0-2111 байт (2048+64), остальные 2112-4096 адреса считаются "out of bounds" и попытка записи в них, естественно, дает ошибку.
Вы же последовательностью 02h,08h,40h как раз и задаете 2112 адрес внутри страницы, который выходит за диапазон.
Грендайзер
Да, спасибо большое за ответ. Разобрался сразу, после того, как написал сообщение (хорошая мысля приходит опосля) laughing.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.