Граничное сканирование
Выводы 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-битный идентификатор производителя или пользователя |
Как проверяют плату
- Командой SAMPLE/PRELOAD в граничный регистр заранее загружают тестовый набор — TI описывает именно такую предзагрузку перед командой EXTEST (SSYA002D, гл. 3).
- Командой EXTEST микросхема-передатчик выставляет этот набор на выводы.
- Микросхема-приёмник на другом конце дорожек защёлкивает уровни своими ячейками в состоянии Capture-DR, и результат выдвигается через TDO.
- Обрыв дорожки, непропай вывода или перемычка припоя между соседними выводами дают несовпадение ожидаемых и прочитанных бит.
Чтобы построить такой тест, программе нужно знать длину регистра команд, коды команд и порядок ячеек каждой микросхемы. Производитель описывает это в файле BSDL.
В микроконтроллерах
У многих микроконтроллеров граничное сканирование живёт рядом с отладкой. Например, в STM32F4 в цепочке JTAG сначала идёт TAP граничного сканирования с регистром команд 5 бит, затем TAP ядра Cortex-M4; при переходе на SWD первый отключается (RM0090, разд. 38.5). При работе отладчика его переводят в BYPASS, и он добавляет в путь данных один бит. Как устроена вся цепочка, автомат TAP и команды — в статье «JTAG и SWD».
Частые вопросы
Чем граничное сканирование отличается от отладки по JTAG?
Отладка работает с ядром: останавливает его, читает регистры и память. Граничное сканирование работает с выводами: через ячейки граничного регистра выставляет уровни на выходах и читает входы, не запуская программу. Оба режима идут через один и тот же TAP, но через разные команды и регистры.
Можно ли проверить граничным сканированием плату с одной JTAG-микросхемой?
Частично. Командой EXTEST микросхема выставит уровни на своих выводах, а прочитать их можно только тем, что видит эти цепи: другой микросхемой с JTAG, тестером или самой этой микросхемой, если вывод замкнут на другой её вывод. Чем больше на плате микросхем с граничным регистром, тем больше соединений покрывает тест.
Где взять описание граничного регистра микросхемы?
В файле BSDL от производителя. Он описывает выводы, длину регистра команд, коды команд и порядок ячеек граничного регистра. Программы граничного сканирования строят тест именно по нему.
Источники
- Texas Instruments. IEEE Std 1149.1 (JTAG) Testability Primer (SSYA002D, 1997) — гл. 3: обязательные регистры данных — граничный регистр и регистр обхода, необязательный — регистр идентификатора; ячейка граничного регистра между выводом и внутренней логикой; обязательные команды BYPASS (все единицы), SAMPLE/PRELOAD и EXTEST, необязательные INTEST, RUNBIST, CLAMP, HIGHZ, IDCODE, USERCODE; гл. 5: язык BSDL
- Texas Instruments. A Look at Boundary Scan From a Designer's Perspective (SCTA028, 1996) — разд. 1–2: у BGA и скрытых дорожек физического доступа к цепям нет, внутрисхемный тест «ложем гвоздей» невозможен; ячейки граничного сканирования — «виртуальные щупы» на входах и выходах микросхемы, то есть на концах цепей
- STMicroelectronics. RM0090 Reference manual STM32F405/415, STM32F407/417, STM32F427/437, STM32F429/439 (Rev 21) — разд. 38.5: TAP граничного сканирования с регистром команд 5 бит стоит в цепочке перед TAP ядра; после переключения на SWD он отключается
Нашли ошибку?
Смотрите также
- JTAG и SWDTAP из 16 состояний, IR/DR, пакеты SWD, ACK, DP и AP, SWO, VTref
- JTAGПоследовательный интерфейс тестирования и отладки по IEEE 1149.1: TCK, TMS, TDI, TDO
- TAP-контроллер JTAGКонечный автомат JTAG из 16 состояний, которым управляют TMS и TCK
- BSDLМашиночитаемое описание JTAG и граничного регистра микросхемы
- Паяная перемычка (SB)Пара площадок, замыкаемых припоем или резистором 0 Ом: конфигурация платы