<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>DAP_TI_Info</title>
<title>CMSIS-DAP: DAP_TI_Info</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="printComponentTabs.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 46px;">
  <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">CMSIS-DAP
   &#160;<span id="projectnumber">Version 1.2.0 (Proposal)</span>
   </div>
   <div id="projectbrief">Interface Firmware for CoreSight Debug Access Port</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
    <ul class="tablist">
      <script type="text/javascript">
		<!--
		writeComponentTabs.call(this);
		//-->
      </script>
	  </ul>
</div>
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li><a href="modules.html"><span>Reference</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__DAP__TI__Info.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">DAP_TI_Info<div class="ingroups"><a class="el" href="group__DAP__TestInput__gr.html">Test Input Commands</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Get information about Test Input channel parameters of the CMSIS-DAP Debug Unit.  
<a href="#details">More...</a></p>
<p>Get information about Test Input channel parameters of the CMSIS-DAP Debug Unit. </p>
<p>The <b>DAP_TI_Info Command</b> provides information about additional Test Inputs that are possible to capture with the CMSIS-DAP Debug Unit.</p>
<p><b>DAP_TI_Info Request:</b> </p>
<div class="fragment"><div class="line">| BYTE | BYTE | BYTE ***|</div>
<div class="line">&gt; 0x1D | ID   | Channel |</div>
<div class="line">|******|******|*********|</div>
</div><!-- fragment --><ul>
<li><b>ID:</b> Request Identifier to obtain information in the Response:<ul>
<li><b>0x00</b> = Get general Test Input channel parameters (<b>Channel</b> value not used).</li>
<li><b>0x01</b> = Get parameters of a specific Test Input <b>Channel</b>.</li>
<li><b>0x02</b> = Get possible data capturing frequencies.</li>
</ul>
</li>
<li><b>Channel:</b> channel number.</li>
</ul>
<p><b>DAP_TI_Info Response for <b>ID=0x00</b>: Get general Test Input channel parameters</b> </p>
<div class="fragment"><div class="line">| BYTE | BYTE ****|</div>
<div class="line">&lt; 0x1D | Channels |</div>
<div class="line">|******|**********|</div>
</div><!-- fragment --><ul>
<li><b>Channels:</b> number of channels available in the Debug Unit.</li>
</ul>
<p><b>DAP_TI_Info Response for <b>ID=0x01</b>: Get parameters of a specific Channel</b> </p>
<div class="fragment"><div class="line">| BYTE | BYTE ***| BYTE ******| BYTE ***| LWORD ***| LWORD *****| BYTE ****| FLOAT *| FLOAT *|</div>
<div class="line">&lt; 0x1D | Channel | Attributes | NumBits | IdString | UnitString | Compress | MinVal | MaxVal |</div>
<div class="line">|******|*********|************|*********|**********|************|**********|++++++++|++++++++|</div>
</div><!-- fragment --><ul>
<li><b>Channel:</b> channel number that information belongs to.</li>
<li><b>Attributes:</b> attributes of the data channel<ul>
<li>Bit 0..1: DataSize: number of bytes recorded (0=BYTE, 1=SHORT, 2=WORD)</li>
<li>Bit 2..3: NumRanges: channel data provides additional range bits (see below)</li>
<li>Bit 4: DT_TimeStamp: 1= channel provides time stamp based on Test Domain Timer</li>
</ul>
</li>
<li><b>NumBits:</b> resolution of the channel in bits</li>
<li><b>IdString:</b> is a up to 8 character 8-bit US ASCII string that identifies the channel</li>
<li><b>UnitString:</b> is a up to 8 character 8-bit US ASCII string that identifies the measurement unit of the channel (V, mA, kHz)</li>
<li><b>Compress:</b> describes the difference communication that is optionally available (see below)</li>
<li><b>MinVal:</b> minimum data value (= 0) represents the <b>MinVal</b>. Repeated for each range.</li>
<li><b>MaxVal:</b> maximum data value result represents the <b>MaxVal</b>. Repeated for each range.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd><b>NoRanges:</b> specifies if the channel data has data ranges; possible values are:<ul>
<li>0 = 1 range (1 MinVal/MaxVal value pair in the response).</li>
<li>1 = 2 ranges (2 MinVal/MaxVal value pairs are provided in the response)</li>
<li>2 = 4 ranges (4 MinVal/MaxVal value pairs are provided in the response)</li>
</ul>
</dd>
<dd>
<b>Compress</b> specifies a method for data differences by this channel.<ul>
<li>0 = no data differences can be communicated. Only <b>Contiguous Value Format</b> is transmitted in <a class="el" href="group__DAP__TI__TransferBlock.html">DAP_TI_TransferBlock</a> Response.</li>
<li>1 = data differences are transmitted when a single bit is different.</li>
<li>2 = new data are transmitted when a value has a significant difference. The least significant 3-bits are ignored. This is useful for A/D values.</li>
<li>3 = new data are transmitted when a value has a significant dynamic difference. Only the uppermost 8-bits are considered. This is useful for dynamic A/D values such as the currency consumption of a device.</li>
</ul>
</dd>
<dd>
<b>Data Value Scaling</b>: the information <b>NoBits</b>, <b>MinVal</b>, <b>MaxVal</b> is used to convert the binary data value into a floating data value for displaying purposes. If both <b>MinVal</b> and <b>MinMax</b> are 0 no scaling formula is provided and raw data may be displayed instead. Scaling considers the <b>NoBits</b> value, for example at 12-bit resolution the maximum data value is 0x3FF.</dd>
<dd>
<b>Data Ranges</b>: the information <b>NoRanges</b>, <b>NoBits</b> allows scaled data value based on range information. The range information is provided in the upper data bits. For example a data channel with NoBits=12 and NRanges=2 provides in bit 0..11 the data value and in bit 12..13 the range value.</dd></dl>
<p><b>Example 1</b>: parameters for a channel that supports voltage measurement </p>
<div class="fragment"><div class="line">IdString = <span class="stringliteral">&#39;U0&#39;</span>            <span class="comment">// Voltage symbol for U0 input</span></div>
<div class="line">UnitString = <span class="charliteral">&#39;V&#39;</span>;          <span class="comment">// ASCII character to denote voltage</span></div>
<div class="line">NoBits = 10;               <span class="comment">// 10 bit A/D resolution</span></div>
<div class="line">NoRanges = 0;              <span class="comment">// no ranges are supported</span></div>
<div class="line">Compress = 2;              <span class="comment">// data differences may be communicated</span></div>
<div class="line">MinVal = 2.5;              <span class="comment">// A/D result = 0x000 represents 2.5V</span></div>
<div class="line">MaxVal = 6.0;              <span class="comment">// A/D result = 0x3FF represents 6.0V</span></div>
</div><!-- fragment --><p><b>Example 2</b>: parameters for a channel that supports current measurement with two ranges </p>
<div class="fragment"><div class="line">IdString = <span class="charliteral">&#39;I&#39;</span>;            <span class="comment">// Current symbol for I input</span></div>
<div class="line">UnitString = <span class="stringliteral">&#39;mA&#39;</span>;         <span class="comment">// ASCII character to denote milli Ampere</span></div>
<div class="line">NoBits = 12;               <span class="comment">// 12 bit A/D resolution (bit 0 .. 11 of data values contain A/D result)</span></div>
<div class="line">NoRanges = 1;              <span class="comment">// 2 ranges are supported (bit 12 of data values contains range)</span></div>
<div class="line">Compress = 3;              <span class="comment">// dynamic data differences may be communicated</span></div>
<div class="line">MinVal[0] = 0;             <span class="comment">// A/D result = 0x000 in range 0 represents 0.0mA</span></div>
<div class="line">MaxVal[0] = 1.0;           <span class="comment">// A/D result = 0xFFF in range 0 represents 1.0mA</span></div>
<div class="line">MinVal[1] = 4.0;           <span class="comment">// A/D result = 0x000 in range 0 represents 4.0mA</span></div>
<div class="line">MaxVal[1] = 20.0;          <span class="comment">// A/D result = 0xFFF in range 0 represents 20.0mA</span></div>
</div><!-- fragment --><p>For a channel that reports <b>MinVal = MaxVal = 0</b> the formula needs to be provided by the debugger as the debug unit is using perhaps an external shunt resistor.</p>
<p><b>DAP_TI_Info Response for <b>ID=0x02</b>: Get possible data capturing frequencies for recording of a specific channel</b> </p>
<div class="fragment"><div class="line">| BYTE | BYTE ***| BYTE ********|DWORD ++++|</div>
<div class="line">&lt; 0x1D | Channel | NoSelections |Frequency |</div>
<div class="line">|******|*********|**************|++++++++++| </div>
</div><!-- fragment --><ul>
<li><b>Channel:</b> channel number that information belongs to.<ul>
<li>Channel = 0..0xF: information of the selected channel</li>
<li>Channel = 0xFF: information for common channel data capturing</li>
</ul>
</li>
<li><b>NoSelections:</b> number of possible capture frequencies<ul>
<li>NoSelections = 0: channel does not support data recording</li>
<li>NoSelections = 1..15: channel allows selection of individual data capture frequencies.</li>
<li>NoSelections = 0xFF: channel allows selection of a common data capture frequency.</li>
</ul>
</li>
<li><b>Frequency:</b> capture frequencies (repeated as indicated by NoSelection = 1..15)<ul>
<li>Frequency[0] capture frequency for CapSelect=0 (see DAP_TI_Capture)</li>
<li>Frequency[1] capture frequency for CapSelect=1 (see DAP_TI_Capture)</li>
<li>Frequency[n] capture frequency for CapSelect=n (see DAP_TI_Capture) </li>
</ul>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Thu Nov 16 2017 17:06:00 for CMSIS-DAP by ARM Ltd. All rights reserved.
	<!--
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 
	-->
	</li>
  </ul>
</div>
</body>
</html>
