#Description
Adaptive clocking is a feature of the ARM Ltd. ARM9 and ARM11 JTAG interface, which is not compliant with the IEEE1149.1 standard. This method is used to provide a method to reduce instabilities of the JTAG TCK path by providing an additional signal named return clock (RTCK). In other words, the Debug Probe trims the TCK speed so it does not asserts the next TCK edge to the device before the device generates a RTCK edge back.
Most ARM emulators support adaptive clocking which:
- Ensures that TCK is running at the highest possible frequency no matter what the ARM clock is.
- Automatically scales TCK as the ARM clock scales.
- Ensures that chip is not presented with another TCK edge until an edge is detected on RTCK.
- TCK clock generation is essentially a NOT gate on RTCK.
- TCK is not a free-running clock.
- TCK is nearly completely out of phase with RTCK.
#Support
The RTCK signal is present in selected TI and ARM cores. As a consequence, all XDS Debug Probes except the [XDS110](emu_xds110.html) and the legacy XDS510 support Adaptive Clocking.
Most TI processors made after 2007 have some integrated support for adaptive clocking, thus allowing to use a fixed clock Debug Probe at a reduced speed of 10.368MHz or lower. However, keep in mind that PLL frequency reconfiguration can cause a disconnection on the JTAG chain.
In case the Debug Probe does not support adaptive clocking, configuring it for a fixed TCK rate that is less than 1/8 the ARM's functional clock rate is also an option.
Legacy Debug Probes also featured an adaptive clocking adapter that performs clock reconstruction. This is sold by the third party Spectrum Digital: [14-pin version](http://www.spectrumdigital.com/low-voltage-adapter-with-adaptive-clocking-for-ti-arm-based-processors-14-14-pin/) and [20-pin version](http://www.spectrumdigital.com/low-voltage-adapter-with-adaptive-clocking-for-ti-arm-based-processors-14-20-pin/).
- This solution is only recommended for older devices that did not integrate any adaptive clocking support into the processor (e.g. OMAP5910/12, DM6446, etc.). It is not recommended to use this adapter with newer devices that already have integrated adaptive clocking support.
Code Composer Studio fully supports Adaptive clocking devices and Debug Probes. This is configured in CCS by means of the Advanced Target Configuration Options. Please check section 7.2.1.4 of the [CCS User's Guide](../users_guide/index.html)
The short video clip below it shows how to access this tab and also experiment with the JTAG clock speeds.
#Design
Boards which have multiple devices that require adaptive clocking on a single scan chain require special attention to ensure that the connection is stable and operates at a reasonable speed.
As these devices require a RTCK signal, there are two connection methods which can be used: Series Topology and Parallel Topology with Clock voting mechanism. They differ mainly in performance and complexity and additional details can be found at the [XDS Target Connection Guide](emu_xds_target_connection_guide.html).
The JTAG headers that are required need to feature the RTCK signal, thus requiring a 20-pin or 60-pin header. Check the document [JTAG Connectors](emu_jtag_connectors.html) for details.
The more modern ARM Cortex M, R, or A cores do not have RTCK. However, some devices which feature these cores may also have an ARM9 core which does require RTCK. In those cases, if the ARM9/11 core is debugged then RTCK must be properly connected - otherwise, no connection needs to be done. In any case, follow the device datasheet and TRM recommendations.