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

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 в системе?
Увеличивать ток на источнике питания опасаюсь чтобы не сжечь ПЛИС.
 
 
 
 

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


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

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

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

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


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

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

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

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

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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

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


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

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

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

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

 

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

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

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

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


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

Меня смущает такой переход на 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 конфигурирования указывает на то, что конфигурирование прошло успешно). Больше сказать нечего.

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


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

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

Цитата

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

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

 

 

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

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

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

 

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

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

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

 

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

Изменено пользователем MrGalaxy

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


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

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

 

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

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

Изменено пользователем us_guest

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


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

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

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

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

 

 

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

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

 

ЗЫ.

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

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


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

В 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.

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


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

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

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


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

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с,

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

 

Изменено пользователем MrGalaxy

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


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

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

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


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

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

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

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

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

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

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

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

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

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