Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема со StrataFlash
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
AndreiUS
Подскажите, пожалуйста, кто работал с flash памятью типа StrataFlash(в моем случае JS28F256P30B). Никак не получается записать/считать данные. Что делаю при подаче питания:
1. Даю команду 60h на разблокирование 0-блока
2. Разблокирую 0-ой блок командой D0
3. Смотрю на выходы flash, на них появляется 0x0080 (значит вроде бы все хорошо)
4. Далее программирую конфигурационный регистр RCR для синхронного чтения слова данных, даю команды 60h, затем 03h
5. Смотрю на выходы flash, на них одни нули, 0x0000
Дальнейшая запись в память (в нулевой блок) или чтение из нее - результата не приносят, на выходах нули.
Пытался после разблокирования блока его стирать, командой erase, но опять же результата нет.
В чем подвох???
Zwerg_nase
Цитата(AndreiUS @ Apr 26 2012, 11:29) *
Подскажите, пожалуйста, кто работал с flash памятью типа StrataFlash(в моем случае JS28F256P30B). Никак не получается записать/считать данные. Что делаю при подаче питания:
1. Даю команду 60h на разблокирование 0-блока
2. Разблокирую 0-ой блок командой D0
3. Смотрю на выходы flash, на них появляется 0x0080 (значит вроде бы все хорошо)
4. Далее программирую конфигурационный регистр RCR для синхронного чтения слова данных, даю команды 60h, затем 03h
5. Смотрю на выходы flash, на них одни нули, 0x0000
Дальнейшая запись в память (в нулевой блок) или чтение из нее - результата не приносят, на выходах нули.
Пытался после разблокирования блока его стирать, командой erase, но опять же результата нет.
В чем подвох???

Попробуйте выполнить между шагом 3 и 4 команду Clear Status Register (0x50). Должно помочь.
AndreiUS
Цитата(Zwerg_nase @ Apr 27 2012, 11:52) *
Попробуйте выполнить между шагом 3 и 4 команду Clear Status Register (0x50). Должно помочь.


Спасибо за помощь! Кажется разобрался. Добавил, как Вы и советовали, команду Clear Status Register, а также добавил проверку 7-го бита статус-регистра(до этого не использовал).
В итоге получился следующий набор команд:
1. Читаю статус регистр, жду когда SR.7==1
2. Разблокирую нужный мне блок
3. Читаю статус регистр, жду когда SR.7==1
4. Стираю соответствующий блок
5. Читаю статус регистр, жду когда SR.7==1
6. Очищаю статус регистр
7. Записываю 16 слов, после каждой записи жду когда SR.7==1
8. Дальше читаю 16 слов командой "чтение массива"
В итоге запись/чтение работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.