This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ds:projects:vdio:el502 [2021/07/20 21:12] rgeissler |
ds:projects:vdio:el502 [2022/03/10 14:31] (current) klang |
||
---|---|---|---|
Line 2: | Line 2: | ||
The newly manufactured EL502 Mezzanine cards do not contain any data in their EEPROM yet. A Raspberry Pi and a custom made cable are used to programm the EEPROM. | The newly manufactured EL502 Mezzanine cards do not contain any data in their EEPROM yet. A Raspberry Pi and a custom made cable are used to programm the EEPROM. | ||
+ | |||
+ | ===== Resources ===== | ||
+ | |||
+ | The code of this project is under version control in a Git repository whose upstream is: https:// | ||
===== How to program the EEPROM ===== | ===== How to program the EEPROM ===== | ||
- | * connect the custom made cable to the Raspberry Pi and to the Mezzanine | + | * connect the custom made cable to the Raspberry Pi and to the Mezzanine |
* activate the I2C interface of the Raspberry Pi: '' | * activate the I2C interface of the Raspberry Pi: '' | ||
- | * copy the '' | + | * copy the '' |
{{: | {{: | ||
Line 17: | Line 21: | ||
| | | | ||
| | | | ||
+ | |||
+ | ==== Programming with individual serial numbers ==== | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===== Alternative static programming and verification scripts ===== | ||
==== Programming ==== | ==== Programming ==== | ||
* '' | * '' | ||
- | * '' | + | * '' |
- | This will programm | + | This will program |
==== Verification ==== | ==== Verification ==== | ||
* '' | * '' | ||
- | * '' | + | * '' |
This will create an output file '' | This will create an output file '' | ||
- | You can compare it to the desired content using '' | + | You can compare it to the desired content using '' |
+ | |||
+ | ===== Testing the IO expanders ===== | ||
+ | |||
+ | The six IO expanders on the EL502 Mezzanine can be accessed via the same I2C bus. The following commands can be used: | ||
+ | |||
+ | ==== Listing the available I2C devices ==== | ||
+ | |||
+ | '' | ||
+ | |||
+ | The output on the EL502 is the following: | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | The devices with the addresses 0x20, 0x21, 0x22 are the IO expanders on the top side. The devices with the addresses 0x24, 0x25, 0x26 are the IO expanders on the bottom side. The device with the address 0x50 is the EEPROM. | ||
+ | |||
+ | ==== Writing registers ==== | ||
+ | |||
+ | === Via single CLI accesses === | ||
+ | |||
+ | E.g. '' | ||
+ | |||
+ | === Via a script === | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | This will program the content of '' | ||
+ | |||
+ | ==== Reading registers ==== | ||
+ | |||
+ | === Via single CLI accesses === | ||
+ | |||
+ | E.g. '' | ||
+ | |||
+ | === Via a script === | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | This will print all the register values of the IO expanders. | ||