ash-liu / webiopi

Automatically exported from code.google.com/p/webiopi
0 stars 0 forks source link

Drivers for EEPROM chips with 16 bit addressing (24c...) available #132

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Hi,

please find attached the necessary files to use some familiar EEPROM chips.

Such chips are a part of the new HAT standard for RPi adapter boards.

This driver is implemented inspired by the at24.c kernel driver (hence the 
naming). It supports all chips that use 16 bit cell addressing and ONE I2C 
address. Such chips are of the generic types 24c32, 24c64, 24c128, 24c256, 
24c512 (as they are named within at24.c). This driver has been tested with 
Microchip 24LC32A (smallest one) and Microchip 24LC512 (biggest one).

This driver comes with a slightly updated Memory abstraction layer that was 
introduced first with issue 116 (see instructions there, these drivers have to 
go to a new /devices/memory folder). Old RTC drivers will still function 
correct. In the comment header of the __init__.py you will find the most 
important usage instructions.

This driver supports reading AND writing of the chips. You may also use other 
tools for writing (like the provided tools for HAT's) and reading will still 
work seamless with this driver.

Currently WebIOPi supports only the "standard" I2C channel (bus 1 since rev. 2 
boards). HAT uses the fixed I2C channel 0. So currently you can't read directly 
the original HAT EEPROMS with this driver without (a small) modification of the 
I2C driver i2c.py to make it use I2C bus 0. But you can start experimenting 
with such EEPROM chips just connecting them to the "standard" I2C bus. And if 
you intent to use those chips as regular chips within your project this will be 
the way to connect them anyway.

I have also attached an updated version of filememory.py that is compatible 
with the updated Memory abstraction and an updated webiopi.js to be able to see 
the EEPROM chips in the device monitor.

Be patient when looking to high capacity chips with the device monitor as the 
display (not the actual chip reading) of a large number of memory cells (e.g. 
24LC512 has 64k cells) will take some time... You can always reduce the number 
of used cells with the slots:xxx parameter within the config file.

manager.py and setup.py here contain only the Memory abstraction. If you want 
to use Memory AND Clock abstraction you can use the ones from issue 116.

Andreas

Original issue reported on code.google.com by andreas....@googlemail.com on 10 Dec 2014 at 11:31

Attachments:

GoogleCodeExporter commented 9 years ago
Sorry, webiopi.js was the wrong version. Here is the correct one.

Original comment by andreas....@googlemail.com on 10 Dec 2014 at 12:52

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Sorry, had wrong encoding ...

Original comment by andreas....@googlemail.com on 8 Jan 2015 at 2:19

Attachments: