|
Требуется помощь Cyclone IV, Проблемы с прошивкой EP4CGX110 |
|
|
|
Aug 31 2014, 20:45
|
Группа: Новичок
Сообщений: 7
Регистрация: 28-12-10
Пользователь №: 61 924

|
Доброго времени суток, уважаемые форумчане! Первый раз работаю с 4 циклоном и сразу же проблема с прошиванием... И так, что имеем: EP4CGX110 в корпусе F484, прошивка выбрана PS с микропроцессорного модуля Intel Atom совместно с Intel PCH EG20T, который обеспечивает доступ к портам GPIO, по которым идет прогрузка ПЛИС. MSEL0=0 MSEL1=0 MSEL2=0 MSEL3=+2,5В Загрузка прошивки, по осциллографу, проходит верно, но CONF_DONE не выходит в высокий уровень. ПЛИС откликается (nSTATUS), если дергать nCONFIG. RBF правильно отправляется на ПЛИС. Единственное, что есть непонятного, это подключенные к +3,3В порты TCK, TMS, TDI (почему так - не знаю, я занимаюсь программированием в данном проекте). По плате смотрели осциллографом - сигналы данных и такта до ПЛИС доходят... Почему не прожигается - не понимаю  Вроде бы, уже и паузы делали между выводом ПЛИС в состояние конфигурации, и делали паузы после того, как вся RBF загрузится в ПЛИС, но результата ноль. Может кто что подскажет? Если требуется, то с работы смогу скинуть схему платы и сам код прожига с процессора.
|
|
|
|
|
Sep 1 2014, 05:14
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 26-12-10
Пользователь №: 61 886

|
А вопрос, пуллап на CONF_DONE имеется ли? Вообще схему бы посмотреть конечно.
|
|
|
|
|
Sep 1 2014, 07:45
|
Группа: Новичок
Сообщений: 7
Регистрация: 28-12-10
Пользователь №: 61 924

|
Прикрепил схему подключения ПЛИС. Там выводы сокращенно написаны - CONF->nCONFIG, CNFD->CONFIG_DONE, STAT->nSTATUS. По-поводу тактов: делали 20 пустых - никакого эффекта, увеличивая на 10 тактов довели число пустых до 100 - тоже нет результата
Прикрепленные файлы
MCS.pdf ( 50.78 килобайт )
Кол-во скачиваний: 105
|
|
|
|
|
Sep 1 2014, 08:23
|
Группа: Новичок
Сообщений: 7
Регистрация: 28-12-10
Пользователь №: 61 924

|
Цитата(SM @ Sep 1 2014, 11:50)  Не видно подтяжки на INIT_DONE (без нее, на сколько я помню, CONF_DONE не поднимается). Да и на nCONFIG тоже подтяжки нет... Хотя, подозреваю, что она на другом конце разъема, но, все равно... nCONFIG подтягивается до +3.3В через порт GPIO на самом процессоре. На схеме CONF_DONE и nSTATUS через 10кОм подключены к +3,3В, а не к +1,5В - не глядя кусок перекинул, моя неточность... А INIT_DONE где выведен? Вроде в handbook'e написано, что сигнал внутренний и вывести его наружу нельзя на этом Циклоне... Вроде бы,когда все делали пользовались мануалами Configuration and Remote System Upgrades in Cyclone IV Devices и Cyclone IV device handbook.
|
|
|
|
|
Sep 1 2014, 08:27
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(SM @ Sep 1 2014, 09:47)  А не забыли 16 (или сколько там, не помню уже) пустых тактов на загрузочный клок выдать по окончании передачи битового потока? Потому как CONF_DONE появляется вроде как на такт позже после передачи всего RBF, а INIT_DONE еще через сколько-то там тактов.
Насчет пуллапов вопрос верный, только они обязательно нужны не только на CONF_DONE, а еще и на INIT_DONE, и на nStatus (если где-то забыть, то загрузка не удастся вообще) Импульсы нужны обязательно, чтобы автомат отвечающий за загрузку внутри ПЛИС смог перейти от режима загрузко в пользовательский режим... Фронты импульсов чистые? Пробовали уменьшить частоту? Вообще загрузка от микропроцессора обычно подробна расписана в аппликухах вместе с исходными кодами.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Sep 1 2014, 08:34
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Erepb @ Sep 1 2014, 12:23)  написано, что сигнал внутренний Не, ну если в этой конкретной микрухе это так, то и подтягивать его не надо  Тогда, смотрите, чтобы биты в нужной последовательности шли, и чтобы сигналы были качественными, в смысле согласования, то есть без звона, с нужными уровнями, скоростями нарастания фронтов, и без превышений по звону/выбросам.
|
|
|
|
|
Sep 1 2014, 08:43
|
Группа: Новичок
Сообщений: 7
Регистрация: 28-12-10
Пользователь №: 61 924

|
Цитата(iosifk @ Sep 1 2014, 12:27)  Импульсы нужны обязательно, чтобы автомат отвечающий за загрузку внутри ПЛИС смог перейти от режима загрузко в пользовательский режим... Фронты импульсов чистые? Пробовали уменьшить частоту? Вообще загрузка от микропроцессора обычно подробна расписана в аппликухах вместе с исходными кодами. В течение дня попробую осциллограмму скинуть. Частоту уменьшать не пробовали. Фронты чистые, пробовали как по переднему, так и по заднему фронту тактировать. Так по этой инструкции и написали программу  Пробовали просто ножками GPIO на nCONFIG подавать 0 и 1, чтобы получить ответ от ПЛИС по nSTATUS - работает, отклики правильные, но прошивка не становится... Уже прошивку уменьшили до того, чтобы просто диод загорался - никак... Такая же прошивка на отладочной плате, только прошитая через AS работает корректно. Вот и не знаем уже, что тут может быть еще. Обе бракованные или обе непропаяны - одну даже перекатали, результата пока нет.
|
|
|
|
|
Sep 1 2014, 10:22
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 26-12-10
Пользователь №: 61 886

|
Не знаю, насколько это важно, у Вас на схеме подтяжка к 1.5В, а MSEL к 2.5В (VCCA). В хэндбуке есть такая фраза: Цитата You must connect the pull-up resistor to the same supply voltage as the VCCA supply.
|
|
|
|
|
Sep 1 2014, 10:29
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(Erepb @ Sep 1 2014, 12:23)  А INIT_DONE где выведен? Вроде в handbook'e написано, что сигнал внутренний и вывести его наружу нельзя на этом Циклоне... Вроде бы,когда все делали пользовались мануалами Configuration and Remote System Upgrades in Cyclone IV Devices и Cyclone IV device handbook. Ну, вообще-то в хендбуке написано, что INIT_DONE не внутренний, а опциональный. Он может быть разрешен в "Device and Pin Options". В описании режима Passive Serial про использование INIT_DONE говорится в явном виде: Цитата INIT_DONE is released and pulled high when initialization is complete. The external host device must be able to detect this low-to-high transition which signals the device has entered user mode. When initialization is complete, the device enters user mode. In user mode, the user I/O pins no longer have weak pull-up resistors and function as assigned in your design. INIT_DONE для EP4CGX100CF23 (который FBGA 484) выходит на вывод W8 - см. документ "EP4CGX110 Pin-Outs" : http://www.altera.com/literature/dp/cyclone-iv/EP4CGX110.pdfНу и в Pin Planner'е:
Эскизы прикрепленных изображений
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Sep 1 2014, 11:58
|
Группа: Новичок
Сообщений: 7
Регистрация: 28-12-10
Пользователь №: 61 924

|
Cosworth, не, там на самом деле идет +3.3В, это я ошибся, когда выдрал кусок схемы с другого листа... Цитата(Stewart Little @ Sep 1 2014, 14:29)  Ну, вообще-то в хендбуке написано, что INIT_DONE не внутренний, а опциональный. Он может быть разрешен в "Device and Pin Options". В описании режима Passive Serial про использование INIT_DONE говорится в явном виде: INIT_DONE для EP4CGX100CF23 (который FBGA 484) выходит на вывод W8 - см. документ "EP4CGX110 Pin-Outs" : http://www.altera.com/literature/dp/cyclone-iv/EP4CGX110.pdfНу и в Pin Planner'е: А вот я его и не заметил... Цитата(SM @ Sep 1 2014, 12:53)  Еще, в алгоритме, не забыли, что нулевой бит конфигурации должен быть выставлен перед первым фронтом такта, за время, не менее tDSU ? Надо проверить, но, вроде бы, так и делали.
|
|
|
|
|
Sep 1 2014, 13:46
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
У альтеры есть такое, что некоторые сигналы используются и внутри чипа, но при этом берутся с ножки микросхемы, а не со внутреннего сигнала. В таком случае из-за отсутствия пуллапа ПЛИС не выходит в user mode, при том, что все остальное правильно сделано. Я на это нарывался уже в начале пути... Но я уже точно не помню, был ли это именно INIT_DONE, возможно, CONF_DONE.
|
|
|
|
|
Sep 2 2014, 07:30
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(maksimp @ Sep 1 2014, 22:03)  Даиташит страница 8-7 - нужно 3192 пустых тактов. Это только в том случае, если используется CLKUSR. Если он не используется, то: Цитата When using the internal oscillator, you do not have to send additional clock cycles from an external source to the CLKUSR pin during the initialization stage. Там же, стр.8-33: Цитата Two DCLK falling edges are required after CONF_DONE goes high to begin the initialization of the device.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Sep 2 2014, 12:00
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Разбираемся дальше. Цитата(Erepb @ Sep 1 2014, 12:23)  nCONFIG подтягивается до +3.3В через порт GPIO на самом процессоре. Altera утверждает, что этого недостаточно. Подтягивающий резистор (pullup или puldown) нужен обязательно: http://www.altera.com/support/kdb/solution...302011_751.htmlЦитата Yes, a pull-up or pull-down resistor helps keep the nCONFIG line in a known state when the external host (a Max® II CPLD or a microcontroller) is not driving the line (for example, during external host reprogramming or power-up where the I/O driving nCONFIG may be tri-stated). If a pull-up resistor is added to the nCONFIG line, the FPGA stays in user mode if the external host is being reprogrammed. If a pull-down resistor is added to the nCONFIG line, the FPGA goes into reset mode if the external host is being reprogrammed.
Whenever the nCONFIG line is released high, ensure the first DCLK and DATA are not driven unintentionally. Altera recommends to keep the nCONFIG line low if the external host or the FPGA is not ready for configuration.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|