<!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_SWD_Sequence</title>
<title>CMSIS-DAP: DAP_SWD_Sequence</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 2.0.0</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__SWD__Sequence.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_SWD_Sequence<div class="ingroups"><a class="el" href="group__DAP__swd__gr.html">SWD Commands</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Generate SWD sequence and output on SWDIO or capture input from SWDIO data.  
<a href="#details">More...</a></p>
<p>Generate SWD sequence and output on SWDIO or capture input from SWDIO data. </p>
<dl class="section note"><dt>Note</dt><dd>The <a class="el" href="group__DAP__SWD__Sequence.html">DAP_SWD_Sequence</a> is available for CMSIS-DAP version 1.2 and higher. Refer to <a class="el" href="group__DAP__Info.html">DAP_Info</a> for more information on how to query the CMSIS-DAP version.</dd></dl>
<p>The <b>DAP_SWD_Sequence Command</b> is used to generate special sequences in SWD mode on the pins SWCLK and SWDIO. For example, for SWD multi-drop target selection (see picture) it is required to put the SWDIO pin to input mode (where it is not driven).</p>
<div class="image">
<img src="SWD_Sequence.png" alt="SWD_Sequence.png"/>
<div class="caption">
SWD sequence for multi-drop target selection</div></div>
<ul>
<li>For mode=0 (output: SWDIO is driven), the data for the SWDIO pin are part of the <b>DAP_SWD_Sequence Command</b>.</li>
<li>For mode=1 (input: SWDIO is not driven), the data from the SWDIO pin are captured and returned as part of the <b>DAP_SWD_Sequence Response</b>.</li>
</ul>
<p><b>DAP_SWD_Sequence Command</b>: </p>
<div class="fragment"><div class="line">| BYTE | BYTE **********| BYTE *********| BYTE ******|</div>
<div class="line">&gt; 0x1D | Sequence Count | Sequence Info | SWDIO Data |</div>
<div class="line">|******|****************|<span class="comment">///////////////|++++++++++++|</span></div>
</div><!-- fragment --><ul>
<li><b>Sequence Count</b>: Number of Sequences</li>
<li><b>Sequence Info</b>: Contains number of SWCLK cycles and SWDIO mode<ul>
<li>Bit 5 .. 0: Number of TCK cycles: 1 .. 64 (64 encoded as 0)</li>
<li>Bit 6: reserved</li>
<li>Bit 7: mode: 0=output (SWDIO Data in command), 1=input (SWDIO Data in response)</li>
</ul>
</li>
<li><b>SWDIO Data</b> (only for output mode): Data generated on SWDIO<ul>
<li>One bit for each TCK cycle</li>
<li>LSB transmitted first, padded to BYTE boundary</li>
</ul>
</li>
</ul>
<p><b>DAP_SWD_Sequence Response</b>: </p>
<div class="fragment"><div class="line">| BYTE | BYTE **| BYTE ******|</div>
<div class="line">&lt; 0x1D | Status | SWDIO Data |</div>
<div class="line">|******|********|++++++++++++|</div>
</div><!-- fragment --><ul>
<li><b>SWDIO Data</b> (only for input mode): Data captured from SWDIO<ul>
<li>One bit for each SWCLK cycle for input mode</li>
<li>LSB received first, padded to BYTE boundary</li>
</ul>
</li>
<li><b>Status:</b> <a class="el" href="group__DAP__Response__Status.html">Response Status</a> </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 Wed Jul 10 2019 15:20:28 for CMSIS-DAP Version 2.0.0 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>
