Skip to content
forked from tomtor/ulp-i2c

Esp32 ULP I2C code and bmp180 example

License

Notifications You must be signed in to change notification settings

CristianPi/ulp-i2c

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ULP I2C demo application

Example of ESP-32 ULP I2C application which reads a sensor (BMP-180) and wakes up the main processors after a significant change of the measured values.

I2C bit banged support

Note that this example uses a bit-banged I2C implementation, because the hardware ULP I2C support cannot read 16 bit values. This is not essential for the BMP-180, but some sensors like the ADS-1015 DO require 16-bit readouts.

Example of Macro usage and ULP stack/subroutines

In additon this example shows ULP stack handling and reusable subroutines examples, like

waitMs

Wait some milliseconds

abs

Compute abs value of register

Credits

Parts of the original C code from

https://github.com/adafruit/Adafruit-BMP085-Library

were translated to ESP assembly.

Warning

Be aware of an assembler bug:

https://www.esp32.com/viewtopic.php?f=2&t=3228

About

Esp32 ULP I2C code and bmp180 example

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Assembly 65.9%
  • C 26.8%
  • Makefile 7.3%