| Linduino 1.3.0 Linear Technology Arduino-Compatible Demonstration Board

Functions | Macros
LT_I2C.cpp File Reference
Linduino: Linear Technology Arduino-Compatible Demonstration Board Support Libraries » LT_I2C: Routines to Communicate With ATmega328P's hardware I2C port.

Library for LT_I2C: Routines to Communicate With ATmega328P's hardware I2C port. More...

## Detailed Description

Library for LT_I2C: Routines to Communicate With ATmega328P's hardware I2C port.

Definition in file LT_I2C.cpp.

Go to the source code of this file.

## Functions
int8_t | i2c_read_byte (uint8_t address, uint8_t *value)
| Read a byte, store in "value". More...
int8_t | i2c_write_byte (uint8_t address, uint8_t value)
| Write "value" byte to device at "address". More...
int8_t | i2c_read_byte_data (uint8_t address, uint8_t command, uint8_t *value)
| Read a byte of data at register specified by "command", store in "value". More...
int8_t | i2c_write_byte_data (uint8_t address, uint8_t command, uint8_t value)
| Write a byte of data to register specified by "command". More...
int8_t | i2c_read_word_data (uint8_t address, uint8_t command, uint16_t *value)
| Read a 16-bit word of data from register specified by "command". More...
int8_t | i2c_write_word_data (uint8_t address, uint8_t command, uint16_t value)
| Write a 16-bit word of data to register specified by "command". More...
int8_t | i2c_read_block_data (uint8_t address, uint8_t command, uint8_t length, uint8_t *values)
| Read a block of data, starting at register specified by "command" and ending at (command + length - 1) More...
int8_t | i2c_read_block_data (uint8_t address, uint8_t length, uint8_t *values)
| Read a block of data, no command byte, reads length number of bytes and stores it in values. More...
int8_t | i2c_write_block_data (uint8_t address, uint8_t command, uint8_t length, uint8_t *values)
| Write a block of data, starting at register specified by "command" and ending at (command + length - 1) More...
int8_t | i2c_two_byte_command_read_block (uint8_t address, uint16_t command, uint8_t length, uint8_t *values)
| Write a two command bytes, then receive a block of data. More...
void | quikeval_I2C_init (void)
| Initializes Linduino I2C port. More...
void | quikeval_I2C_connect (void)
| Switch MUX to connect I2C pins to QuikEval connector. More...
void | i2c_enable ()
| i2c_enable or quikeval_I2C_init must be called before using any of the other I2C routines. More...
int8_t | i2c_start ()
| Write start bit to the hardware I2C port. More...
int8_t | i2c_repeated_start ()
| Write a repeat start bit to the hardware I2C port. More...
void | i2c_stop ()
| Write stop bit to the hardware I2C port. More...
int8_t | i2c_write (uint8_t data)
| Send a data byte to hardware I2C port. More...
uint8_t | i2c_read (int8_t ack)
| Read a data byte from the hardware I2C port. More...
int8_t | i2c_poll (uint8_t i2c_address)
| Poll the I2C port and look for an acknowledge. More...

## Macros
#define | F_CPU 16000000UL
| CPU master clock frequency. More...

## Function Documentation

## ◆ i2c_enable()

void i2c_enable | ( | void |  | ) |

i2c_enable or quikeval_I2C_init must be called before using any of the other I2C routines.

Definition at line 414 of file LT_I2C.cpp.

## ◆ i2c_poll()

int8_t i2c_poll | ( | uint8_t | i2c_address | ) |

Poll the I2C port and look for an acknowledge.

Returns
  Returns 0 if successful, 1 if not successful

Parameters

  i2c_address | i2c_address is the address of the slave being polled.

Definition at line 526 of file LT_I2C.cpp.

## ◆ i2c_read()

uint8_t i2c_read | ( | int8_t | ack | ) |

Read a data byte from the hardware I2C port.

If ack is 0 then an acknowledge (ACK) is generated, else a NACK is generated.

Returns
  the data byte read.

Parameters

  ack | If ACK is 0 then an acknowledge is generated, else a NACK is generated.

Definition at line 491 of file LT_I2C.cpp.

## ◆ i2c_read_block_data() [1/2]

int8_t i2c_read_block_data | ( | uint8_t | address,
|  | uint8_t | command,
|  | uint8_t | length,
|  | uint8_t * | values
| ) |  |

Read a block of data, starting at register specified by "command" and ending at (command + length - 1)

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  command | Command byte
  length | Length of array
  values | Byte array to be read

Definition at line 244 of file LT_I2C.cpp.

## ◆ i2c_read_block_data() [2/2]

int8_t i2c_read_block_data | ( | uint8_t | address,
|  | uint8_t | length,
|  | uint8_t * | values
| ) |  |

Read a block of data, no command byte, reads length number of bytes and stores it in values.

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  length | Length of array
  values | Byte array to be read

Definition at line 291 of file LT_I2C.cpp.

## ◆ i2c_read_byte()

int8_t i2c_read_byte | ( | uint8_t | address,
|  | uint8_t * | value
| ) |  |

Read a byte, store in "value".

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  value | Byte to be read

Definition at line 93 of file LT_I2C.cpp.

## ◆ i2c_read_byte_data()

int8_t i2c_read_byte_data | ( | uint8_t | address,
|  | uint8_t | command,
|  | uint8_t * | value
| ) |  |

Read a byte of data at register specified by "command", store in "value".

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  command | Command byte
  value | Byte to be read

Definition at line 124 of file LT_I2C.cpp.

## ◆ i2c_read_word_data()

int8_t i2c_read_word_data | ( | uint8_t | address,
|  | uint8_t | command,
|  | uint16_t * | value
| ) |  |

Read a 16-bit word of data from register specified by "command".

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  command | Command byte
  value | Word to be read

Definition at line 172 of file LT_I2C.cpp.

## ◆ i2c_repeated_start()

int8_t i2c_repeated_start | ( |  | ) |

Write a repeat start bit to the hardware I2C port.

Returns
  0 if successful, 1 if not successful

Definition at line 444 of file LT_I2C.cpp.

## ◆ i2c_start()

int8_t i2c_start | ( |  | ) |

Write start bit to the hardware I2C port.

Returns
  0 if successful, 1 if not successful

Definition at line 425 of file LT_I2C.cpp.

## ◆ i2c_stop()

void i2c_stop | ( |  | ) |

Write stop bit to the hardware I2C port.

Definition at line 462 of file LT_I2C.cpp.

## ◆ i2c_two_byte_command_read_block()

int8_t i2c_two_byte_command_read_block | ( | uint8_t | address,
|  | uint16_t | command,
|  | uint8_t | length,
|  | uint8_t * | values
| ) |  |

Write a two command bytes, then receive a block of data.

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  command | Command word
  length | Length of array
  values | Byte array to be read

Definition at line 345 of file LT_I2C.cpp.

## ◆ i2c_write()

int8_t i2c_write | ( | uint8_t | data | ) |

Send a data byte to hardware I2C port.

Returns
  0 if successful, 1 if not successful

Parameters

  data | byte that will be written to hardware I2C port.

Definition at line 470 of file LT_I2C.cpp.

## ◆ i2c_write_block_data()

int8_t i2c_write_block_data | ( | uint8_t | address,
|  | uint8_t | command,
|  | uint8_t | length,
|  | uint8_t * | values
| ) |  |

Write a block of data, starting at register specified by "command" and ending at (command + length - 1)

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  command | Command byte
  length | Length of array
  values | Byte array to be written

Definition at line 321 of file LT_I2C.cpp.

## ◆ i2c_write_byte()

int8_t i2c_write_byte | ( | uint8_t | address,
|  | uint8_t | value
| ) |  |

Write "value" byte to device at "address".

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  value | Byte to be written

Definition at line 109 of file LT_I2C.cpp.

## ◆ i2c_write_byte_data()

int8_t i2c_write_byte_data | ( | uint8_t | address,
|  | uint8_t | command,
|  | uint8_t | value
| ) |  |

Write a byte of data to register specified by "command".

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  command | Command byte
  value | Byte to be written

Definition at line 155 of file LT_I2C.cpp.

## ◆ i2c_write_word_data()

int8_t i2c_write_word_data | ( | uint8_t | address,
|  | uint8_t | command,
|  | uint16_t | value
| ) |  |

Write a 16-bit word of data to register specified by "command".

Returns
  0 on success, 1 on failure

Parameters

  address | 7-bit I2C address
  command | Command byte
  value | Word to be written

Definition at line 216 of file LT_I2C.cpp.

## ◆ quikeval_I2C_connect()

void quikeval_I2C_connect | ( | void |  | ) |

Switch MUX to connect I2C pins to QuikEval connector.

This will disconnect SPI pins.

Definition at line 401 of file LT_I2C.cpp.

## ◆ quikeval_I2C_init()

void quikeval_I2C_init | ( | void |  | ) |

Initializes Linduino I2C port.

Before communicating to the I2C port through the QuikEval connector, you must also run quikeval_I2C_connect to connect the I2C port to the QuikEval connector through the QuikEval MUX (and disconnect SPI).

Definition at line 394 of file LT_I2C.cpp.

## Macro Definition Documentation

## ◆ F_CPU

#define F_CPU 16000000UL

CPU master clock frequency.

Definition at line 89 of file LT_I2C.cpp.