реклама на сайте
подробности

 
 
> EPCQ и Serial Flash Controller II
djhall
сообщение Jun 26 2018, 07:45
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 29-04-06
Пользователь №: 16 608



Пытаюсь записать данные с помощью мастера непосредственно в EPCQ32, используя Serial Flash Controller II
Если я правильно понимаю, то сначала нужно стереть сектор. Как указанно в документации Embedded Peripherals IP User Guide -> 16. Intel FPGA Serial Flash Controller and Controller II Core просто записываю 0x02 в регистр FLASH_MEM_OP чтобы стереть нулевой сектор. В результате ничего не происходит, сектор значений не меняет.
Делаю я это с помощь System Console и JTAG to Avalon Master Bridge с помощью команды:
master_write_32 $claim_path $offset $value

Подскажите в чём может быть проблема?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
doom13
сообщение Jun 26 2018, 09:52
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Можете попробовать ядро Altera ASMI Parallel / Parallel II, оно для работы без Niosa.

Цитата(djhall @ Jun 26 2018, 11:58) *
В системе не будет процессора, будет самописный компонент, который должен записывать данные в EPCQ32 являясь мастером. А отлаживаю я пока с использованием System Console и JTAG to Avalon Master Bridge, т.е. JTAG to Avalon Master Bridge пока является мастером.

Зачем тогда вообще рассматривать Альтеровский контроллер, тут нужен просто SPI/QSPI и далее шлёте нужные для памяти команды и данные.
Go to the top of the page
 
+Quote Post
djhall
сообщение Jun 26 2018, 12:58
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 29-04-06
Пользователь №: 16 608



Цитата(doom13 @ Jun 26 2018, 13:52) *
Можете попробовать ядро Altera ASMI Parallel / Parallel II, оно для работы без Niosa.


Зачем тогда вообще рассматривать Альтеровский контроллер, тут нужен просто SPI/QSPI и далее шлёте нужные для памяти команды и данные.


"просто SPI/QSPI" это Generic QUAD SPI Controller II ну если так то по описанию они идентичны. Я так понимаю, что в ячейку памяти нельзя записать 1 если там 0, её нужно стереть. А вот стереть не получается.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 26 2018, 13:32
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(djhall @ Jun 26 2018, 15:58) *
"просто SPI/QSPI" это Generic QUAD SPI Controller II ну если так то по описанию они идентичны. Я так понимаю, что в ячейку памяти нельзя записать 1 если там 0, её нужно стереть. А вот стереть не получается.

Всё верно, надо стереть, потом можно записать.
Только Generic QUAD SPI Controller II не равно EPCQ Flash controller, он не знает протокол комманд для EPCQ.
Т.е. Вы отправляете по SPI комманду D8h, а флэш не трется?


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
djhall
сообщение Jun 26 2018, 15:42
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 29-04-06
Пользователь №: 16 608



Цитата(doom13 @ Jun 26 2018, 17:32) *
Т.е. Вы отправляете по SPI комманду D8h, а флэш не трется?

Нет.
Я записываю в регистр FLASH_MEM_OP (Offset = 0x03) значение равное 0x02.
В документации Embedded Peripherals IP User Guide -> 16. Intel FPGA Serial Flash Controller and Controller II Core сказано что это команда для стирания сектора. Т.е. я пытаюсь стереть нулевой сектор.
Прикрепленное изображение


Система у меня такая:
Прикрепленное изображение



Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 27 2018, 07:56
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(djhall @ Jun 26 2018, 18:42) *
Я записываю в регистр FLASH_MEM_OP (Offset = 0x03) значение равное 0x02.

Тогда, вероятно, проблема в параметрах offset и value
Код
master_write_32 $claim_path $offset $value


Цитата(djhall @ Jun 26 2018, 18:42) *
Я записываю в регистр FLASH_MEM_OP (Offset = 0x03) значение равное 0x02.

И теперь ещё раз посмотрите чему соответствует Offset = 0x03 в Вашей системе.

P.S. Плюс для master_write_32 оффсет будет не 3, а 12 относительно базового адреса.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 09:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016