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

Просто хотелось бы сразу опробовать разные варианты, могущие разрешить ситуацию.

Да фиг знает... программатор точно исправен, другие ПЛИСины шьёт?

Конденсаторы земля/питание стоят?

Шьёте Impactом из WebPack(версия какая)?

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

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


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

Шью Impactом. Программатор до этой ПЛИСины (пару недель назад) работал нормально. Никто кроме меня им не пользуется)))

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


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

Есть))) Специально проверил. Только относится она по моему к случаю, представленному на рисунке чуть выше этой фразы. А изображена там схема прошивки цепочки ПЛИСов да еще с мультиплексором на пути ТСК. Возможно в этом случае "целостность цепи сигнала ТСК" будет действительно критичной.

 

Такие проблемы бывают и в совсем простых конфигурациях, типа Вашей. Поэтому правило общее и этому стоит уделять внимание, чтобы не иметь проблем в будущем при отладке.

 

В моем случае я шью напрямую одну ПЛИС и вряд ли согласование по сопротивлению будут столь критичны.

 

В варианте соединения типа точка-точка тоже есть место для получения отраженного сигнала и результата в виде звона на линии, если нет согласования по импедансу. Можете попробовать взять любой пакет моделирования, тот же HyperLynx, промоделировать и посмотреть. Кстати, если есть возможность, то посмотрите форму сигнала TCK. Может быть это наведет на какие-то мысли.

 

 

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


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

В моей практике раньше случались такие проблемы при длинном кабеле переходника от программатора до разъема на плате

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


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

Можно попробовать сигналы TCK, TDI, TDO от программатора до разъема на плате завести витыми парами (каждый сигнальный проводник свит с земляным проводником,а земляные - с каждой стороны подключены к земляным контактам разъема). Но, конечно, еще и от разводки сигналов JTAG по плате может зависеть - как расположена возвратная земля по отношению к сигнальным трассам. Но это больше на мегагерцах сказывается.

Ну и предложение включить в разрыв TCK резистор несколько десятков Ом поддержу - подавит возможный звон от отражений.

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


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

Шью Impactом. Программатор до этой ПЛИСины (пару недель назад) работал нормально. Никто кроме меня им не пользуется)))

Как я понял Вы ID прочитать не можете. Значит проблемы все же аппаратные. А что написано в bsdl-файле о максимальной частоте TCK? Как тут указывали, можно просто сделать небольшой переходник с согласующими резисторами.

И еще. Как там с питанием. Может быть у древнего спартанца 5 вольт питание, а у бластера можно подавать только 3?

 

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


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

post-92691-1534943013_thumb.jpg

Прикрепил фото сигналов JTAG на осциллографе. Сверху вниз: TCK; TDI; TDO; TMS

Опробовал подключение различных сопротивлений последовательно с ТСК. Результат тот же - JTAG не видит м/сх.

По осциллограмме видно, что ТСК вполне приличной формы с минимальными звонами. Да и остальные сигналы тоже.

 

Как я понял Вы ID прочитать не можете.

Да. И поскольку ID читается в начале каждой операции, то ни одной операции я не могу совершить через JTAG

А что написано в bsdl-файле о максимальной частоте TCK?

Честно сказать ни разу не пользовался данными из bsdl-файла. Да и ниже 750кГц я по любому не смогу опуститься.

Как тут указывали, можно просто сделать небольшой переходник с согласующими резисторами.

пробовал - пофиг...

И еще. Как там с питанием. Может быть у древнего спартанца 5 вольт питание, а у бластера можно подавать только 3?

Питание ядра 1,8 вольт, питание переферии 1,2...3,6 вольт. Я использую 3.3В

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


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

Прикрепил фото сигналов JTAG на осциллографе. Сверху вниз: TCK; TDI; TDO; TMS

Честно сказать ни разу не пользовался данными из bsdl-файла. Да и ниже 750кГц я по любому не смогу опуститься.

Мои статьи:

JTAG тестирование. Совр Электр №2,3,4,5 за 2007

 

См. рис. 9. Там расписано, как выглядят диаграммы команд в сигналах JTAG.

Попробуйте найти в программе программатора только команду чтения ID. Первые 4 клока TCK переводят порт JTAG в состояние сброс. И далее по диаграммам переходов все можно отследить...

См. рис. 10... Вот как выглядит чтение ID

oscill_zoom74.png

А в bsdl-файле написано, какой ID должен прочитаться...

Если будут вопросы по статьям, то могу ответить по скайпу голосом...

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


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

Попробуйте найти в программе программатора только команду чтения ID.

Это каким образом я вытащу из Impact команду чтения ID?

По факту первая же команда при запуске JTAG это и есть чтение ID. Только после корректного прочтения продолжается выполнение других команд.

Я осциллограмму привел больше для того, чтобы показать форму сигналов и то, что программатор их формирует. А вот ответа от м/сх кроме одиночного падения TDO в ноль нету.

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


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

Это каким образом я вытащу из Impact команду чтения ID?

Думаю так:

Импакт - файл - инициализация цепи.

 

Правда сейчас проверить не на чем...

 

И еще.

Output - SVF файл - создать SVF файл

 

Вот в этом файле можно прочесть "что отправляли" и "что получили"...

 

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


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

В моем случае: Operation -> Initialize Chain

Опробовал. То же самое на экране осциллографа.

А можно ли закольцевать TDI->TDO, чтобы проверить программатор?

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


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

А можно ли закольцевать TDI->TDO, чтобы проверить программатор?

Проверить можно на любом исправном стартовом наборе.

А "закольцовывать" вообще смысла нет. Просто для этого нужно в цепь поставить триггер с TCK на тактовом... А зачем?

На исправном даете команду чтения ID. Потом сравниваете с Вашей платой. В SVF файле сразу же можно прочитать что подавали и что получили. ID и коды команд - записаны в bsdl файле...

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


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

Вот что написано у меня в файле xc2s300e.bsd:

entity generated_xc2s300e is

 

generic (PHYSICAL_PIN_MAP : string := "X_PACKAGE");

 

port (TCK: in bit; TDI: in bit; TDO: out bit; TMS: in bit);

 

use STD_1149_1_2001.all;

attribute Component_Conformance of xc2s300e : entity is "STD_1149_1_2001";

 

attribute PIN_MAP of xc2s300e : entity is PHYSICAL_PIN_MAP;

 

constant X_PACKAGE:PIN_MAP_STRING := "TCK : 1," & "TDI : 2," & "TDO : 3," & "TMS : 4";

attribute Tap_Scan_In of TDI: signal is true;

attribute Tap_Scan_Mode of TMS: signal is true;

attribute Tap_Scan_Out of TDO: signal is true;

attribute Tap_Scan_Clock of TCK: signal is (1.0e06, BOTH);

 

attribute Instruction_Length of xc2s300e: entity is 2;

attribute Instruction_Opcode of xc2s300e: entity is "BYPASS (11)";

attribute Instruction_Capture of xc2s300e: entity is "01";

attribute Boundary_Length of xc2s300e: entity is 1;

attribute Boundary_Register of xc2s300e: entity is "0 (BC_1, *, control, 0)";

 

end xc2s300e;

 

Не пойму где тут указан ID?

В файл .svf у меня вообще ничего не пишется, он пуст.

 

Прошу прощения .svf не пустой...

 

// Created using Xilinx iMPACT Software [iSE - 9.2i]

TRST OFF;

ENDIR IDLE;

ENDDR IDLE;

STATE RESET;

STATE IDLE;

FREQUENCY 1E6 HZ;

TIR 0 ;

HIR 0 ;

TDR 0 ;

HDR 0 ;

TIR 0 ;

HIR 0 ;

HDR 0 ;

TDR 0 ;

TIR 0 ;

HIR 0 ;

TDR 0 ;

HDR 0 ;

TIR 0 ;

HIR 0 ;

TDR 0 ;

HDR 0 ;

TIR 0 ;

HIR 0 ;

HDR 0 ;

TDR 0 ;

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


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

Питание ядра 1,8 вольт, питание переферии 1,2...3,6 вольт. Я использую 3.3В

 

Банк 2 тоже запитан от 3,3 В?

 

 

Вот что написано у меня в файле xc2s300e.bsd:

 

Не знаю где Вы взяли такой файл. У меня в ISE 14.7 он выглядит иначе, см. вложение.

 

В нем есть строки:

attribute IDCODE_REGISTER of XC2S300E_BARE : entity is
    "XXXX" &    -- version
    "0000101" &    -- family
    "000100000" &    -- array size
    "00001001001" &    -- manufacturer
    "1";        -- required by 1149.1

 

Это и есть ID кристалла.

 

PS: а TDI/TDO местами не пробовали поменять? ;)

xc2s300e.bsd.zip

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


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

Банк 2 тоже запитан от 3,3 В?

Да

Не знаю где Вы взяли такой файл. У меня в ISE 14.7 он выглядит иначе, см. вложение.

У меня ISE 9.2 и там формируется такой вот файл(пожимаю плечами) :-)

А в ISE 14.7 разве есть такой древний кристалл?

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

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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