Two-Wire Interface (TWI) driver for SAM.
Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.
#include "twi.h"
Macros | |
#define | I2C_FAST_MODE_SPEED 400000 |
#define | LOW_LEVEL_TIME_LIMIT 384000 |
#define | TWI_CLK_CALC_ARGU 3 |
#define | TWI_CLK_DIV_MAX 0xFF |
#define | TWI_CLK_DIV_MIN 7 |
#define | TWI_CLK_DIVIDER 2 |
#define | TWI_WP_KEY_VALUE TWI_WPMR_WPKEY_PASSWD |
Functions | |
void | twi_disable_interrupt (Twi *p_twi, uint32_t ul_sources) |
Disable TWI interrupts. More... | |
void | twi_disable_master_mode (Twi *p_twi) |
Disable TWI master mode. More... | |
void | twi_disable_slave_mode (Twi *p_twi) |
Disable TWI slave mode. More... | |
void | twi_enable_interrupt (Twi *p_twi, uint32_t ul_sources) |
Enable TWI interrupts. More... | |
void | twi_enable_master_mode (Twi *p_twi) |
Enable TWI master mode. More... | |
void | twi_enable_slave_mode (Twi *p_twi) |
Enable TWI slave mode. More... | |
uint32_t | twi_get_interrupt_mask (Twi *p_twi) |
Read TWI interrupt mask. More... | |
uint32_t | twi_get_interrupt_status (Twi *p_twi) |
Get TWI interrupt status. More... | |
Pdc * | twi_get_pdc_base (Twi *p_twi) |
Get TWI PDC base address. More... | |
uint32_t | twi_master_init (Twi *p_twi, const twi_options_t *p_opt) |
Initialize TWI master mode. More... | |
uint32_t | twi_master_read (Twi *p_twi, twi_packet_t *p_packet) |
Read multiple bytes from a TWI compatible slave device. More... | |
uint32_t | twi_master_write (Twi *p_twi, twi_packet_t *p_packet) |
Write multiple bytes to a TWI compatible slave device. More... | |
uint32_t | twi_mk_addr (const uint8_t *addr, int len) |
Construct the TWI module address register field. More... | |
uint32_t | twi_probe (Twi *p_twi, uint8_t uc_slave_addr) |
Test if a chip answers a given I2C address. More... | |
uint8_t | twi_read_byte (Twi *p_twi) |
Reads a byte from the TWI bus. More... | |
void | twi_reset (Twi *p_twi) |
Reset TWI. More... | |
void | twi_set_slave_addr (Twi *p_twi, uint32_t ul_device_addr) |
Set TWI slave address. More... | |
uint32_t | twi_set_speed (Twi *p_twi, uint32_t ul_speed, uint32_t ul_mck) |
Set the I2C bus speed in conjunction with the clock frequency. More... | |
void | twi_slave_init (Twi *p_twi, uint32_t ul_device_addr) |
Initialize TWI slave mode. More... | |
uint32_t | twi_slave_read (Twi *p_twi, uint8_t *p_data) |
Read data from master. More... | |
uint32_t | twi_slave_write (Twi *p_twi, uint8_t *p_data) |
Write data to TWI bus. More... | |
void | twi_write_byte (Twi *p_twi, uint8_t uc_byte) |
Sends a byte of data to one of the TWI slaves on the bus. More... | |