esp-open-rtos/extras/i2c
Angus71 fd1081a0cc Added BMP180 and I2C driver and example
Fixed reference to unknown environment var
Moved drivers into extras folder and added additional documentations.
Changed LOCAL to static and renamed DEBUG to BMP180_DEBUG
2015-08-31 13:39:27 +02:00
..
component.mk Added BMP180 and I2C driver and example 2015-08-31 13:39:27 +02:00
i2c.c Added BMP180 and I2C driver and example 2015-08-31 13:39:27 +02:00
i2c.h Added BMP180 and I2C driver and example 2015-08-31 13:39:27 +02:00
LICENSE Added BMP180 and I2C driver and example 2015-08-31 13:39:27 +02:00
README.md Added BMP180 and I2C driver and example 2015-08-31 13:39:27 +02:00

Yet another I2C driver for the ESP8266

This time a driver for the excellent esp-open-rtos. This is a bit banging I2C driver based on the Wikipedia pesudo C code [1].

Adding to your project

Add the driver to your project as a submodule rather than cloning it:

% git submodule add https://github.com/kanflo/esp-open-rtos-driver-i2c.git i2c

The esp-open-rtos makefile-fu will make sure the driver is built.

Usage

#include <i2c.h>

#define SCL_PIN (0)
#define SDA_PIN (2)

uint8_t slave_addr = 0x20;
uint8_t reg_addr = 0x1f;
uint8_t reg_data;
uint8_t data[] = {reg_addr, 0xc8};

i2c_init(SCL_PIN, SDA_PIN);

// Write data to slave
bool success = i2c_slave_write(slave_addr, data, sizeof(data));

// Issue write to slave, sending reg_addr, followed by reading 1 byte
success = i2c_slave_read(slave_addr, &reg_addr, reg_data, 1);

The driver is released under the MIT license.

[1] https://en.wikipedia.org/wiki/I²C#Example_of_bit-banging_the_I.C2.B2C_Master_protocol