SAM4SD32 (SAM4S-EK2)
Loading...
Searching...
No Matches
twi.c File Reference

Two-Wire Interface (TWI) driver for SAM. More...

#include "twi.h"

Go to the source code of this file.

Macros

#define I2C_FAST_MODE_SPEED   400000
#define LOW_LEVEL_TIME_LIMIT   384000
#define TWI_CLK_CALC_ARGU   4
#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.
void twi_disable_master_mode (Twi *p_twi)
 Disable TWI master mode.
void twi_disable_slave_mode (Twi *p_twi)
 Disable TWI slave mode.
void twi_enable_interrupt (Twi *p_twi, uint32_t ul_sources)
 Enable TWI interrupts.
void twi_enable_master_mode (Twi *p_twi)
 Enable TWI master mode.
void twi_enable_slave_mode (Twi *p_twi)
 Enable TWI slave mode.
uint32_t twi_get_interrupt_mask (Twi *p_twi)
 Read TWI interrupt mask.
uint32_t twi_get_interrupt_status (Twi *p_twi)
 Get TWI interrupt status.
Pdc * twi_get_pdc_base (Twi *p_twi)
 Get TWI PDC base address.
uint32_t twi_master_init (Twi *p_twi, const twi_options_t *p_opt)
 Initialize TWI master mode.
uint32_t twi_master_read (Twi *p_twi, twi_packet_t *p_packet)
 Read multiple bytes from a TWI compatible slave device.
uint32_t twi_master_write (Twi *p_twi, twi_packet_t *p_packet)
 Write multiple bytes to a TWI compatible slave device.
uint32_t twi_mk_addr (const uint8_t *addr, int len)
 Construct the TWI module address register field.
uint32_t twi_probe (Twi *p_twi, uint8_t uc_slave_addr)
 Test if a chip answers a given I2C address.
uint8_t twi_read_byte (Twi *p_twi)
 Reads a byte from the TWI bus.
void twi_reset (Twi *p_twi)
 Reset TWI.
void twi_set_slave_addr (Twi *p_twi, uint32_t ul_device_addr)
 Set TWI slave address.
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.
void twi_slave_init (Twi *p_twi, uint32_t ul_device_addr)
 Initialize TWI slave mode.
uint32_t twi_slave_read (Twi *p_twi, uint8_t *p_data)
 Read data from master.
uint32_t twi_slave_write (Twi *p_twi, uint8_t *p_data)
 Write data to TWI bus.
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.

Detailed Description

Two-Wire Interface (TWI) driver for SAM.

Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.

\cond ASF_LICENSE

Definition in file twi.c.