Перейти к содержанию
    

JTAG интерфейс для прошивки цепочки Хilinх iMРАСT

Всем доброго времени суток!

Вопрос к специалистам по прошивке Х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.: Не уверен что с этой темой надо сюда. Не возражаю против переноса в другой подходящий раздел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам нужно с помощью iMPACT сформировать файл прошивки в формате SVF, XSVF или STAPL. Это все форматы для проигрывание через JTAG. Далее в своем MK делаете проигрыватель под один из этих форматов (для XSVF сорцы есть на сайте Xilinx, для STAPL ищите на сайте Alter'ы)

 

 

UPD: XSVF - xapp058 у Xilinx

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 получить?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пока планирую использовать команду типа "playxsvf501.exe -s file.xsvf > log.txt", после этого парсить txt-файл и прошивать транслируя данные
Гм...

(Это если не удастся реализовать необходимый механизм в микроконтроллере).
Именно там и надо его реализовывать. берете исходники плеера из xapp058, адаптируете и зашиваете их в МК

 

Еще хотел бы один вопрос для себя прояснить: в XSVF-формате уже присутствуют все команды для прошивки всей JTAG-цепочки?
Да. XSVF файл - это конвертированный в бинарную форму SVF файл. А в нем содержится протокол команд, передаваемых по JTAG'у

Да, прежде чем генерить файл прошивки убедитесь, что в iMPACT'е правильно задана JTAG цепочка - что в ней присутсвуют все ваши устройства и в правильном порядке.

 

После перезагрузки питания не нужно будет перепрошивать цепочку XSVF-файлом?
Если у вас в цепочки нет FPGA, то не нужно

 

P.S.: STAPL можно для Xilinx-a получить?
Вроде iMPACT умеет

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2XVR:

Спасибо за ответы!

Да, в iMPАСT-е всё корректно. Там то я разобрался:)

Если у вас в цепочки нет FPGА, то не нужно

В цепочке FPGА и две ПЗУ. Я предполагал, что ПЗУ как раз и будут хранить конфигурацию для FPGA до тех пор, пока не потребуется обновить ПО на плате(не взирая на включения/выключения питания). Я не прав?

 

P.S.: Режим работы приблизительно следующий: прошиваю первый раз, потом через год-другой эксплуатации обновляю прошивку и т.п. В общем похоже на обновление прошивки мобильного телефона:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В цепочке FPGА и две ПЗУ. Я предполагал, что ПЗУ как раз и будут хранить конфигурацию для FPGA до тех пор, пока не потребуется обновить ПО на плате(не взирая на включения/выключения питания). Я не прав?
Это зависит от режима загрузки FPGA (выбирается перемычками на специальных ногах). Есди FPGA грузится с ПЗУ, то ее перешивать не надо, и после перепрошивки ПЗУ достаточно передернуть питание на приборе.

 

Перешивать FPGA через JTAG может понадобится только в процессе отладки :rolleyes:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2XVR:

Спасибо!

 

P.S.: Тему пока закрывать не буду: вдруг по прибытии железа еще чего понадобится спросить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Получил три платы. Две заработали нормально, на третьей не определяется 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). Кто-нибудь сталкивался с подобным? Чем еще это может быть вызвано? И какие рекомендации по лечению: менять всю цепочку?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А чипы правильные стоят? Возможно не те версии запаяли

или неправильный (старый) BSDL файл...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чипы на всех платах одинаковые (судя по маркировке). автодектом следующие за FPGА ПЗУшки определяются, но прошить их (вручную определяю цепочку) не удается.

А вот FPGА определяется как несколько unknown device (потому как ID не соответствует ожидаемому).

Настройки iMPАСTa для всех трех плат одинаковы, так что с ВSDL я думаю тоже всё ок. Правда не знаю как в этом удостовериться.

 

Какие еще могут быть предположения?

 

P.S.: Могу привести полный лог импакта. Надо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Большое спасибо все ответившим.

Выяснил в чем была беда. Был небольшой коротыш на ножках преобразователя питания ядра 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите осциллографом сигналы на ногах JTAG'а. Возможно проблема в уровнях или фронтах

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...