Jump to content
    

5576ХС6Т. Загрузка прошивки по JTAG после загрузки по PPS

Здравствуйте!
 
Вопрос к пользователям 5576ХС6Т.
 
Имеется плата, на которой установлена эта ПЛИС. Конфигурирование происходит при включении питания в режиме PPS. Дополнительно на разъём для подключения USB-бластера выведен интерфейс JTAG.
 
При попытке залить прошивку через JTAG командой «quartus_jli -a program файл.jam» приходит сообщение об успешном завершении с нулевым кодом, но плата начинает потреблять аномально большой ток (источник питания входит в режим ограничения тока) и светодиод на выводе INIT_DONE тускло мерцает-дрожит. Такое впечатление, что идёт сбой конфигурации и ПЛИС пытается переконфигурироваться.
 
Прошивки одного и того же проекта, только в ПЗУ вшит файл .rbf. Оба файла, и .rbf и .jam, сформированы программой cfg-tools-gui.
 
Аналогичная схема конфигурирования работает на Альтеровской ПЛИС EP1K30TC144-1 семейства ACEX1K (загруженная по PPS при включении питания успешно без единого сбоя конфигурируется по JTAG командой «quartus_jli -a program файл.jbc»).
 
Есть ли особенности программирования 5576ХС6Т через JTAG в системе?
Увеличивать ток на источнике питания опасаюсь чтобы не сжечь ПЛИС.
 
 
 
 

Share this post


Link to post
Share on other sites

Помниттся, Iam плеер работал с байт бластером мв под lpt портом. При переходе на usbбластер все уже стандартным программером пол зоаались. А в ващем случае в довесок от производителя прогрммное обеспечение для создания конфигурационного файла и рекомендация использовать байт бластер мв.

Я б все по руководству программирования бы делал.

Share this post


Link to post
Share on other sites

5 минут назад, sazh сказал:

Помниттся, Iam плеер работал с байт бластером мв под lpt портом. При переходе на usbбластер все уже стандартным программером пол зоаались. А в ващем случае в довесок от производителя прогрммное обеспечение для создания конфигурационного файла и рекомендация использовать байт бластер мв.

Я б все по руководству программирования бы делал.

Перед тем как схему разрабатывать, я освоил технологию заливки прошивки по USB-бластеру на отладочной комплекте ОП5576ХС6Т.02

Нет, дело не в типе бластера, тут что-то другое. Может отозовутся пользователи этой микросхемы

Share this post


Link to post
Share on other sites

Я хотел сказать, что в далеком прошлом у меня сложилось мнение, что jam плеер альтеры работает только с lpt портом.

А шить  sof, pof квартусом можно чем угодно.

Share this post


Link to post
Share on other sites

Как должны вести себя сигналы nSTATUS, CONF_DONE и INIT_DONE при работе через JTAG? Если кто знает, подскажите, плз.

Share this post


Link to post
Share on other sites

6 часов назад, MrGalaxy сказал:

Как должны вести себя сигналы nSTATUS, CONF_DONE и INIT_DONE при работе через JTAG? Если кто знает, подскажите, плз.

А Ваша плис реально конфигурируется в режиме PPS? Ибо ваша схема неуловимо не соответствует рекомендованной в ТО или инструкции по программированию (у меня этих документов нет).

По идее эти сигналы ведут себя также при работе по jtag. (nconfig к vcc через резистор, dclk  низкий или высокий уровень).

Share this post


Link to post
Share on other sites

13 часов назад, sazh сказал:

А Ваша плис реально конфигурируется в режиме PPS?

Да. Сразу при включении питания.

 

13 часов назад, sazh сказал:

Ибо ваша схема неуловимо не соответствует рекомендованной в ТО или инструкции по программированию (у меня этих документов нет).

Откуда тогда такие мысли если документов нет? Временные диаграммы взяты из Д4, времена указаны с реально снятых осциллограмм.

Share this post


Link to post
Share on other sites

Меня смущает такой переход на 3х вольтовую Российскую элементную базу. Если использовать преобразователи уровня с z состоянием, их можно переводить сигналом confdone от плис в третье состояние. Тогда имеет смысл подтянуть data0 резистором, чтоб не плавал, при этом когда data[7:1] становятся пользовательскими, не надо заботиться о состоянии их портов в проекте.

Согласно вашей временной диаграмме на схеме начало конфигурирования  когда (nconfig == 1) && (nstatus == 1) && (confdone == 0). После успешного конфигурирования confdone == 1. Далее микроконтроллер подает 10 тактов на вход dclk с целью инициализации (если активирован initdone,  initdone == 1) и перехода в пользовательский режим. После этого микроконтроллер удерживает dclk в состоянии низкого уровня, data[7:0] в  z состояние, data0 не плавает. Следовательно функция успешного конфигурирования и инициализации (initdone == 1) && (confdone == 1). Если в процессе конфигурирования возникла ошибка, плис формирует nstatus == 0, confdone остается в состоянии низкого уровня. Жмем nconfig == 0.

Получается, что без подачи confdone на микроконтроллер ( а еще лучше ему добавить и initdone) вы не можете уверенно обрубить dclk после конфигурации и инициализации.

И так как PPS у вас все же работает, в конфигурировании по jtag после успешного конфигурирования по PPS я вижу только одну засаду.

Jtag конечно приоритетен, но и ему по идее никто не должен мешать. Микроконтроллер не должен реагировать на nstatus, не должен вырабатывать  nconfig и dclk.  Может он по КД в этом режиме хочет на входе dclk постоянный уровень. Вам виднее (состояние низкого уровня на nstatus во время itag конфигурирования указывает на то, что произошла ошибка, состояние высокого уровня на confdone в конце jtag конфигурирования указывает на то, что конфигурирование прошло успешно). Больше сказать нечего.

Share this post


Link to post
Share on other sites

Сегодняшний ответ КТЦ Электроника на мой вопрос по сигналам:

Цитата

... по действию LOAD
ПЛИС должна выходить из рабочего режима и вывод nSTATUS на несколько
микросекунд должен перейти в лог.0, а CONF_DONE перейти лог. 0 до
окончания конфигурирования. Вывод INIT также переходит в лог.0. ...

Комментарий: действие LOAD в данном контексте аналогично действию PROGRAM.

 

 

45 минут назад, sazh сказал:

без подачи confdone на микроконтроллер ( а еще лучше ему добавить и initdone) вы не можете уверенно обрубить dclk после конфигурации и инициализации.

А я его и не обрубаю, сэкономил на логике.

 

45 минут назад, sazh сказал:

Микроконтроллер не должен реагировать на nstatus, не должен вырабатывать  nconfig и dclk. 

Он вырабатывает nCONFIG один раз при включении питания, зато реагирует на nSTATUS, ну так ведь иначе нельзя. По DCLK мне в своё время, когда я проектировал контроллер, техподдержка ответила, что кол-во импульсов должно быть минимум 10. Я это воспринял как то, что максимум не ограничен.

 

Спасибо. Есть пища для размышления.

Edited by MrGalaxy

Share this post


Link to post
Share on other sites

В 18.10.2024 в 10:59, MrGalaxy сказал:
...
Есть ли особенности программирования 5576ХС6Т через JTAG в системе?

 

При программировании по JTAG MSELы надо в ноль ставить, т.к. по JTAG возможен только PS-режим. В Д4 схемы приведены.

В таких случаях пишете разработчику - они помогут.

Edited by us_guest

Share this post


Link to post
Share on other sites

1 час назад, us_guest сказал:

При программировании по JTAG MSELы надо в ноль ставить, т.к. по JTAG возможен только PS-режим. В Д4 схемы приведены.

По JTAG  PS-конфигурирование не осуществляется, оно идёт по Download-порту.

 

 

Касательно схем конфигурирования  - ничего нового, всё содрано один-в-один с Альтеры.

Здесь именно недокументированное различие в архитектурах Альтеры и ХС6, я ж не зря так подробно написал 1-й пост. На импорте всё отлажено и работает.

 

ЗЫ.

us-guest, Вы сами пробовали переконфигурировать ХС6 в системе по JTAG (не путать с Download-портом (!), там только разъём одинаковый), которая при включении питания конфигурируется по PS?

Share this post


Link to post
Share on other sites

В 28.10.2024 в 13:32, MrGalaxy сказал:

По JTAG  PS-конфигурирование не осуществляется, оно идёт по Download-порту.

Я не совсем корректно написал. Зная, что PS – Passive Serial – пассивное последовательное, PPS – Passive Parallel Synchronous –
пассивн. параллельное синхронное, для последовательного MSELы надо ставит в 0, для параллельного MSEL0 в 0, MSEL1 в 1 . А JTAG-конфигурирование - оно тоже последовательное. На схеме для JTAG-конфигурирования MSELы подключены к 0.

Share this post


Link to post
Share on other sites

Архитектура не может быть другой. И в д4 должно быть написано как и в epf10k, разве что с ошибками. Jtag приоритетен. Но его нельзя начинать, пока не завершен любой другой пользовательский режим загрузки. И есть требования к служебным пинам других режимов загрузки. Nce 0, nstatus подтянут к1,  nconfig1, msel   пользовательский режим загрузки, dclk0, data0не болтается, configdone подтянут 1. Trst1.Если dclk продолжает вырабатываться  значит режим загрузки не завершен. А если в аналоге epf10k есть отсебятина, так она наверняка работает в рабочем режиме с галочкой авторестарт по ошибке. Да вгоните вочдог таймер на 15с, переведите  dclk в 0 и посмотрите, пойдет ли jtag.

Share this post


Link to post
Share on other sites

25 минут назад, sazh сказал:

Архитектура не может быть другой.

И может, и есть. Как минимум, нет толерантности к 5 В. Второе отличие - при подаче питания до начала конфигурирования все выводы подтянуты к плюсу питания. Несмотря на то, что в Д4 написано, что они в z-состоянии.

 

25 минут назад, sazh сказал:

И в д4 должно быть написано как и в epf10k, разве что с ошибками.

Ну да, так и есть, вроде без ошибок.

 

25 минут назад, sazh сказал:

Jtag приоритетен. Но его нельзя начинать, пока не завершен любой другой пользовательский режим загрузки.

Разумеется не начинаю.

 

25 минут назад, sazh сказал:

Nce 0, nstatus подтянут к1,  nconfig1, msel   пользовательский режим загрузки, dclk0, data0не болтается, configdone подтянут 1. Trst1.

Специально выложил схему.

 

25 минут назад, sazh сказал:

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

Нет. Я написал почему у меня так сделано.

25 минут назад, sazh сказал:

А если в аналоге epf10k есть отсебятина, так она наверняка работает в рабочем режиме с галочкой авторестарт по ошибке.

Воот! Есть! Что-то в аналоге "улучшили".

 

25 минут назад, sazh сказал:

Да вгоните вочдог таймер на 15с,

Что это такое и как это сделать?

 

Edited by MrGalaxy

Share this post


Link to post
Share on other sites

Я не понял, для чего непрерывная частота на dclk. И почему вы проигнорировали временную диаграмму, которую привели на вашей схеме.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...