Colibri EEPROM Layout

From Stm32World Wiki
Jump to navigation Jump to search

All the Colibri I/O modules come with a 1Mbit EEPROM on board, that serves to store a few different things;

  • Vendor, Model and Revision of 'this' board.
  • Calibration parameters needed to compensate for hardware tolerances.
  • Test report (if any) from factory.
  • The driver(s) (i.e. code) of the board, to be executed in the MCU module on behalf of the board.
  • Any additional parameters, configuration that should survive over time.
  • Any storage space an on-module co-MCU needs.

Memory Layout

Address Length Description
0x0000 4 Contains the value 0xdeadbabe to indicate that it has been initialized.
0x0004 12 Reserved for future use.
0x0010 4 Vendor ID, according to table below.
0x0014 4 Vendor Model identifier. This is specific to each vendor. Vendors are encouraged to add their tables on this page.
0x0018 4 Vendor Hardware Revision, where revision 'A' is written has 0x0041 and revision 'CC' is 0x4343
0x001c 4 Reserved for future use.
0x0020 4 Pointer to Vendor name, in ASCII.
0x0024 4 Length of Vendor name
0x0028 4 Pointer to Model name, in ASCII.
0x002c 4 Length of Model name.
0x0030 4 Pointer to Product Link
0x0034 4 Length of Product Link
0x0038 4 Pointer to Documentation Link
0x003c 4 Length of Documentation Link
0x0040 4 Size of zeptoforth code.
0x0044 4 Size of Web Assembly (wasm) code block.
0x0048 56 Reserved for future use.
0x0080 128 Calibration data, see each I/O module for details
0x0100 256 Test Reports, see each I/O module for details
0x0200 1024 Text area. Links points to here.
0x0600 2560 Vendor defined area.
0x1000 12288 Reserved for future use.
0x4000 16384 Driver software/code in zeptoforth.
0x8000 16384 Driver software/code in WebAssembly.
0xc000 16384 Reserved for future use.
0x10000 65536 Reserved for co-MCU on I/O module.