Erepb 0 31 августа, 2014 Опубликовано 31 августа, 2014 · Жалоба Доброго времени суток, уважаемые форумчане! Первый раз работаю с 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 загрузится в ПЛИС, но результата ноль. Может кто что подскажет? Если требуется, то с работы смогу скинуть схему платы и сам код прожига с процессора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cosworth 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба А вопрос, пуллап на CONF_DONE имеется ли? Вообще схему бы посмотреть конечно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба А не забыли 16 (или сколько там, не помню уже) пустых тактов на загрузочный клок выдать по окончании передачи битового потока? Потому как CONF_DONE появляется вроде как на такт позже после передачи всего RBF, а INIT_DONE еще через сколько-то там тактов. Насчет пуллапов вопрос верный, только они обязательно нужны не только на CONF_DONE, а еще и на INIT_DONE, и на nStatus (если где-то забыть, то загрузка не удастся вообще) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Erepb 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба Прикрепил схему подключения ПЛИС. Там выводы сокращенно написаны - CONF->nCONFIG, CNFD->CONFIG_DONE, STAT->nSTATUS. По-поводу тактов: делали 20 пустых - никакого эффекта, увеличивая на 10 тактов довели число пустых до 100 - тоже нет результата :) MCS.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба Прикрепил схему подключения ПЛИС Не видно подтяжки на INIT_DONE (без нее, на сколько я помню, CONF_DONE не поднимается). Да и на nCONFIG тоже подтяжки нет... Хотя, подозреваю, что она на другом конце разъема, но, все равно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Erepb 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба Не видно подтяжки на 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба А не забыли 16 (или сколько там, не помню уже) пустых тактов на загрузочный клок выдать по окончании передачи битового потока? Потому как CONF_DONE появляется вроде как на такт позже после передачи всего RBF, а INIT_DONE еще через сколько-то там тактов. Насчет пуллапов вопрос верный, только они обязательно нужны не только на CONF_DONE, а еще и на INIT_DONE, и на nStatus (если где-то забыть, то загрузка не удастся вообще) Импульсы нужны обязательно, чтобы автомат отвечающий за загрузку внутри ПЛИС смог перейти от режима загрузко в пользовательский режим... Фронты импульсов чистые? Пробовали уменьшить частоту? Вообще загрузка от микропроцессора обычно подробна расписана в аппликухах вместе с исходными кодами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба написано, что сигнал внутренний Не, ну если в этой конкретной микрухе это так, то и подтягивать его не надо :) Тогда, смотрите, чтобы биты в нужной последовательности шли, и чтобы сигналы были качественными, в смысле согласования, то есть без звона, с нужными уровнями, скоростями нарастания фронтов, и без превышений по звону/выбросам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Erepb 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба Импульсы нужны обязательно, чтобы автомат отвечающий за загрузку внутри ПЛИС смог перейти от режима загрузко в пользовательский режим... Фронты импульсов чистые? Пробовали уменьшить частоту? Вообще загрузка от микропроцессора обычно подробна расписана в аппликухах вместе с исходными кодами. В течение дня попробую осциллограмму скинуть. Частоту уменьшать не пробовали. Фронты чистые, пробовали как по переднему, так и по заднему фронту тактировать. Так по этой инструкции и написали программу :) Пробовали просто ножками GPIO на nCONFIG подавать 0 и 1, чтобы получить ответ от ПЛИС по nSTATUS - работает, отклики правильные, но прошивка не становится... Уже прошивку уменьшили до того, чтобы просто диод загорался - никак... Такая же прошивка на отладочной плате, только прошитая через AS работает корректно. Вот и не знаем уже, что тут может быть еще. Обе бракованные или обе непропаяны - одну даже перекатали, результата пока нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба Еще, в алгоритме, не забыли, что нулевой бит конфигурации должен быть выставлен перед первым фронтом такта, за время, не менее tDSU ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cosworth 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба Не знаю, насколько это важно, у Вас на схеме подтяжка к 1.5В, а MSEL к 2.5В (VCCA). В хэндбуке есть такая фраза: You must connect the pull-up resistor to the same supply voltage as the VCCA supply. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба А 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'е: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Erepb 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба Cosworth, не, там на самом деле идет +3.3В, это я ошибся, когда выдрал кусок схемы с другого листа... Ну, вообще-то в хендбуке написано, что 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'е: А вот я его и не заметил... Еще, в алгоритме, не забыли, что нулевой бит конфигурации должен быть выставлен перед первым фронтом такта, за время, не менее tDSU ? Надо проверить, но, вроде бы, так и делали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба А вот я его и не заметил... Ну он там не dedicated, так что, проверьте лишь то, что в опциях проекта не стоит "Enable INIT_DONE" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 1 сентября, 2014 Опубликовано 1 сентября, 2014 · Жалоба Вряд ли INIT_DONE влияет на процесс загрузки. Это чисто информационный сигнал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться