HwData Structures » Historie » Revision 2
Revision 1 (Redmine Admin, 26.11.2021 15:31) → Revision 2/16 (Redmine Admin, 26.11.2021 16:44)
h1. HW-Data HWData
Each Board (with MCU) should have an I2C EEPROM containung some "production" information.
|_.Offset|_.Type |
|0x00 | Production-Data HWInfo |
|0x20 | Board-Config Reserved; board specific |
|0x40 | Config 1 |
|0x60 | Config 2 |
If EEPROM is not available, an sector in internal flash can be used.
The area within the flash should be handled by the "retain"-class from libbiwak. It
already handles header version and CRC.
"Magic"s do not make much sense. Its not supposed to be human readable.
|_.Section |_.Offset|_.Type |_.Size|_.Decription |_.Example | Version |
|Main |0x00 | ui8 | 1 | Magic 'H' | 'H' | 3.0. |
| |0x01 | ui16 | 2 | Articles ID | 0020 | 3.0. |
| |0x03 | ui16 | 2 | Board ID; unique | 0020 | 3.0. |
|Version |0x05 | ui8 | 1 | major version | 0 | 3.0. |
| |0x06 | ui8 | 1 | minor verison | 4 | 3.0. |
| |0x07 | ui8 | 1 | patch verison; assembly option 1) | 0 | 3.0. |
|Production|0x08 | ui32 | 4 | Serial number | 0001 | 3.0. |
| |0x0c | ui32 | 4 | Variant/Flags 2) | 0 | 3.0. |
| |0x10 | ui8 | 1 | Production year (+2000) | 3 | 3.0. |
| |0x11 | ui8 | 1 | Production month | 10 | 3.0. |
| |0x12 | ui8 | 1 | Production day | 21 | 3.0. |
| |0x13 | ui8 | 1 | Production site | 3 | 3.0. |
| |0x14 | ui32 | 4 | reserved | 0 | 3.0. |
| |0x18 | Struct | 8 | Retain information; Version, counter, CRC| {-} | 3.0. |
1) although circuit might be changed afterwards, assembly option at time of production
is relevant. To compare with errate-page.
2) Things that might be relevant for running software like used transceivers. Product specific.
Its only related relaterd to the board directly, not connected periphery.
Things like production site, version of horo-firmware etc. can be stored off-device.
Article-ID: Very loose. Eval and final have same article.
Board-ID: does not change with minor/major version. Needed to find git repos. No version. Different IDs remain parallel. As long as same souce code is used.
Each Board (with MCU) should have an I2C EEPROM containung some "production" information.
|_.Offset|_.Type |
|0x00 | Production-Data HWInfo |
|0x20 | Board-Config Reserved; board specific |
|0x40 | Config 1 |
|0x60 | Config 2 |
If EEPROM is not available, an sector in internal flash can be used.
The area within the flash should be handled by the "retain"-class from libbiwak. It
already handles header version and CRC.
"Magic"s do not make much sense. Its not supposed to be human readable.
|_.Section |_.Offset|_.Type |_.Size|_.Decription |_.Example | Version |
|Main |0x00 | ui8 | 1 | Magic 'H' | 'H' | 3.0. |
| |0x01 | ui16 | 2 | Articles ID | 0020 | 3.0. |
| |0x03 | ui16 | 2 | Board ID; unique | 0020 | 3.0. |
|Version |0x05 | ui8 | 1 | major version | 0 | 3.0. |
| |0x06 | ui8 | 1 | minor verison | 4 | 3.0. |
| |0x07 | ui8 | 1 | patch verison; assembly option 1) | 0 | 3.0. |
|Production|0x08 | ui32 | 4 | Serial number | 0001 | 3.0. |
| |0x0c | ui32 | 4 | Variant/Flags 2) | 0 | 3.0. |
| |0x10 | ui8 | 1 | Production year (+2000) | 3 | 3.0. |
| |0x11 | ui8 | 1 | Production month | 10 | 3.0. |
| |0x12 | ui8 | 1 | Production day | 21 | 3.0. |
| |0x13 | ui8 | 1 | Production site | 3 | 3.0. |
| |0x14 | ui32 | 4 | reserved | 0 | 3.0. |
| |0x18 | Struct | 8 | Retain information; Version, counter, CRC| {-} | 3.0. |
1) although circuit might be changed afterwards, assembly option at time of production
is relevant. To compare with errate-page.
2) Things that might be relevant for running software like used transceivers. Product specific.
Its only related relaterd to the board directly, not connected periphery.
Things like production site, version of horo-firmware etc. can be stored off-device.
Article-ID: Very loose. Eval and final have same article.
Board-ID: does not change with minor/major version. Needed to find git repos. No version. Different IDs remain parallel. As long as same souce code is used.