Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclon III in AS mode
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Sergey Makarov
Добрый всем день!
Просвятите пожалуйста новичка, не могу разобраться с программированием CyclonaIII в AS mode. Сваял схему позволяющую программировать Циклон через JTAG и в AS mode (поставил 2 разъема IDC, вобщем все как в даташите на Циклон). Поставил SPI флеш 25P16VP в качестве Serial Configuration Device. В итоге в режиме JTAG все программится, флеш записывается и читается, а при переходе в режим AS mode, флешка не видится в QurtusII. Смущает одно. В любом из даташитов акцентируется внимание на то что для Serial Configuration Device возможно использование ТОЛЬКО EPCS1 EPCS4 EPCS16 EPCS64 производства Altera, да и в списке доступных устройств QurtusII предлагает только эти устройства.
У меня в режиме AS Mode возникает ошибка Error: Can't recognize silicon ID for device 1, типа ID не совпадает с нужным, хотя по даташиту на обе флешки ID у них одинаковый. Отсюда у меня возникли следующие вопросы:
1. Могу я программить циклон используя флешку стороннего производителя в AS mode? Кто нибудь уже так делал?
2. Правильно ли я делаю, используя для этих целей QUARTUS, или надо использовать флешлоадер какой нибудь?
3. Чем нужно программировать в AS mode? USB Byteblaster для этих целей подходит?
4. Возможно ли использование флешки 25P80VP (с 8 мегабитами), если ее ID не совпадает ни с одним из разрешенных EPCS1 EPCS4 EPCS16 EPCS64 у которых 1, 4, 16, 64 мегабита соответственно. Возможно ли в таком случае подменить ID?, ну или внести данный ID в список разрешенных?
Stewart Little
1. Можете. Делали такое неоднократно с Numonyx'овскими (бывш. STM'овскими) M25P16.
2. Правильно.
3. USB Byteblaster - это что за зверь??? Бывает или USB Blaster (что на USB), или Byteblaster (что на LPT). USB Blaster для этих целей годится. Проверьте только, не пробиты ли у него выходы NCS и NCE. Если работаете с LPT, то тогда нужен Byteblaster2 (Byteblaster MV здесь не годится. т.к. не поддерживает AS-режим).
4. Тоже возможно, но с извращениями. Для этого нужно использовать FlashProgrammer из NiosII EDS, делать для него override-файл и грузить флэшку по JTAG'у (а-ля SFL, но для этого еще нужно будет сделать ниосовский проект smile.gif ).
Sergey Makarov
Извиняюсь что ввел в заблуждение, не знаю о чем думал когда писал, конечно же USB-Blaster:)

Значит все делаю правильно, только ничего не работаетwink.gif Тогда ошибка аппаратная, будем искать.

Спасибо. Stewart Little, за развернутый ответ.

Еще раз уточняю. USB-Blaster подключаю к разъему программирования flash памяти, в настройках программатора выбираю режим Active Serial programming, выбираю устройство EPCS16. Загружаю программу. Должно так работать?
sazh
Цитата(Sergey Makarov @ Jan 28 2010, 13:33) *
Еще раз уточняю. USB-Blaster подключаю к разъему программирования flash памяти, в настройках программатора выбираю режим Active Serial programming, выбираю устройство EPCS16. Загружаю программу. Должно так работать?


Резистор между nce FPGA и GND есть?
Sergey Makarov
Цитата(sazh @ Jan 28 2010, 13:36) *
Резистор между nce FPGA и GND есть?

ага, есть. Вот схемка. Может увидите то, что я по невнимательности мог пропустить.
Stewart Little
Цитата(Sergey Makarov @ Jan 28 2010, 13:33) *
Должно так работать?

Если ПЗУшку подключили правильно, и Silicon ID для нее совпадает с EPCS16 (как Вы утверждаете), то работать должно.
Sergey Makarov
Цитата(Stewart Little @ Jan 28 2010, 14:57) *
Если ПЗУшку подключили правлиьно, и Silicon ID для нее совпадает с EPCS16 (как Вы утверждаете), то работать должно.

согласно даташиту silicon ID идентичен у обоих, код команды чтения ID так же идентичен. В том что ПЗУ подключена правильно, процентов на 95 уверен, так как плисина программится в режиме JTAG indirect, при перезапуске считывает конфигурацию из нее, и работает согласно алгоритму заложенному в ней.
Stewart Little
Цитата(Sergey Makarov @ Jan 28 2010, 14:56) *
ага, есть. Вот схемка. Может увидите то, что я по невнимательности мог пропустить.

А за каким х... у Вас там на JTAG'овским разъеме NCE подключено к питанию???


Цитата(Sergey Makarov @ Jan 28 2010, 15:03) *
плисина программится в режиме JTAG indirect

в JIC плисина программируется??? 07.gif Или все-таки ПЗУшка?
Sergey Makarov
Цитата(Stewart Little @ Jan 28 2010, 15:06) *
А за каким х... у Вас там на JTAG'овским разъеме NCE подключено к питанию???

NCE же на земле сидит через резистор... или я чето не понимаю.

в JIC плисина программируется??? 07.gif Или все-таки ПЗУшка?

JIC заливается же во флешку, таким образом ПЛИСКА выполняет алгоритм считанный из флеш.
Stewart Little
Скорее всего косяк на Вашей плате (кз, непропай и т.п.), или выбит какой-то из разрядов NCE, NCS, DATAOUT бластера.
Sergey Makarov
Цитата(Stewart Little @ Jan 28 2010, 15:20) *
Скорее всего косяк на Вашей плате (кз, непропай и т.п.), или выбит какой-то из разрядов NCE, NCS, DATAOUT бластера.


ВСЕ!!! Заработало!!! Проблема была в JTAGе, он у нас самодельный, выхода JTAG гальванически изолированы от программируемой платы. Для изоляции использовался ADUM, у которого 4 изолированных порта. Так как девайс изначально предназанчался для программирования через JTAG (выведены только TMS, TCK, TDI, TDO), а вывода nCE, DATAout и nCS не были выведены на разъем программированияsmile.gif При использовании родного альтеровского USBBlastera, флешка прошилась. Все. Stewart Little, огромное спасибо за оказанную помощь.
dvladim
Цитата(Stewart Little @ Jan 28 2010, 12:31) *
4. Тоже возможно, но с извращениями. Для этого нужно использовать FlashProgrammer из NiosII EDS, делать для него override-файл и грузить флэшку по JTAG'у (а-ля SFL, но для этого еще нужно будет сделать ниосовский проект smile.gif ).

Я правильно понял, что идентификатор флешки проверяется Квартусом при программировании и не проверяется FPGA при конфигурировании? Т.е. проблема в том чтобы записать прошивку во флеш, а при загрузке ID роли не играет?
Alex11
Не знаю, не знаю. По крайней мере, при загрузке ID считывается. Игнорируется ли он потом или от него какая-то часть должна совпасть - не проверял.
Sergey Makarov
Цитата(dvladim @ Jan 28 2010, 20:05) *
Я правильно понял, что идентификатор флешки проверяется Квартусом при программировании и не проверяется FPGA при конфигурировании? Т.е. проблема в том чтобы записать прошивку во флеш, а при загрузке ID роли не играет?

я так понял, что при загрузке с флеш, ID уже плиской не проверяется, иначе не работала бы 8мимегабитная флешка в режиме indirect JTAG, когда ее JICом прошиваешь.
Stewart Little
Цитата(Sergey Makarov @ Jan 29 2010, 08:34) *
...иначе не работала бы 8мимегабитная флешка в режиме indirect JTAG, когда ее JICом прошиваешь.

Это уже из другой оперы. Вопрос не про прошивку флэшки, а про конфигурацию ПЛИС.
Что касается прошивки, то начнем с того, что jic-файл для флэшки нестандартного объема не создать (при создании jic'а можно выбирать только из станадартных EPCS'ок).
А если для прошивки нестандартной флэшки использовать FlashProgrammer из NiosII EDS, то для него нужно врукопашную делать override-файл, где в явном виде нужно указывать Manufacturer ID, Memory Type и Memory Capacity (т.е. идентификационную информацию), а также размер сектора и кол-во секторов для интересующей флэшки.
Только после этого флэшка распознается и может быть прошита.
Sergey Makarov
Цитата(Stewart Little @ Jan 29 2010, 11:31) *
Это уже из другой оперы. Вопрос не про прошивку флэшки, а про конфигурацию ПЛИС.
Что касается прошивки, то начнем с того, что jic-файл для флэшки нестандартного объема не создать (при создании jic'а можно выбирать только из станадартных EPCS'ок).
А если для прошивки нестандартной флэшки использовать FlashProgrammer из NiosII EDS, то для него нужно врукопашную делать override-файл, где в явном виде нужно указывать Manufacturer ID, Memory Type и Memory Capacity (т.е. идентификационную информацию), а также размер сектора и кол-во секторов для интересующей флэшки.
Только после этого флэшка распознается и может быть прошита.


Вот только что попробовал! Поставил на плату 8ми мегабитную флешку, сконвертировал JIC файл для проекта, указав устройство для конфигурации EPCS16, воткнул программатор в JTAG разъем, и прошил флешку. Qurtus выдал лог:
Info: Started Programmer operation at Fri Jan 29 15:35:02 2010
Info: Configuring device index 1
Info: Device 1 contains JTAG ID code 0x020F10DD
Info: Configuration succeeded -- 1 device(s) configured
Info: Device 1 silicon ID is 0x14
Info: Erasing ASP configuration device(s)
Info: Blank-checking device(s)
Warning: The attached JTAG Indirect Confgiuration File (.jic) or Programming Object File (.pof), 16Mb, is larger than the Serial Flash device, 8Mb at device 1 -- Only the first 8Mb JTAG Indirect Configuration File or Programming Object File data will be programmed to the device
Info: Programming device(s)
Info: Performing CRC verification on device(s)
Info: Successfully performed operation(s)
Info: Ended Programmer operation at Fri Jan 29 15:35:15 2010

Как видим все великолепно прошилось, но с небольшим предупреждением.
dvladim
Цитата(Stewart Little @ Jan 29 2010, 11:31) *
Это уже из другой оперы. Вопрос не про прошивку флэшки, а про конфигурацию ПЛИС.
Что касается прошивки, то начнем с того, что jic-файл для флэшки нестандартного объема не создать (при создании jic'а можно выбирать только из станадартных EPCS'ок).
А если для прошивки нестандартной флэшки использовать FlashProgrammer из NiosII EDS, то для него нужно врукопашную делать override-файл, где в явном виде нужно указывать Manufacturer ID, Memory Type и Memory Capacity (т.е. идентификационную информацию), а также размер сектора и кол-во секторов для интересующей флэшки.
Только после этого флэшка распознается и может быть прошита.

Это все понятно, но означает ли это, что FPGA при включении и начале конфигурирования не проверяет ID флешки? Или там проверяются какие-то биты в ID или еще как-то?
AlexanderX
Мы используем у себя вообще Atmel at25df041a (512KB). У этой флешки команда считывания ID отличается от EPSов. Альтера (у нас CycloneIII) сначала считывает ID. Если ID не совпал, то загрузка не производится. Для того, чтобы анализ ID не производился нужно в утилите "Convert programming files" при создании *.pof файла во вкладке "Advanced" ПРЯМО указать "Disable EPCS ID check". При этом создавемый файл отличается несколькими битами в заголовке.
У нас используется прямое программирование FLASH собственным программатором.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.