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

RTCK

Некоторые процессоры не успевают за быстрым тактом JTAG: свои входы они пересинхронизируют внутренней частотой, а она бывает очень низкой. Для них в разъёме JTAG есть отдельный провод — RTCK.

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

RTCK (return test clock, возвратный такт) — сигнал, которым кристалл возвращает отладчику принятый такт JTAG. Он нужен процессорам, которые не принимают TCK напрямую, а пересинхронизируют входы JTAG своей внутренней тактовой частотой. Такой кристалл видит фронт TCK с задержкой в несколько своих тактов, и если отладчик даст следующий фронт раньше, команда потеряется. RTCK показывает, что фронт принят (SEGGER KB, 20-pin J-Link Connector).

Адаптивный такт

Отладчик, поддерживающий адаптивный такт (adaptive clocking), выдаёт фронт TCK и ждёт, пока тот же фронт вернётся по RTCK, — только тогда выдаёт следующий. Частота JTAG подстраивается под кристалл сама: быстрый процессор получает быстрый TCK, а процессор на низкой частоте или в режиме пониженного потребления — медленный. Так работает, например, J-Link (SEGGER KB, 20-pin J-Link Connector).

Пересинхронизация входа — обычный способ принять асинхронный сигнал без метастабильности: два триггера на внутреннем такте. Цена — задержка, и именно её отладчик узнаёт по RTCK. Без RTCK приходится выбирать фиксированную частоту TCK с запасом под самый медленный режим кристалла.

Где он есть

  • 20-контактный разъём JTAG (IDC, шаг 2,54 мм): у J-Link RTCK — контакт 11. Если кристалл не выводит RTCK, SEGGER советует соединить контакт 11 с землёй.
  • 38-контактный Mictor для трассировки — тоже с RTCK.
  • Cortex Debug на 10 контактов и Cortex Debug+ETM на 20 контактов — компактные разъёмы Arm для микроконтроллеров Cortex-M — RTCK не имеют (Arm, Cortex-M Debug Connectors).

В изложении стандарта IEEE 1149.1 у TI сигнала RTCK нет: это расширение отладчиков и процессоров, а не часть тестового порта. По стандарту TMS и TDI читаются по нарастающему фронту TCK, а TDO меняется по спадающему (TI SSYA002D, гл. 3); RTCK лишь говорит отладчику, когда кристалл действительно увидел очередной фронт.

Практика

У микроконтроллеров Cortex-M адаптивный такт обычно не нужен: частоту SWCLK или TCK задают вручную с запасом, а при сбоях связи снижают. Если в настройках отладчика включён адаптивный такт, а RTCK не подключён или замкнут на землю, связь не установится — отладчик будет ждать возврата фронта. Разводку разъёмов с контактом RTCK смотрите на странице «Распиновка JTAG и SWD», устройство автомата TAP и протоколов — в статье «JTAG и SWD».

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

Нужно ли подключать RTCK к STM32 или другому Cortex-M?

Обычно нет. В современных разъёмах Arm для Cortex-M — Cortex Debug на 10 и 20 контактов — такого контакта вовсе нет. RTCK встречается у процессоров, которые пересинхронизируют вход JTAG внутренним тактом, и на старом 20-контактном разъёме IDC. Если кристалл RTCK не выводит, SEGGER советует соединить контакт 11 с землёй.

Что будет, если включить адаптивный такт, а RTCK не подключён?

Отладчик будет ждать, пока каждый фронт TCK вернётся по RTCK, и не дождётся: связь не установится. Если RTCK соединён с землёй, как советует SEGGER для кристаллов без него, фронты тоже не вернутся. Поэтому адаптивный такт включают только тогда, когда кристалл действительно выдаёт RTCK.

Чем адаптивный такт лучше просто низкой частоты TCK?

Тем, что частота подстраивается сама. Если процессор при отладке меняет свою тактовую частоту — например, уходит в режим пониженного потребления, — фиксированный TCK пришлось бы выбирать по самому медленному режиму. С адаптивным тактом отладчик идёт так быстро, как кристалл успевает, на любой его частоте.

Источники

  1. SEGGER Knowledge Base. 20-pin J-Link Connector — контакт 11 — RTCK: возвратный такт от кристалла; некоторые кристаллы синхронизируют входы JTAG с внутренним тактом; J-Link поддерживает адаптивный такт — ждёт, пока изменение TCK вернётся, прежде чем менять дальше; RTCK подключают, если он есть, иначе соединяют с GND; в режиме SWD часть контактов не используется
  2. Arm (Keil). Cortex-M Debug Connectors — RTCK есть в старых разъёмах — 20-контактном IDC и 38-контактном Mictor; в новых Cortex Debug на 10 контактов и Cortex Debug+ETM на 20 контактов его нет
  3. Texas Instruments. IEEE Std 1149.1 (JTAG) Testability Primer (SSYA002D, 1997) — гл. 3: TMS и TDI читаются по нарастающему фронту TCK, TDO меняется по спадающему; сигнала RTCK в изложении стандарта нет

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