Exercise 15: EEPROM and Driver Access

Goal:

The goal of this exercise is twofold: First we will learn about an EEPROM, a Electrically Erasable Read Only Memory. These devices are often used in instruments to store calibration values or configuration parameters. EEPROMs can usually be read byte by byte but can be erased and written only in blocks.

The at24c32 is a 32kbit (4 kbyte) EEPROM with an I2C interface.

This time however we will not use the I2C access functions in the pigpio library but access the i2c driver directly. You need to

  • open the device (/dev/i2c-1)

  • find out which functions the drivers supports (ioctl I2C_FUNCS)

  • block read the data

  • close the device

The full description on how to access I2C devices through the driver directly is found here.

Exercise 1: Read the EEPROM

This one is an exercise for detectives: There is a secret message hidden in the EEPROM and your job is to uncover the mystery. So… Sherlock Holmes and Dr. Watson: show your talents and find out the contents of the message.

Exercise 2: Write the EEPROM

Prepare a buffer with some data to be written to the EEPROM. Use your previous program to read these data back. Power down the Raspberry Pi, wait a minute and then switch it back on again. Verify that you can still read back the data.

Exercise 3: Write an access library

Separate out the open, close, read, write … functions into individual files. Rewrite your programs such that you call these generic functions, which can be re-used by other programs.

These are the functions that should be available:

  • at24c32Open

  • at24c32Close

  • at24c32Read

  • at24c32Write

  • at24c32Debug (switching debugging information on or off)

-- Uli Raich - 2017-08-21

Comments

Edit | Attach | Watch | Print version | History: r6 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 2017-08-21 - uli
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback