Files
2016-08-09 18:02:18 +02:00

720 lines
48 KiB
HTML

<!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"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Kinetis SDK v.2.0 API Reference Manual: SPI based Secured Digital Card (SDSPI)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.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>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</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: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Kinetis SDK v.2.0 API Reference Manual
&#160;<span id="projectnumber">Rev. 0</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<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>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;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__SDSPI.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>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><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="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">SPI based Secured Digital Card (SDSPI)</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The KSDK provides a driver to access the Secured Digital Card based on the SPI driver.</p>
<h1>Function groups</h1>
<p>This function group implements the SD card functional API in the SPI mode.</p>
<h1>Typical use case</h1>
<div class="fragment"><div class="line"><span class="comment">/* SPI_Init(). */</span></div>
<div class="line"></div>
<div class="line"><span class="comment">/* Register the SDSPI driver callback. */</span></div>
<div class="line"></div>
<div class="line"><span class="comment">/* Initializes card. */</span></div>
<div class="line"><span class="keywordflow">if</span> (kStatus_Success != <a class="code" href="group__SDSPI.html#ga1189771b440db3505261286c9b1ee7eb">SDSPI_Init</a>(card))</div>
<div class="line">{</div>
<div class="line"> <a class="code" href="group__SDSPI.html#ga320e97ada05d089fe26716208490cc02">SDSPI_Deinit</a>(card)</div>
<div class="line"> return;</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Read/Write card */</span></div>
<div class="line">memset(g_testWriteBuffer, 0x17U, sizeof(g_testWriteBuffer));</div>
<div class="line"></div>
<div class="line">while (true)</div>
<div class="line">{</div>
<div class="line"> memset(g_testReadBuffer, 0U, <span class="keyword">sizeof</span>(g_testReadBuffer));</div>
<div class="line"></div>
<div class="line"> <a class="code" href="group__SDSPI.html#ga6c007d811f72a0854cdb74d9afb199b0">SDSPI_WriteBlocks</a>(card, g_testWriteBuffer, TEST_START_BLOCK, TEST_BLOCK_COUNT);</div>
<div class="line"></div>
<div class="line"> <a class="code" href="group__SDSPI.html#gaec09ae357857fef13f7c70c34acb5c4d">SDSPI_ReadBlocks</a>(card, g_testReadBuffer, TEST_START_BLOCK, TEST_BLOCK_COUNT);</div>
<div class="line"></div>
<div class="line"> <span class="keywordflow">if</span> (memcmp(g_testReadBuffer, g_testReadBuffer, <span class="keyword">sizeof</span>(g_testWriteBuffer)))</div>
<div class="line"> {</div>
<div class="line"> <span class="keywordflow">break</span>;</div>
<div class="line"> }</div>
<div class="line">}</div>
</div><!-- fragment --> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structsdspi__command__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#structsdspi__command__t">sdspi_command_t</a></td></tr>
<tr class="memdesc:structsdspi__command__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDSPI command. <a href="group__SDSPI.html#structsdspi__command__t">More...</a><br/></td></tr>
<tr class="separator:structsdspi__command__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structsdspi__host__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#structsdspi__host__t">sdspi_host_t</a></td></tr>
<tr class="memdesc:structsdspi__host__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDSPI host state. <a href="group__SDSPI.html#structsdspi__host__t">More...</a><br/></td></tr>
<tr class="separator:structsdspi__host__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structsdspi__card__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a></td></tr>
<tr class="memdesc:structsdspi__card__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">SD Card Structure. <a href="group__SDSPI.html#structsdspi__card__t">More...</a><br/></td></tr>
<tr class="separator:structsdspi__card__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga6167a5292ff7a5574dc997b27cc55872"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#ga6167a5292ff7a5574dc997b27cc55872">_sdspi_status</a> { <br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a63f54fd90d8568993990b0dd1215ebea">kStatus_SDSPI_SetFrequencyFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 0U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a3c922b711a1e2c63bf95b421bae19643">kStatus_SDSPI_ExchangeFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 1U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a5d072cfe065434dd96e84b3dbfb6b763">kStatus_SDSPI_WaitReadyFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 2U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a94eeae627e7f56d66a6ca9f29c22a9b4">kStatus_SDSPI_ResponseError</a> = MAKE_STATUS(kStatusGroup_SDSPI, 3U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a00d3cccf7db647c2133a6fda4c3b53ae">kStatus_SDSPI_WriteProtected</a> = MAKE_STATUS(kStatusGroup_SDSPI, 4U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a49f8f5fcaa3a3135640fa50e411a1ea8">kStatus_SDSPI_GoIdleFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 5U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a5492a48fffbd51bb8c1a40d66bbcc6c3">kStatus_SDSPI_SendCommandFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 6U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872ad46c8f2abdfee3d6d5dbf1e17f283832">kStatus_SDSPI_ReadFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 7U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872af52fc552192610b555b92b4a180ab0fe">kStatus_SDSPI_WriteFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 8U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872ab08abfbc06ee3ad45fa4a1dd6ab68380">kStatus_SDSPI_SendInterfaceConditionFailed</a>,
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a4196863dc558bb96b17721929d9f47ce">kStatus_SDSPI_SendOperationConditionFailed</a>,
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a34ccd32578318f3115218282afb95d1e">kStatus_SDSPI_ReadOcrFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 11U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a2d5b300f06eebb9d0afd9fe30ba63957">kStatus_SDSPI_SetBlockSizeFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 12U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a76c63c33814ba7a33b25205f70c4530f">kStatus_SDSPI_SendCsdFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 13U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872ae8362579d073b197fbb5b56983d48b5a">kStatus_SDSPI_SendCidFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 14U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872acb8c97a49b21cba91374e3cf9f1e41a6">kStatus_SDSPI_StopTransmissionFailed</a> = MAKE_STATUS(kStatusGroup_SDSPI, 15U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga6167a5292ff7a5574dc997b27cc55872a5df3eb42a9563d3b2281f17ff6ee4ee5">kStatus_SDSPI_SendApplicationCommandFailed</a>
<br/>
}</td></tr>
<tr class="memdesc:ga6167a5292ff7a5574dc997b27cc55872"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDSPI API status. <a href="group__SDSPI.html#ga6167a5292ff7a5574dc997b27cc55872">More...</a><br/></td></tr>
<tr class="separator:ga6167a5292ff7a5574dc997b27cc55872"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c4f355f5d1f428fcf7fb51a1e550556"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#ga4c4f355f5d1f428fcf7fb51a1e550556">_sdspi_card_flag</a> { <br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga4c4f355f5d1f428fcf7fb51a1e550556a9ad962c03f87ba1ad2a87d9f311a489c">kSDSPI_SupportHighCapacityFlag</a> = (1U &lt;&lt; 0U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga4c4f355f5d1f428fcf7fb51a1e550556ac56722187769d3e1cb88aafdff88c3d1">kSDSPI_SupportSdhcFlag</a> = (1U &lt;&lt; 1U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga4c4f355f5d1f428fcf7fb51a1e550556aac2f60b67a34203de32aedd517526bac">kSDSPI_SupportSdxcFlag</a> = (1U &lt;&lt; 2U),
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga4c4f355f5d1f428fcf7fb51a1e550556a3e947033f2e83e0e69cdd2e3d4bb9ea0">kSDSPI_SupportSdscFlag</a> = (1U &lt;&lt; 3U)
<br/>
}</td></tr>
<tr class="memdesc:ga4c4f355f5d1f428fcf7fb51a1e550556"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDSPI card flag. <a href="group__SDSPI.html#ga4c4f355f5d1f428fcf7fb51a1e550556">More...</a><br/></td></tr>
<tr class="separator:ga4c4f355f5d1f428fcf7fb51a1e550556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65399c834121bb68b275856bd02b1163"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#ga65399c834121bb68b275856bd02b1163">sdspi_response_type_t</a> { <br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga65399c834121bb68b275856bd02b1163af2d0de929527131f2c78bf601e778353">kSDSPI_ResponseTypeR1</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga65399c834121bb68b275856bd02b1163a3df9332b3af59c5fbeeea71489e0bbe6">kSDSPI_ResponseTypeR1b</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga65399c834121bb68b275856bd02b1163ab614558dd9e6b2592b11b4ec55168bc3">kSDSPI_ResponseTypeR2</a> = 2U,
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga65399c834121bb68b275856bd02b1163a99f741eccabfd6709887cffb51001f6e">kSDSPI_ResponseTypeR3</a> = 3U,
<br/>
&#160;&#160;<a class="el" href="group__SDSPI.html#gga65399c834121bb68b275856bd02b1163ac88551d71e089ab2cfe2e22a1b29ce1d">kSDSPI_ResponseTypeR7</a> = 4U
<br/>
}</td></tr>
<tr class="memdesc:ga65399c834121bb68b275856bd02b1163"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDSPI response type. <a href="group__SDSPI.html#ga65399c834121bb68b275856bd02b1163">More...</a><br/></td></tr>
<tr class="separator:ga65399c834121bb68b275856bd02b1163"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
SDSPI Function</h2></td></tr>
<tr class="memitem:ga1189771b440db3505261286c9b1ee7eb"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#ga1189771b440db3505261286c9b1ee7eb">SDSPI_Init</a> (<a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *card)</td></tr>
<tr class="memdesc:ga1189771b440db3505261286c9b1ee7eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the card on a specific SPI instance. <a href="#ga1189771b440db3505261286c9b1ee7eb">More...</a><br/></td></tr>
<tr class="separator:ga1189771b440db3505261286c9b1ee7eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga320e97ada05d089fe26716208490cc02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#ga320e97ada05d089fe26716208490cc02">SDSPI_Deinit</a> (<a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *card)</td></tr>
<tr class="memdesc:ga320e97ada05d089fe26716208490cc02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitialize the card. <a href="#ga320e97ada05d089fe26716208490cc02">More...</a><br/></td></tr>
<tr class="separator:ga320e97ada05d089fe26716208490cc02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf94180d46e7263a8e7f99b47e8e61a79"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#gaf94180d46e7263a8e7f99b47e8e61a79">SDSPI_CheckReadOnly</a> (<a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *card)</td></tr>
<tr class="memdesc:gaf94180d46e7263a8e7f99b47e8e61a79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether the card is write-protected. <a href="#gaf94180d46e7263a8e7f99b47e8e61a79">More...</a><br/></td></tr>
<tr class="separator:gaf94180d46e7263a8e7f99b47e8e61a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec09ae357857fef13f7c70c34acb5c4d"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#gaec09ae357857fef13f7c70c34acb5c4d">SDSPI_ReadBlocks</a> (<a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *card, uint8_t *buffer, uint32_t startBlock, uint32_t blockCount)</td></tr>
<tr class="memdesc:gaec09ae357857fef13f7c70c34acb5c4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read blocks from the specific card. <a href="#gaec09ae357857fef13f7c70c34acb5c4d">More...</a><br/></td></tr>
<tr class="separator:gaec09ae357857fef13f7c70c34acb5c4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c007d811f72a0854cdb74d9afb199b0"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#ga6c007d811f72a0854cdb74d9afb199b0">SDSPI_WriteBlocks</a> (<a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *card, uint8_t *buffer, uint32_t startBlock, uint32_t blockCount)</td></tr>
<tr class="memdesc:ga6c007d811f72a0854cdb74d9afb199b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write blocks of data to the specific card. <a href="#ga6c007d811f72a0854cdb74d9afb199b0">More...</a><br/></td></tr>
<tr class="separator:ga6c007d811f72a0854cdb74d9afb199b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structsdspi__command__t" id="structsdspi__command__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct sdspi_command_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:aab8904be71aac382a8d74d2f113a154b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab8904be71aac382a8d74d2f113a154b"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#aab8904be71aac382a8d74d2f113a154b">index</a></td></tr>
<tr class="memdesc:aab8904be71aac382a8d74d2f113a154b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command index. <br/></td></tr>
<tr class="separator:aab8904be71aac382a8d74d2f113a154b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefc36d8b10a362964574b18c28dd32fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aefc36d8b10a362964574b18c28dd32fb"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#aefc36d8b10a362964574b18c28dd32fb">argument</a></td></tr>
<tr class="memdesc:aefc36d8b10a362964574b18c28dd32fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command argument. <br/></td></tr>
<tr class="separator:aefc36d8b10a362964574b18c28dd32fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2ec5bb62c5e90766094d7bb23e61a71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2ec5bb62c5e90766094d7bb23e61a71"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#ab2ec5bb62c5e90766094d7bb23e61a71">responseType</a></td></tr>
<tr class="memdesc:ab2ec5bb62c5e90766094d7bb23e61a71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Response type. <br/></td></tr>
<tr class="separator:ab2ec5bb62c5e90766094d7bb23e61a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d0ba102d739a24a5cc659bf4c2692ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d0ba102d739a24a5cc659bf4c2692ee"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a0d0ba102d739a24a5cc659bf4c2692ee">response</a> [5U]</td></tr>
<tr class="memdesc:a0d0ba102d739a24a5cc659bf4c2692ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Response content. <br/></td></tr>
<tr class="separator:a0d0ba102d739a24a5cc659bf4c2692ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<a name="structsdspi__host__t" id="structsdspi__host__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct sdspi_host_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a992320fa4e3a64f4f4600bb7e996c193"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a992320fa4e3a64f4f4600bb7e996c193"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a992320fa4e3a64f4f4600bb7e996c193">busBaudRate</a></td></tr>
<tr class="memdesc:a992320fa4e3a64f4f4600bb7e996c193"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bus baud rate. <br/></td></tr>
<tr class="separator:a992320fa4e3a64f4f4600bb7e996c193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac69133eb56496fa30f5a1de66fd0d70f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac69133eb56496fa30f5a1de66fd0d70f"></a>
status_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#ac69133eb56496fa30f5a1de66fd0d70f">setFrequency</a> )(uint32_t frequency)</td></tr>
<tr class="memdesc:ac69133eb56496fa30f5a1de66fd0d70f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set frequency of SPI. <br/></td></tr>
<tr class="separator:ac69133eb56496fa30f5a1de66fd0d70f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28c4b16063bff43d3c1bbf5f33920992"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28c4b16063bff43d3c1bbf5f33920992"></a>
status_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a28c4b16063bff43d3c1bbf5f33920992">exchange</a> )(uint8_t *in, uint8_t *out, uint32_t size)</td></tr>
<tr class="memdesc:a28c4b16063bff43d3c1bbf5f33920992"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exchange data over SPI. <br/></td></tr>
<tr class="separator:a28c4b16063bff43d3c1bbf5f33920992"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a501741440de7982b689a68ac83aa11d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a501741440de7982b689a68ac83aa11d9"></a>
uint32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a501741440de7982b689a68ac83aa11d9">getCurrentMilliseconds</a> )(void)</td></tr>
<tr class="memdesc:a501741440de7982b689a68ac83aa11d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current time in milliseconds. <br/></td></tr>
<tr class="separator:a501741440de7982b689a68ac83aa11d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<a name="structsdspi__card__t" id="structsdspi__card__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct sdspi_card_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>Define the card structure including the necessary fields to identify and describe the card. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:abbd787527a60453185564c7ec7c60497"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abbd787527a60453185564c7ec7c60497"></a>
<a class="el" href="group__SDSPI.html#structsdspi__host__t">sdspi_host_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#abbd787527a60453185564c7ec7c60497">host</a></td></tr>
<tr class="memdesc:abbd787527a60453185564c7ec7c60497"><td class="mdescLeft">&#160;</td><td class="mdescRight">Host state information. <br/></td></tr>
<tr class="separator:abbd787527a60453185564c7ec7c60497"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60fac9db0662250d42f2ffedd5570bf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60fac9db0662250d42f2ffedd5570bf0"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a60fac9db0662250d42f2ffedd5570bf0">relativeAddress</a></td></tr>
<tr class="memdesc:a60fac9db0662250d42f2ffedd5570bf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Relative address of the card. <br/></td></tr>
<tr class="separator:a60fac9db0662250d42f2ffedd5570bf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50d10b36a68b5de292077bf91875698d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a50d10b36a68b5de292077bf91875698d">flags</a></td></tr>
<tr class="memdesc:a50d10b36a68b5de292077bf91875698d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags defined in _sdspi_card_flag. <a href="#a50d10b36a68b5de292077bf91875698d">More...</a><br/></td></tr>
<tr class="separator:a50d10b36a68b5de292077bf91875698d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89303456d23e3219e55c526ec6cfed9c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89303456d23e3219e55c526ec6cfed9c"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a89303456d23e3219e55c526ec6cfed9c">rawCid</a> [16U]</td></tr>
<tr class="memdesc:a89303456d23e3219e55c526ec6cfed9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw CID content. <br/></td></tr>
<tr class="separator:a89303456d23e3219e55c526ec6cfed9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61ec55e03b601abc63b9fb1108bc59ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a61ec55e03b601abc63b9fb1108bc59ac"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a61ec55e03b601abc63b9fb1108bc59ac">rawCsd</a> [16U]</td></tr>
<tr class="memdesc:a61ec55e03b601abc63b9fb1108bc59ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw CSD content. <br/></td></tr>
<tr class="separator:a61ec55e03b601abc63b9fb1108bc59ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a515d12e9ba824062699fc52e95a7107d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a515d12e9ba824062699fc52e95a7107d"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a515d12e9ba824062699fc52e95a7107d">rawScr</a> [8U]</td></tr>
<tr class="memdesc:a515d12e9ba824062699fc52e95a7107d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw SCR content. <br/></td></tr>
<tr class="separator:a515d12e9ba824062699fc52e95a7107d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a944b85aa51494ed8de4761f7ec0528a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a944b85aa51494ed8de4761f7ec0528a4"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a944b85aa51494ed8de4761f7ec0528a4">ocr</a></td></tr>
<tr class="memdesc:a944b85aa51494ed8de4761f7ec0528a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw OCR content. <br/></td></tr>
<tr class="separator:a944b85aa51494ed8de4761f7ec0528a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24dc064f3a85f584f5b8409b94efa1bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24dc064f3a85f584f5b8409b94efa1bf"></a>
sd_cid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a24dc064f3a85f584f5b8409b94efa1bf">cid</a></td></tr>
<tr class="memdesc:a24dc064f3a85f584f5b8409b94efa1bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">CID. <br/></td></tr>
<tr class="separator:a24dc064f3a85f584f5b8409b94efa1bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9c6b2a3d22e7abc7780ec8a6b5f9d98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9c6b2a3d22e7abc7780ec8a6b5f9d98"></a>
sd_csd_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#ac9c6b2a3d22e7abc7780ec8a6b5f9d98">csd</a></td></tr>
<tr class="memdesc:ac9c6b2a3d22e7abc7780ec8a6b5f9d98"><td class="mdescLeft">&#160;</td><td class="mdescRight">CSD. <br/></td></tr>
<tr class="separator:ac9c6b2a3d22e7abc7780ec8a6b5f9d98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a246537655ae68ffd8472df9bf6255b27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a246537655ae68ffd8472df9bf6255b27"></a>
sd_scr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a246537655ae68ffd8472df9bf6255b27">scr</a></td></tr>
<tr class="memdesc:a246537655ae68ffd8472df9bf6255b27"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCR. <br/></td></tr>
<tr class="separator:a246537655ae68ffd8472df9bf6255b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ee807bcedf1f47a3563b738e7f2571b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ee807bcedf1f47a3563b738e7f2571b"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a6ee807bcedf1f47a3563b738e7f2571b">blockCount</a></td></tr>
<tr class="memdesc:a6ee807bcedf1f47a3563b738e7f2571b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Card total block number. <br/></td></tr>
<tr class="separator:a6ee807bcedf1f47a3563b738e7f2571b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a223bef1e8979e1f6780365cbfa2772a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a223bef1e8979e1f6780365cbfa2772a6"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDSPI.html#a223bef1e8979e1f6780365cbfa2772a6">blockSize</a></td></tr>
<tr class="memdesc:a223bef1e8979e1f6780365cbfa2772a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Card block size. <br/></td></tr>
<tr class="separator:a223bef1e8979e1f6780365cbfa2772a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a50d10b36a68b5de292077bf91875698d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t sdspi_card_t::flags</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga6167a5292ff7a5574dc997b27cc55872"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__SDSPI.html#ga6167a5292ff7a5574dc997b27cc55872">_sdspi_status</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a63f54fd90d8568993990b0dd1215ebea"></a>kStatus_SDSPI_SetFrequencyFailed</em>&nbsp;</td><td class="fielddoc">
<p>Set frequency failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a3c922b711a1e2c63bf95b421bae19643"></a>kStatus_SDSPI_ExchangeFailed</em>&nbsp;</td><td class="fielddoc">
<p>Exchange data on SPI bus failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a5d072cfe065434dd96e84b3dbfb6b763"></a>kStatus_SDSPI_WaitReadyFailed</em>&nbsp;</td><td class="fielddoc">
<p>Wait card ready failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a94eeae627e7f56d66a6ca9f29c22a9b4"></a>kStatus_SDSPI_ResponseError</em>&nbsp;</td><td class="fielddoc">
<p>Response is error. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a00d3cccf7db647c2133a6fda4c3b53ae"></a>kStatus_SDSPI_WriteProtected</em>&nbsp;</td><td class="fielddoc">
<p>Write protected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a49f8f5fcaa3a3135640fa50e411a1ea8"></a>kStatus_SDSPI_GoIdleFailed</em>&nbsp;</td><td class="fielddoc">
<p>Go idle failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a5492a48fffbd51bb8c1a40d66bbcc6c3"></a>kStatus_SDSPI_SendCommandFailed</em>&nbsp;</td><td class="fielddoc">
<p>Send command failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872ad46c8f2abdfee3d6d5dbf1e17f283832"></a>kStatus_SDSPI_ReadFailed</em>&nbsp;</td><td class="fielddoc">
<p>Read data failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872af52fc552192610b555b92b4a180ab0fe"></a>kStatus_SDSPI_WriteFailed</em>&nbsp;</td><td class="fielddoc">
<p>Write data failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872ab08abfbc06ee3ad45fa4a1dd6ab68380"></a>kStatus_SDSPI_SendInterfaceConditionFailed</em>&nbsp;</td><td class="fielddoc">
<p>Send interface condition failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a4196863dc558bb96b17721929d9f47ce"></a>kStatus_SDSPI_SendOperationConditionFailed</em>&nbsp;</td><td class="fielddoc">
<p>Send operation condition failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a34ccd32578318f3115218282afb95d1e"></a>kStatus_SDSPI_ReadOcrFailed</em>&nbsp;</td><td class="fielddoc">
<p>Read OCR failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a2d5b300f06eebb9d0afd9fe30ba63957"></a>kStatus_SDSPI_SetBlockSizeFailed</em>&nbsp;</td><td class="fielddoc">
<p>Set block size failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a76c63c33814ba7a33b25205f70c4530f"></a>kStatus_SDSPI_SendCsdFailed</em>&nbsp;</td><td class="fielddoc">
<p>Send CSD failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872ae8362579d073b197fbb5b56983d48b5a"></a>kStatus_SDSPI_SendCidFailed</em>&nbsp;</td><td class="fielddoc">
<p>Send CID failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872acb8c97a49b21cba91374e3cf9f1e41a6"></a>kStatus_SDSPI_StopTransmissionFailed</em>&nbsp;</td><td class="fielddoc">
<p>Stop transmission failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6167a5292ff7a5574dc997b27cc55872a5df3eb42a9563d3b2281f17ff6ee4ee5"></a>kStatus_SDSPI_SendApplicationCommandFailed</em>&nbsp;</td><td class="fielddoc">
<p>Send application command failed. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga4c4f355f5d1f428fcf7fb51a1e550556"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__SDSPI.html#ga4c4f355f5d1f428fcf7fb51a1e550556">_sdspi_card_flag</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga4c4f355f5d1f428fcf7fb51a1e550556a9ad962c03f87ba1ad2a87d9f311a489c"></a>kSDSPI_SupportHighCapacityFlag</em>&nbsp;</td><td class="fielddoc">
<p>Card is high capacity. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4c4f355f5d1f428fcf7fb51a1e550556ac56722187769d3e1cb88aafdff88c3d1"></a>kSDSPI_SupportSdhcFlag</em>&nbsp;</td><td class="fielddoc">
<p>Card is SDHC. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4c4f355f5d1f428fcf7fb51a1e550556aac2f60b67a34203de32aedd517526bac"></a>kSDSPI_SupportSdxcFlag</em>&nbsp;</td><td class="fielddoc">
<p>Card is SDXC. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4c4f355f5d1f428fcf7fb51a1e550556a3e947033f2e83e0e69cdd2e3d4bb9ea0"></a>kSDSPI_SupportSdscFlag</em>&nbsp;</td><td class="fielddoc">
<p>Card is SDSC. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga65399c834121bb68b275856bd02b1163"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__SDSPI.html#ga65399c834121bb68b275856bd02b1163">sdspi_response_type_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga65399c834121bb68b275856bd02b1163af2d0de929527131f2c78bf601e778353"></a>kSDSPI_ResponseTypeR1</em>&nbsp;</td><td class="fielddoc">
<p>Response 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga65399c834121bb68b275856bd02b1163a3df9332b3af59c5fbeeea71489e0bbe6"></a>kSDSPI_ResponseTypeR1b</em>&nbsp;</td><td class="fielddoc">
<p>Response 1 with busy. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga65399c834121bb68b275856bd02b1163ab614558dd9e6b2592b11b4ec55168bc3"></a>kSDSPI_ResponseTypeR2</em>&nbsp;</td><td class="fielddoc">
<p>Response 2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga65399c834121bb68b275856bd02b1163a99f741eccabfd6709887cffb51001f6e"></a>kSDSPI_ResponseTypeR3</em>&nbsp;</td><td class="fielddoc">
<p>Response 3. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga65399c834121bb68b275856bd02b1163ac88551d71e089ab2cfe2e22a1b29ce1d"></a>kSDSPI_ResponseTypeR7</em>&nbsp;</td><td class="fielddoc">
<p>Response 7. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga1189771b440db3505261286c9b1ee7eb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t SDSPI_Init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the card on a specific SPI instance.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDSPI_SetFrequencyFailed</td><td>Set frequency failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_GoIdleFailed</td><td>Go idle failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_SendInterfaceConditionFailed</td><td>Send interface condition failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_SendOperationConditionFailed</td><td>Send operation condition failed. </td></tr>
<tr><td class="paramname">kStatus_Timeout</td><td>Send command timeout. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_NotSupportYet</td><td>Not support yet. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_ReadOcrFailed</td><td>Read OCR failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_SetBlockSizeFailed</td><td>Set block size failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_SendCsdFailed</td><td>Send CSD failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_SendCidFailed</td><td>Send CID failed. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Operate successfully. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga320e97ada05d089fe26716208490cc02"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SDSPI_Deinit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deinitializes the specific card.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf94180d46e7263a8e7f99b47e8e61a79"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool SDSPI_CheckReadOnly </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function checks if the card is write-protected via CSD register.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">true</td><td>Card is read only. </td></tr>
<tr><td class="paramname">false</td><td>Card isn't read only. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaec09ae357857fef13f7c70c34acb5c4d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t SDSPI_ReadBlocks </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>startBlock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>blockCount</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function reads blocks from specific card.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">buffer</td><td>the buffer to hold the data read from card </td></tr>
<tr><td class="paramname">startBlock</td><td>the start block index </td></tr>
<tr><td class="paramname">blockCount</td><td>the number of blocks to read </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDSPI_SendCommandFailed</td><td>Send command failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_ReadFailed</td><td>Read data failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_StopTransmissionFailed</td><td>Stop transmission failed. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Operate successfully. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6c007d811f72a0854cdb74d9afb199b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t SDSPI_WriteBlocks </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__SDSPI.html#structsdspi__card__t">sdspi_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>startBlock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>blockCount</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function writes blocks to specific card</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">buffer</td><td>the buffer holding the data to be written to the card </td></tr>
<tr><td class="paramname">startBlock</td><td>the start block index </td></tr>
<tr><td class="paramname">blockCount</td><td>the number of blocks to write </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDSPI_WriteProtected</td><td>Card is write protected. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_SendCommandFailed</td><td>Send command failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_ResponseError</td><td>Response is error. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_WriteFailed</td><td>Write data failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_ExchangeFailed</td><td>Exchange data over SPI failed. </td></tr>
<tr><td class="paramname">kStatus_SDSPI_WaitReadyFailed</td><td>Wait card to be ready status failed. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Operate successfully. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 Freescale Semiconductor, Inc. All rights reserved.
</li>
</ul>
</div>
</body>
</html>