Do you remember the widely used DS3231 RTC Module ?As you might rememeber we have identified onboard an EEPROM chip, a 32k AT24C32 one and have written some driver examples for LUA

I was looking a few days ago for a I2C EEPROM to do some tests with ESPBasic and the results…can be seen below ūüôā

1. MAIN Program

cls
i2c.setup(4,5)                    'choose your I2C bus pins

let eeprom_address = 0    'EEPROM memory start address
i2c_address = 87              ' 0x57 - AT24C32 I2C address
let i = 0
stw = "87654321"            'string that we want to save in EEPROM 

button "i2c Read",[I2C_read]
button "i2c Write",[I2C_Write]
wait


2. EEPROM READ Function

[I2C_read]
  stwl = len(stw)
  print "Reading from I2C address " & i2c_address
  adrh = eeprom_address >> 8
  adrl = eeprom_address and 255

  i2c.begin(i2c_address)
  i2c.write(adrh)
  i2c.write(adrl)
  i2c.end()

  i2c.begin(i2c_address)
  i2c.requestfrom(i2c_address,stwl)
  tr = i2c.available()
  print "Available bytes :" & tr
  do
      i2c_read = i2c.read() 
      readt = i2c_read-48
      print  "Read value : " & readt
      i = i + 1
  loop while i < tr
  i = 0
  i2c.end() 
  print "Read complete"
wait

3. EEPPROM WRITE function

[I2C_Write]
 print "Writing to I2C address " & i2c_address

 stwl = len(stw)
 print "String : " & stw 
 print "String Lenght : " & stwl

 adrh = eeprom_address >> 8
 adrl = eeprom_address and 255

 i2c.begin(i2c_address)
 i2c.write(adrh)
 i2c.write(adrl)

 i = 1
 do
     stru = mid(stw,i,1)
     print  "Value to Write: " & asc(stru)
     i2c.write(asc(stru)) 
     i = i + 1
 loop while i < stwl+1
 i = 0
 i2c.end()
 print "Write complete"
wait

Of course, this is just a proof of concept driver example for the I2C 24C32 EEPROM but I think might help you with a good start ūüôā

Happy breadboarding,
TJ.

Categories: ESPBasicRTC

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

AC Dimmer

AC Dimmer DevBoard – MPDMv7.5 – Part 2

For a more detailed description please take a look at the Part 1: MPDMv7.5 AC Dimmer devboard overview MPDMv7.5 AC Dimmer devboard ESP Basic program example for the basic version configuration: 'write("starttimer",10) cls 'VCNT GPIO Read more…

ESPBasic

ESPBasic – Web Interface – CSS elements example

A quick example on how to change your Web interface GUI objects properties without using a separate CSS file: Reading Humidity and Temperature from a DHT22 Sesor connected to the GPIO5 and also retrieving Date Read more…

ESPBasic

ESPBasic Series: Web Interface Slider demo

How easy or complicated is in ESPBasic to have a instant response slider for your MPDMv4 AC Dimmer Web interface? Just look at the code below: cls let xpv = 0 let PWMpin = 5 Read more…