iic: xiic_tenbitaddr_example.c File Reference

| iic Xilinx SDK Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List
- Examples

Functions
xiic_tenbitaddr_example.c File Reference

## Overview

This file consists of a Interrupt mode design example which uses the Xilinx IIC device and XIic driver to exercise the 10-bit Address functionality of the IIC device.

The XIic_MasterSend() API is used to transmit the data and XIic_MasterRecv() API is used to receive the data.

The example is tested on ML300/ML310/ML403/ML501 Xilinx boards.

The IIC devices that are present on the Xilinx boards donot support the 10-bit functionality. This example has been tested with an off board external IIC Master device and the IIC device configured as a Slave.

This code assumes that no Operating System is being used.

Note

None.

    MODIFICATION HISTORY:

    Ver   Who  Date  Changes

    1.00a mta  03/01/06 Created.
    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. Made minor modifications as
                  per coding guidelines.
    3.4   ms   01/23/17 Added xil_printf statement in main function to
                        ensure that "Successfully ran" and "Failed" strings
                        are available in all examples. This is a fix for
                        CR-965028.

## Functions
int | IicTenBitAddrExample ()
| This function writes and reads the data as a slave. More...
int | TenBitAddrWriteData (u16 ByteCount)
| This function writes a buffer of bytes to the IIC bus when the IIC master initiates a read operation. More...
int | TenBitAddrReadData (u8 *BufferPtr, u16 ByteCount)
| This function reads a buffer of bytes when the IIC Master on the bus writes data to the slave device. More...
int | main (void)
| Main function to call the IIC Slave example. More...

## Function Documentation

int IicTenBitAddrExample | ( |  | ) |

This function writes and reads the data as a slave.

The IIC master on the bus initiates the transfers.

Parameters

  None. |

Returns
  XST_SUCCESS if successful else XST_FAILURE.

Note
  None.

References XIic_Config::BaseAddress, TenBitAddrReadData(), TenBitAddrWriteData(), XII_ADDR_TO_RESPOND_TYPE, XIic_CfgInitialize(), XIic_LookupConfig(), XIic_SetAddress(), XIic_SetOptions(), XIic_SetRecvHandler(), XIic_SetSendHandler(), XIic_SetStatusHandler(), and XIic_SlaveInclude().

Referenced by main().

int main | ( | void |  | ) |

Main function to call the IIC Slave example.

Parameters

  None. |

Returns
  XST_SUCCESS if successful else XST_FAILURE.

Note
  None.

References IicTenBitAddrExample().

int TenBitAddrReadData | ( | u8 * | BufferPtr,
|  | u16 | ByteCount
| ) |  |

This function reads a buffer of bytes when the IIC Master on the bus writes data to the slave device.

Parameters

  BufferPtr | contains the address of the data buffer to be filled.
  ByteCount | contains the number of bytes in the buffer to be read.

Returns
  XST_SUCCESS if successful else XST_FAILURE.

Note
  None

References XIic::BaseAddress, XIic_IntrGlobalDisable, XIic_IntrGlobalEnable, XIic_SlaveRecv(), XIic_Start(), and XIic_Stop().

Referenced by IicTenBitAddrExample().

int TenBitAddrWriteData | ( | u16 | ByteCount | ) |

This function writes a buffer of bytes to the IIC bus when the IIC master initiates a read operation.

Parameters

  ByteCount | contains the number of bytes in the buffer to be written.

Returns
  XST_SUCCESS if successful else XST_FAILURE.

Note
  None.

References XIic::BaseAddress, XIic_IntrGlobalDisable, XIic_IntrGlobalEnable, XIic_SlaveSend(), XIic_Start(), and XIic_Stop().

Referenced by IicTenBitAddrExample().