OpenCores
URL https://opencores.org/ocsvn/xenie/xenie/trunk

Subversion Repositories xenie

[/] [xenie/] [trunk/] [examples/] [Eth_example/] [mb_fw/] [drivers/] [iic_v3_4/] [doc/] [html/] [api/] [xiic__eeprom__example_8c.html] - Rev 4

Compare with Previous | Blame | View Log

<!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.11"/>
<title>iic_v3_4: xiic_eeprom_example.c File Reference</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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.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="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">iic_v3_4
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></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('xiic__eeprom__example_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xiic_eeprom_example.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>The <a class="el" href="struct_x_iic.html" title="The XIic driver instance data. ">XIic</a> driver uses the complete FIFO functionality to transmit/receive data.</p>
<p>This example writes/reads from the lower 256 bytes of the IIC EEPROMS. Please refer to the datasheets of the IIC EEPROM's for details about the internal addressing and page size of these devices.</p>
<p>The <a class="el" href="group__iic__v3__1.html#ga977382e8a20bd5e690229f82af2e7603" title="This function sends data as a master on the IIC bus. ">XIic_MasterSend()</a> API is used to transmit the data and <a class="el" href="group__iic__v3__1.html#ga337bf0d322d4a7d9b4f8baa30e00ab45" title="This function receives data as a master from a slave device on the IIC bus. ">XIic_MasterRecv()</a> API is used to receive the data.</p>
<p>This example is tested on ML300/ML310/ML410/ML403/ML501/ML507/ML510/ML605/ SP601, SP605, KC705 , ZC702 and ZC706 Xilinx boards.</p>
<p>The ML310/ML510/ML410 boards have a on-board 64 Kb serial IIC EEPROM (Microchip 24LC64A). The WP pin of the IIC EEPROM is hardwired to ground on this board.</p>
<p>The ML300 board has an on-board 32 Kb serial IIC EEPROM(Microchip 24LC32A). The WP pin of the IIC EEPROM has to be connected to ground for this example. The WP is connected to pin Y3 of the FPGA.</p>
<p>The ML403 board has an on-board 4 Kb serial IIC EEPROM(Microchip 24LC04A). The WP pin of the IIC EEPROM is hardwired to ground on this board.</p>
<p>The ML501/ML505/ML507/ML605/SP601/SP605/KC705/ZC702/ZC706 boards have an on-board 8 Kb serial IIC EEPROM(STM M24C08). The WP pin of the IIC EEPROM is hardwired to ground on these boards.</p>
<p>The AddressType for ML300/ML310/ML410/ML510 boards should be u16 as the address pointer in the on board EEPROM is 2 bytes.</p>
<p>The AddressType for ML403/ML501/ML505/ML507/ML605/SP601/SP605/KC705/ZC702/ ZC706 boards should be u8 as the address pointer for the on board EEPROM is 1 byte.</p>
<p>The 7 bit IIC Slave address of the IIC EEPROM on the ML300/ML310/ML403/ML410/ ML501/ML505/ML507/ML510 boards is 0x50. The 7 bit IIC Slave address of the IIC EEPROM on the ML605/SP601/SP605/KC705 /ZC702/ZC706 boards is 0x54. Refer to the User Guide's of the respective boards for further information about the IIC slave address of IIC EEPROM's.</p>
<p>The define EEPROM_ADDRESS in this file needs to be changed depending on the board on which this example is to be run. This is the IIC address of the EEPROM.</p>
<p>The define IIC_MUX_ADDRESS in this file needs to be changed depending on the board on which this example is to be run. This is the IIC address of the the MUX.</p>
<p>The define IIC_MUX_ENABLE should be defined so that the IIC Mux initialization is done for the boards on the which the EEPROM is connected to an IIC Mux. The boards with a MUX are a KC705/ZC702/ZC706.</p>
<p>The define IIC_EEPROM_CHANNEL needs to be changed depending on the Channel number of EEPROM for IIC Mux. On KC705 it is 0x08 and ZC702 is 0x04. Please refer the User Guide's of the respective boards for further information about the Channel number to use EEPROM.</p>
<p>This code assumes that no Operating System is being used.</p>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>None.</p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who  Date	 Changes
----- ---- -------- ---------------------------------------------------------
1.00a mta  02/24/06 Created.
1.00a mta  04/05/07 Added support for microblaze.
2.00a ktn  11/17/09 Updated to use the HAL APIs and replaced call to
      	      XIic_Initialize API with XIic_LookupConfig and
      	      XIic_CfgInitialize.
2.01a ktn  03/17/10 Updated the information about the EEPROM's used on
      	      ML605/SP601/SP605 boards. Updated the example so that it
      	      can be used to access the entire IIC EEPROM for devices
      	      like M24C04/M24C08 that use LSB bits of the IIC device
      	      select code (IIC slave address) to specify the higher
      	      address bits of the EEPROM internal address.
2.02a bss  01/30/13 Updated for using the GIC in case of Zynq
2.06a bss  02/14/13 Added MuxInit API to support Zynq and KC705 boards and
      	      modified to use ScuGic in case of Zynq CR# 683509</pre><pre></pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a4c4c3f7392436fef291d17d37a38d931"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiic__eeprom__example_8c.html#a4c4c3f7392436fef291d17d37a38d931">IicEepromExample</a> ()</td></tr>
<tr class="separator:a4c4c3f7392436fef291d17d37a38d931"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40d92867ead2dc8efe06207b8b0f3494"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiic__eeprom__example_8c.html#a40d92867ead2dc8efe06207b8b0f3494">EepromWriteData</a> (u16 ByteCount)</td></tr>
<tr class="separator:a40d92867ead2dc8efe06207b8b0f3494"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72f47aa22ac802f95eaec2691bf7ccb5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiic__eeprom__example_8c.html#a72f47aa22ac802f95eaec2691bf7ccb5">EepromReadData</a> (u8 *BufferPtr, u16 ByteCount)</td></tr>
<tr class="separator:a72f47aa22ac802f95eaec2691bf7ccb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a840291bc02cba5474a4cb46a9b9566fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiic__eeprom__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a> (void)</td></tr>
<tr class="separator:a840291bc02cba5474a4cb46a9b9566fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a72f47aa22ac802f95eaec2691bf7ccb5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int EepromReadData </td>
          <td>(</td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>BufferPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>ByteCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
 
<p>This function reads data from the IIC serial EEPROM into a specified buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BufferPtr</td><td>contains the address of the data buffer to be filled. </td></tr>
    <tr><td class="paramname">ByteCount</td><td>contains the number of bytes in the buffer to be read.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if successful else XST_FAILURE.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>
 
<p>References <a class="el" href="xiic__eeprom__example_8c.html#a40d92867ead2dc8efe06207b8b0f3494">EepromWriteData()</a>, <a class="el" href="group__iic__v3__1.html#gace6af337aea33e4f162897b40591e0ac">XII_ADDR_TO_SEND_TYPE</a>, <a class="el" href="group__iic__v3__1.html#ga50c5aa4448e8993c80ef7b6a87b1aaea">XIic_InterruptHandler()</a>, <a class="el" href="group__iic__v3__1.html#ga337bf0d322d4a7d9b4f8baa30e00ab45">XIic_MasterRecv()</a>, <a class="el" href="group__iic__v3__1.html#gad944f42c3d9972fc2c986a7eed726297">XIic_SetAddress()</a>, <a class="el" href="group__iic__v3__1.html#ga5f4e497710a9c3719f27d40faa74a10f">XIic_Start()</a>, and <a class="el" href="group__iic__v3__1.html#gaaa989e0128057bf11803825d774d496f">XIic_Stop()</a>.</p>
 
<p>Referenced by <a class="el" href="xiic__eeprom__example_8c.html#a4c4c3f7392436fef291d17d37a38d931">IicEepromExample()</a>.</p>
 
</div>
</div>
<a class="anchor" id="a40d92867ead2dc8efe06207b8b0f3494"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int EepromWriteData </td>
          <td>(</td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>ByteCount</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
 
<p>This function writes a buffer of data to the IIC serial EEPROM. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ByteCount</td><td>contains the number of bytes in the buffer to be written.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if successful else XST_FAILURE.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The Byte count should not exceed the page size of the EEPROM as noted by the constant PAGE_SIZE. </dd></dl>
 
<p>References <a class="el" href="struct_x_iic.html#a823a2f7407e2c6990f1eb507ea742e85">XIic::Stats</a>, <a class="el" href="struct_x_iic_stats.html#a35580c344011980f77137d9957a8e308">XIicStats::TxErrors</a>, <a class="el" href="group__iic__v3__1.html#ga977382e8a20bd5e690229f82af2e7603">XIic_MasterSend()</a>, <a class="el" href="group__iic__v3__1.html#ga5f4e497710a9c3719f27d40faa74a10f">XIic_Start()</a>, and <a class="el" href="group__iic__v3__1.html#gaaa989e0128057bf11803825d774d496f">XIic_Stop()</a>.</p>
 
<p>Referenced by <a class="el" href="xiic__eeprom__example_8c.html#a72f47aa22ac802f95eaec2691bf7ccb5">EepromReadData()</a>, and <a class="el" href="xiic__eeprom__example_8c.html#a4c4c3f7392436fef291d17d37a38d931">IicEepromExample()</a>.</p>
 
</div>
</div>
<a class="anchor" id="a4c4c3f7392436fef291d17d37a38d931"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int IicEepromExample </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
 
<p>This function writes, reads, and verifies the data to the IIC EEPROM. </p>
<p>It does the write as a single page write, performs a buffered read.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if successful else XST_FAILURE.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>
 
<p>References <a class="el" href="struct_x_iic___config.html#ae783f76b6713be6d9b77060d77328102">XIic_Config::BaseAddress</a>, <a class="el" href="xiic__eeprom__example_8c.html#a72f47aa22ac802f95eaec2691bf7ccb5">EepromReadData()</a>, <a class="el" href="xiic__eeprom__example_8c.html#a40d92867ead2dc8efe06207b8b0f3494">EepromWriteData()</a>, <a class="el" href="group__iic__v3__1.html#gace6af337aea33e4f162897b40591e0ac">XII_ADDR_TO_SEND_TYPE</a>, <a class="el" href="group__iic__v3__1.html#ga301f08e1fa6e74bf4c2885702bf0ff70">XIic_CfgInitialize()</a>, <a class="el" href="group__iic__v3__1.html#ga1dcc65dd7cb7863bf6769aed5d785304">XIic_LookupConfig()</a>, <a class="el" href="group__iic__v3__1.html#gad944f42c3d9972fc2c986a7eed726297">XIic_SetAddress()</a>, <a class="el" href="group__iic__v3__1.html#ga86b4b2b307df26df2ecac39337c78bed">XIic_SetRecvHandler()</a>, <a class="el" href="group__iic__v3__1.html#gad33428830e9016ef50c1deae59d1e604">XIic_SetSendHandler()</a>, and <a class="el" href="group__iic__v3__1.html#gaa74a6884f6dfc826a10768d7d0333991">XIic_SetStatusHandler()</a>.</p>
 
<p>Referenced by <a class="el" href="xiic__eeprom__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main()</a>.</p>
 
</div>
</div>
<a class="anchor" id="a840291bc02cba5474a4cb46a9b9566fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
 
<p>Main function to call the High level EEPROM example. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if successful else XST_FAILURE.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>
 
<p>References <a class="el" href="xiic__eeprom__example_8c.html#a4c4c3f7392436fef291d17d37a38d931">IicEepromExample()</a>.</p>
 
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.