Инструменты пользователя

Инструменты сайта


doc:doclist:jtagisc

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
doc:doclist:jtagisc [2020/02/25 19:22]
vasco [Интерфейс JTAG]
doc:doclist:jtagisc [2020/02/25 19:25] (текущий)
vasco [Интерфейс JTAG]
Строка 162: Строка 162:
   * TMS - сигнал перемещения по машине состояний JTAG.   * TMS - сигнал перемещения по машине состояний JTAG.
   * TRST - опциональный сигнал сброса подключенного устройства,​ в микроконтроллерах обычно подключается к выводу Reset.   * TRST - опциональный сигнал сброса подключенного устройства,​ в микроконтроллерах обычно подключается к выводу Reset.
 +
 +{{doc:​doclist:​jtagregupdate.png}}
  
 Про TDI и TDO полагаю понятно,​ что они подключаются с двух сторон внутреннего сдвигового регистра. Данные от TDI вдвигаются в регистр,​ а из регистра синхронно данные выдвигаются в линию TDO. Но поскольку регистров внутри устройства может быть несколько,​ то необходим способ выбора того регистра с которым будут работать линии TDI и TDO. Для этого предназначен автомат состояний и перемещение по этому автомату происходит с помощью сигнала TMS. Сразу стоит сказать,​ что TDI и TDO подключаются к внутреннему регистру только в состояниях **Shift-DR** и **Shift-IR**. Поэтому чтобы записать / считать регистры необходимо в автомате состояний дошагать до Shift-DR или ShiftIR соответственно. Про TDI и TDO полагаю понятно,​ что они подключаются с двух сторон внутреннего сдвигового регистра. Данные от TDI вдвигаются в регистр,​ а из регистра синхронно данные выдвигаются в линию TDO. Но поскольку регистров внутри устройства может быть несколько,​ то необходим способ выбора того регистра с которым будут работать линии TDI и TDO. Для этого предназначен автомат состояний и перемещение по этому автомату происходит с помощью сигнала TMS. Сразу стоит сказать,​ что TDI и TDO подключаются к внутреннему регистру только в состояниях **Shift-DR** и **Shift-IR**. Поэтому чтобы записать / считать регистры необходимо в автомате состояний дошагать до Shift-DR или ShiftIR соответственно.
 +
 +**IR** - это регистр инструкций. Он один и он выбирает который внутренний регистр будет подключен к линиям TDI и TDO в состоянии Shift-DR. Например записав в IR инструкцию ISC_ADDRESS_SHIFT,​ а в DR записав значение адреса мы переключим в 5576РС1У текущий активный адрес. Посмотрим как это осуществить по машине состояний JTAG.
  
 {{doc:​doclist:​jtagstates.png}} {{doc:​doclist:​jtagstates.png}}
  
 //​(Картинка из шикарного видео, где наглядно расказывается про Jtag - [[https://​www.youtube.com/​watch?​v=PhaqHKyAvR4|YouTube - TechSharpen,​ "JTAG TAP Controller Tutorial"​]])//​ //​(Картинка из шикарного видео, где наглядно расказывается про Jtag - [[https://​www.youtube.com/​watch?​v=PhaqHKyAvR4|YouTube - TechSharpen,​ "JTAG TAP Controller Tutorial"​]])//​
- 
-**IR** - это регистр инструкций. Он один и он выбирает который внутренний регистр будет подключен к линиям TDI и TDO в состоянии Shift-DR. Например записав в IR инструкцию ISC_ADDRESS_SHIFT,​ а в DR записав значение адреса мы переключим в 5576РС1У текущий активный адрес. Посмотрим как это осуществить по машине состояний JTAG. 
  
 При работе по JTAG обычно выбирают "​парковочное"​ состояние - это то состояние в которое возвращается автомат между транзакциями. Обычно это либо состояние Idle, либо Select-DR. Select-DR подходит,​ потому что из него можно попасть и в ветвь DR и в ветвь IR. Но состояние Idle лучше тем, что в нем можно подать импульс TCK при TMS=0, который ничего не изменит,​ т.к. автомат останется в том-же Idle. А нам как раз необходим один лишний такт TCK для реализации выражения //"​WAIT TCK 1"// из файла BSDL. Состояние Reset не подходит под парковочное,​ потому что при выходе в reset к линиям TDI и TDO подключается регистр по умолчанию,​ а это обычно ByPass или BoundaryScan. При работе по JTAG обычно выбирают "​парковочное"​ состояние - это то состояние в которое возвращается автомат между транзакциями. Обычно это либо состояние Idle, либо Select-DR. Select-DR подходит,​ потому что из него можно попасть и в ветвь DR и в ветвь IR. Но состояние Idle лучше тем, что в нем можно подать импульс TCK при TMS=0, который ничего не изменит,​ т.к. автомат останется в том-же Idle. А нам как раз необходим один лишний такт TCK для реализации выражения //"​WAIT TCK 1"// из файла BSDL. Состояние Reset не подходит под парковочное,​ потому что при выходе в reset к линиям TDI и TDO подключается регистр по умолчанию,​ а это обычно ByPass или BoundaryScan.
doc/doclist/jtagisc.txt · Последние изменения: 2020/02/25 19:25 — vasco