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

Граничное сканирование

Выводы BGA не достать щупом, а пайку проверить надо. JTAG задумывался именно для этого: каждая ножка микросхемы получает ячейку, которую можно прочитать и выставить через четыре провода.

Обновлено Редакция GAW

Граничное сканирование (boundary scan) — режим JTAG, в котором через тестовый порт проверяют не кристалл, а соединения на плате. Между каждым выводом микросхемы и её внутренней логикой стоит ячейка граничного регистра; ячейки соединены в длинный сдвиговый регистр по периметру кристалла — отсюда название. Через TAP-контроллер в этот регистр можно вдвинуть уровни, которые микросхема выставит на выходах, и выдвинуть уровни, которые она видит на входах (TI SSYA002D, гл. 3).

Ради этого JTAG и создавали. Внутрисхемный тестер касается цепей платы иглами, но к выводам BGA и скрытым дорожкам физического доступа нет. Ячейки граничного регистра TI называет «виртуальными щупами»: они стоят на входах и выходах микросхемы, то есть на концах цепей, и проверяют их пайку через четыре сигнала TCK, TMS, TDI и TDO (TI SCTA028, разд. 1–2).

Команды

IEEE 1149.1 требует от микросхемы граничный регистр, однобитный регистр обхода и три команды; остальные необязательны (SSYA002D, гл. 3):

КомандаОбязательнаЧто делает
EXTESTдаграничный регистр управляет выводами: тест выдаётся наружу, ответ соседей читается
SAMPLE/PRELOADдаснимок уровней выводов на работающей плате или предзагрузка теста
BYPASSдамежду TDI и TDO — один бит, микросхема работает как обычно
CLAMP, HIGHZнетзафиксировать выходы или перевести их в третье состояние
INTEST, RUNBISTнеттест внутренней логики, встроенный самотест
IDCODE, USERCODEнет32-битный идентификатор производителя или пользователя

Как проверяют плату

  1. Командой SAMPLE/PRELOAD в граничный регистр заранее загружают тестовый набор — TI описывает именно такую предзагрузку перед командой EXTEST (SSYA002D, гл. 3).
  2. Командой EXTEST микросхема-передатчик выставляет этот набор на выводы.
  3. Микросхема-приёмник на другом конце дорожек защёлкивает уровни своими ячейками в состоянии Capture-DR, и результат выдвигается через TDO.
  4. Обрыв дорожки, непропай вывода или перемычка припоя между соседними выводами дают несовпадение ожидаемых и прочитанных бит.

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

В микроконтроллерах

У многих микроконтроллеров граничное сканирование живёт рядом с отладкой. Например, в STM32F4 в цепочке JTAG сначала идёт TAP граничного сканирования с регистром команд 5 бит, затем TAP ядра Cortex-M4; при переходе на SWD первый отключается (RM0090, разд. 38.5). При работе отладчика его переводят в BYPASS, и он добавляет в путь данных один бит. Как устроена вся цепочка, автомат TAP и команды — в статье «JTAG и SWD».

Частые вопросы

Чем граничное сканирование отличается от отладки по JTAG?

Отладка работает с ядром: останавливает его, читает регистры и память. Граничное сканирование работает с выводами: через ячейки граничного регистра выставляет уровни на выходах и читает входы, не запуская программу. Оба режима идут через один и тот же TAP, но через разные команды и регистры.

Можно ли проверить граничным сканированием плату с одной JTAG-микросхемой?

Частично. Командой EXTEST микросхема выставит уровни на своих выводах, а прочитать их можно только тем, что видит эти цепи: другой микросхемой с JTAG, тестером или самой этой микросхемой, если вывод замкнут на другой её вывод. Чем больше на плате микросхем с граничным регистром, тем больше соединений покрывает тест.

Где взять описание граничного регистра микросхемы?

В файле BSDL от производителя. Он описывает выводы, длину регистра команд, коды команд и порядок ячеек граничного регистра. Программы граничного сканирования строят тест именно по нему.

Источники

  1. Texas Instruments. IEEE Std 1149.1 (JTAG) Testability Primer (SSYA002D, 1997) — гл. 3: обязательные регистры данных — граничный регистр и регистр обхода, необязательный — регистр идентификатора; ячейка граничного регистра между выводом и внутренней логикой; обязательные команды BYPASS (все единицы), SAMPLE/PRELOAD и EXTEST, необязательные INTEST, RUNBIST, CLAMP, HIGHZ, IDCODE, USERCODE; гл. 5: язык BSDL
  2. Texas Instruments. A Look at Boundary Scan From a Designer's Perspective (SCTA028, 1996) — разд. 1–2: у BGA и скрытых дорожек физического доступа к цепям нет, внутрисхемный тест «ложем гвоздей» невозможен; ячейки граничного сканирования — «виртуальные щупы» на входах и выходах микросхемы, то есть на концах цепей
  3. STMicroelectronics. RM0090 Reference manual STM32F405/415, STM32F407/417, STM32F427/437, STM32F429/439 (Rev 21) — разд. 38.5: TAP граничного сканирования с регистром команд 5 бит стоит в цепочке перед TAP ядра; после переключения на SWD он отключается

Нашли ошибку?