mirror of
https://github.com/exA-Arcadia/exa-io.git
synced 2024-11-24 06:30:11 +01:00
abffe47e52
Uses third party pico_i2c_slave library. |
||
---|---|---|
.. | ||
example_mem | ||
example_mem_wire | ||
i2c_slave | ||
LICENSES | ||
.clang-format | ||
.gitignore | ||
CMakeLists.txt | ||
pico_sdk_import.cmake | ||
README.md |
I2C slave library for the Raspberry Pi Pico
The Raspberry Pi Pico C/C++ SDK has all you need to write an I2C master, but is curiously lacking when it comes to I2C in slave mode. This library fills that gap to easily turn the Pico into an I2C slave.
Examples
An example program is included where the slave acts as a 256 byte external memory. See example_mem
.
For those who prefer the Wire API commonly used with Arduino, there is a second version on top of a Wire wrapper. See example_mem_wire
.
To keep it simple, both master and slave run on the same board. Just add jumpers between the two I2C instances: GP4 to GP6 (SDA), and GP5 to GP7 (SCL).
Setup
Follow the instructions in Getting started with Raspberry Pi Pico to setup your build environment. Then:
git clone https://github.com/vmilea/pico_i2c_slave
cd pico_i2c_slave
mkdir build
,cd build
,cmake ../
,make
- copy
example_mem/example_mem.uf2
to Raspberry Pico - open a serial connection and check output
Links
- Pico as I2C slave - basic setup using raw registers
- DroneBot Workshop - building an I2C sensor
Authors
Valentin Milea valentin.milea@gmail.com