eugen_pcad_ru 0 13 декабря, 2012 Опубликовано 13 декабря, 2012 · Жалоба Всем доброго времени суток! Вопрос к специалистам по прошивке Хilinх. Имеется схема, в котрой JТАG реализуется на микроконтроллере МК. Далее установлена цепочка {FPGА, ПЗУ1, ПЗУ2}. Файл прошивки хранится на удаленном компьютере, который имеет канал связи TСР/IР с микроконтроллером. То есть схема приблизительно следующая: ПЭВМ(TCP/IP) -> MK(JTАG) -> FPGА -> PRОМ1 -> PRОМ2 -> bak to MK -> ПЭВМ. Задача: прошивать без использования iMРАСT. Как подступиться к этой задаче пока не представляю. Б0льшая часть реализаций из инета предполагает наличие файла прошивки в составе МК. Поиск про JТАG выдает ссылки на периферийное сканирование, но я так понимаю это не совсем то, что нужно. Что читать? Куда смотреть? Заранее спасибо всем ответившим! P.S.: Имеются файлы: bin, bit, mcs1, mcs2. P.P.S.: Не уверен что с этой темой надо сюда. Не возражаю против переноса в другой подходящий раздел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 13 декабря, 2012 Опубликовано 13 декабря, 2012 · Жалоба Вам нужно с помощью iMPACT сформировать файл прошивки в формате SVF, XSVF или STAPL. Это все форматы для проигрывание через JTAG. Далее в своем MK делаете проигрыватель под один из этих форматов (для XSVF сорцы есть на сайте Xilinx, для STAPL ищите на сайте Alter'ы) UPD: XSVF - xapp058 у Xilinx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба 2XVR: Спасибо за ответ! Использую ISЕ 10.1. XSVF создал. SVF без подключенного железа почему-то создать не удалось. Получить SVF из XSVF тоже пока не удалось. xaрр058 изучаю. Поведение исходников (xарp058_exаmple_fоr_win32_visuаlc2008) из состава xapp058.ziр не соответсвует готовому exe-плееру playxsvf501b.exe (в режиме симуляции с ключом -s). Пока планирую использовать команду типа "playxsvf501.exe -s file.xsvf > log.txt", после этого парсить txt-файл и прошивать транслируя данные (Это если не удастся реализовать необходимый механизм в микроконтроллере). Недостаток - это всё довольно долго (десятки секунд). Конечно на микроконтроллере должно быть побыстрее. Еще хотел бы один вопрос для себя прояснить: в XSVF-формате уже присутствуют все команды для прошивки всей JTAG-цепочки? После перезагрузки питания не нужно будет перепрошивать цепочку XSVF-файлом? Спасибо! P.S.: STAPL можно для Xilinx-a получить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба Пока планирую использовать команду типа "playxsvf501.exe -s file.xsvf > log.txt", после этого парсить txt-файл и прошивать транслируя данныеГм... (Это если не удастся реализовать необходимый механизм в микроконтроллере).Именно там и надо его реализовывать. берете исходники плеера из xapp058, адаптируете и зашиваете их в МК Еще хотел бы один вопрос для себя прояснить: в XSVF-формате уже присутствуют все команды для прошивки всей JTAG-цепочки?Да. XSVF файл - это конвертированный в бинарную форму SVF файл. А в нем содержится протокол команд, передаваемых по JTAG'у Да, прежде чем генерить файл прошивки убедитесь, что в iMPACT'е правильно задана JTAG цепочка - что в ней присутсвуют все ваши устройства и в правильном порядке. После перезагрузки питания не нужно будет перепрошивать цепочку XSVF-файлом?Если у вас в цепочки нет FPGA, то не нужно P.S.: STAPL можно для Xilinx-a получить?Вроде iMPACT умеет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 17 декабря, 2012 Опубликовано 17 декабря, 2012 · Жалоба 2XVR: Спасибо за ответы! Да, в iMPАСT-е всё корректно. Там то я разобрался:) Если у вас в цепочки нет FPGА, то не нужно В цепочке FPGА и две ПЗУ. Я предполагал, что ПЗУ как раз и будут хранить конфигурацию для FPGA до тех пор, пока не потребуется обновить ПО на плате(не взирая на включения/выключения питания). Я не прав? P.S.: Режим работы приблизительно следующий: прошиваю первый раз, потом через год-другой эксплуатации обновляю прошивку и т.п. В общем похоже на обновление прошивки мобильного телефона:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 17 декабря, 2012 Опубликовано 17 декабря, 2012 · Жалоба В цепочке FPGА и две ПЗУ. Я предполагал, что ПЗУ как раз и будут хранить конфигурацию для FPGA до тех пор, пока не потребуется обновить ПО на плате(не взирая на включения/выключения питания). Я не прав?Это зависит от режима загрузки FPGA (выбирается перемычками на специальных ногах). Есди FPGA грузится с ПЗУ, то ее перешивать не надо, и после перепрошивки ПЗУ достаточно передернуть питание на приборе. Перешивать FPGA через JTAG может понадобится только в процессе отладки :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 17 декабря, 2012 Опубликовано 17 декабря, 2012 · Жалоба 2XVR: Спасибо! P.S.: Тему пока закрывать не буду: вдруг по прибытии железа еще чего понадобится спросить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 9 января, 2013 Опубликовано 9 января, 2013 · Жалоба Получил три платы. Две заработали нормально, на третьей не определяется JTAG-цепочка. iМРАCT выдает следующее: " // *** BАTCH CMD : ReadIdcode -p 1 INFO:iMРАCT:583 - '0': The idcode read from the device does not match the idcode in the bsdl File. INFO:iMРАCT:1578 - '0': Device IDCODE : 00001010110100001011011101010101 INFO:iMРАCT:1579 - '0': Expected IDCODE: 00000010011000110000000010010011 INFO:iMРАCT:583 - '1': The idcode read from the device does not match the idcode in the bsdl File. INFO:iMРАCT:1578 - '1': Device IDCODE : 00001010110100001011011101010101 INFO:iMРАCT:1579 - '1': Expected IDCODE: 00000010011000110000000010010011 " Пока предполагаю, что дело в непропае FPGА (ХС3S1400АN-4FGG676). Кто-нибудь сталкивался с подобным? Чем еще это может быть вызвано? И какие рекомендации по лечению: менять всю цепочку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 10 января, 2013 Опубликовано 10 января, 2013 · Жалоба А чипы правильные стоят? Возможно не те версии запаяли Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 10 января, 2013 Опубликовано 10 января, 2013 · Жалоба А чипы правильные стоят? Возможно не те версии запаяли или неправильный (старый) BSDL файл... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 11 января, 2013 Опубликовано 11 января, 2013 · Жалоба Чипы на всех платах одинаковые (судя по маркировке). автодектом следующие за FPGА ПЗУшки определяются, но прошить их (вручную определяю цепочку) не удается. А вот FPGА определяется как несколько unknown device (потому как ID не соответствует ожидаемому). Настройки iMPАСTa для всех трех плат одинаковы, так что с ВSDL я думаю тоже всё ок. Правда не знаю как в этом удостовериться. Какие еще могут быть предположения? P.S.: Могу привести полный лог импакта. Надо? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 14 января, 2013 Опубликовано 14 января, 2013 · Жалоба Какие еще могут быть предположения?Левые чипы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 18 января, 2013 Опубликовано 18 января, 2013 · Жалоба Большое спасибо все ответившим. Выяснил в чем была беда. Был небольшой коротыш на ножках преобразователя питания ядра 1,2В. После устранения КЗ, FРGA начала определяться и программироваться. Но возникла другая беда: где-то на 10ти-30ти процентах (каждый раз по разному) загрузки PROM1 (это XСF04 - средняя микросхема в цепочке JTАG) начинаются ошибки. Краткий фрагмент лога ниже: " Validating chain... Boundary-scan chain validated successfully. '2': Erasing device... PROGRESS_START - Starting Operation. '2': Erasure completed successfully. '2': Programming device... write count != nBytes(0), rc = C0000011. write cmd failed C0000011. write cmdbuffer failed 20000015. write cmdbuffer failed 20000015. ... write cmdbuffer failed 20000015. '2': Programming terminated due to errors. " По некоторым советам Хilinх-a (http://www.xilinx.com/support/answers/24911.htm http://www.xilinx.com/support/answers/31254.htm http://www.xilinx.com/support/answers/31931.htm ) предлагают переустановить/перезапустить драйвер и перезапустить программатор. Больше пока никаких внятных рекомендаций не увидел. Всё это делал, конкретно для этой ПЗУ не помогает. Может кто-нибудь сталкивался с таким? Какое лечение? Конечно первое, что приходит в голову - это заменить ПЗУ. Но на FРGA я тоже раньше грешил, оказалось дело не в ней. P.S.: Использую iMPACT из состава ISE 10.1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 18 января, 2013 Опубликовано 18 января, 2013 · Жалоба Посмотрите осциллографом сигналы на ногах JTAG'а. Возможно проблема в уровнях или фронтах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться