Contiki-NG
|
Header file with declarations for the I2C Control module. More...
#include "reg.h"
#include "sys-ctrl.h"
#include "gpio.h"
#include "ioc.h"
#include <stdio.h>
#include "clock.h"
Go to the source code of this file.
Macros | |
I2C Master commands | |
#define | I2C_MASTER_CMD_SINGLE_SEND 0x00000007 |
#define | I2C_MASTER_CMD_SINGLE_RECEIVE 0x00000007 |
#define | I2C_MASTER_CMD_BURST_SEND_START 0x00000003 |
#define | I2C_MASTER_CMD_BURST_SEND_CONT 0x00000001 |
#define | I2C_MASTER_CMD_BURST_SEND_FINISH 0x00000005 |
#define | I2C_MASTER_CMD_BURST_SEND_ERROR_STOP 0x00000004 |
#define | I2C_MASTER_CMD_BURST_RECEIVE_START 0x0000000b |
#define | I2C_MASTER_CMD_BURST_RECEIVE_CONT 0x00000009 |
#define | I2C_MASTER_CMD_BURST_RECEIVE_FINISH 0x00000005 |
#define | I2C_MASTER_CMD_BURST_RECEIVE_ERROR_STOP 0x00000004 |
I2C Master status flags | |
#define | I2C_MASTER_ERR_NONE 0 |
#define | I2CM_STAT_BUSY 0x00000001 |
#define | I2CM_STAT_ERROR 0x00000002 |
#define | I2CM_STAT_ADRACK 0x00000004 |
#define | I2CM_STAT_DATACK 0x00000008 |
#define | I2CM_STAT_ARBLST 0x00000010 |
#define | I2CM_STAT_IDLE 0x00000020 |
#define | I2CM_STAT_BUSBSY 0x00000040 |
#define | I2CM_STAT_INVALID 0x00000080 |
I2C registers | |
#define | I2CM_CR 0x40020020 /* I2C master config */ |
#define | I2CM_TPR 0x4002000C /* I2C master timer period */ |
#define | I2CM_SA 0x40020000 /* I2C master slave address */ |
#define | I2CM_DR 0x40020008 /* I2C master data */ |
#define | I2CM_CTRL 0x40020004 /* Master control in write */ |
#define | I2CM_STAT I2CM_CTRL /* Master status in read */ |
I2C Miscellaneous | |
#define | I2C_SCL_NORMAL_BUS_SPEED 100000 /* 100KHz I2C */ |
#define | I2C_SCL_FAST_BUS_SPEED 400000 /* 400KHz I2C */ |
#define | I2C_RECEIVE 0x01 /* Master receive */ |
#define | I2C_SEND 0x00 /* Master send */ |
Functions | |
I2C Functions | |
void | i2c_init (uint8_t port_sda, uint8_t pin_sda, uint8_t port_scl, uint8_t pin_scl, uint32_t bus_speed) |
Initialize the I2C peripheral and pins. More... | |
void | i2c_master_enable (void) |
Enable master I2C module. | |
void | i2c_master_disable (void) |
Disable master I2C module. | |
void | i2c_set_frequency (uint32_t freq) |
Initialize I2C peripheral clock with given frequency. More... | |
void | i2c_master_set_slave_address (uint8_t slave_addr, uint8_t access_mode) |
Set the address of slave and access mode for the next I2C communication. More... | |
void | i2c_master_data_put (uint8_t data) |
Prepare data to be transmitted. More... | |
uint8_t | i2c_master_data_get (void) |
Return received data from I2C. More... | |
void | i2c_master_command (uint8_t cmd) |
Control the state of the master module for send and receive operations. More... | |
uint8_t | i2c_master_busy (void) |
Return the busy state of I2C module. More... | |
uint8_t | i2c_master_error (void) |
Return the status register if error occurred during last communication. More... | |
uint8_t | i2c_single_send (uint8_t slave_addr, uint8_t data) |
Perform all operations to send a byte to a slave. More... | |
uint8_t | i2c_single_receive (uint8_t slave_addr, uint8_t *data) |
Perform all operations to receive a byte from a slave. More... | |
uint8_t | i2c_burst_send (uint8_t slave_addr, uint8_t *data, uint8_t len) |
Perform all operations to send multiple bytes to a slave. More... | |
uint8_t | i2c_burst_receive (uint8_t slave_addr, uint8_t *data, uint8_t len) |
Perform all operations to receive multiple bytes from a slave. More... | |
Header file with declarations for the I2C Control module.
Definition in file i2c.h.