Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board

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_addressi2c_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
ackIf 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
address7-bit I2C address
commandCommand byte
lengthLength of array
valuesByte 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
address7-bit I2C address
lengthLength of array
valuesByte 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
address7-bit I2C address
valueByte 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
address7-bit I2C address
commandCommand byte
valueByte 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
address7-bit I2C address
commandCommand byte
valueWord 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
address7-bit I2C address
commandCommand word
lengthLength of array
valuesByte 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
databyte 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
address7-bit I2C address
commandCommand byte
lengthLength of array
valuesByte 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
address7-bit I2C address
valueByte 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
address7-bit I2C address
commandCommand byte
valueByte 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
address7-bit I2C address
commandCommand byte
valueWord 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.