HwData Structures » Historie » Revision 9
Revision 8 (Redmine Admin, 14.12.2021 17:01) → Revision 9/16 (Redmine Admin, 14.12.2021 17:50)
h1. HW-Data
Each Board (with MCU) should have an I2C EEPROM containung some "production" information.
|_.Offset|_.Type |
|0x00 | Production-Data |
|0x20 | Board-Config |
|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 |_.Retain Version | Comment |
|Board |Main |0x00 | ui16 | 2 | Articles Code | 0x0020 | 4.0. | Can be printed on PCB, so no variant |
| |0x02 | ui16 ui8 | 2 1 | Board Code Articles Variant | 01 | 4.0. | Main is always main |
| |0x03 | ui8 | 1 | Article Version | 01 | 4.0. |
|Board |0x04 | ui8 | 1 | major version Board Code | 0 01 | 4.0. | |
| |0x05 | ui8 | 1 | minor major version | 4 0 | 4.0. | |
| |0x06 | ui8 | 1 | patch version; assembly patches 1) minor version | 0 4 | 4.0. | 0='X' |
| |0x07 | ui8 | 1 | Board Variant patch version; assembly option 1) | 0 | 4.0. | Valid Solder options; |
|Production|0x08 | ui32 | 4 | Serial number | 0001 | 3.0. |
| |0x0c | ui32 | 4 | Variant/Flags 2) | 0 | 3.0. |
| |0x0C |0x10 | ui8 | 1 | Production year (+2000) | 21 | 3.0. | |
| |0x0D |0x11 | ui8 | 1 | Production month | 10 | 3.0. | |
| |0x0E |0x12 | ui8 | 1 | Production day | 21 | 3.0. | |
| |0x0F |0x13 | ui8 | 1 | Production site | 3 | 3.0. | |
|Main |0x10 | ui16 | 1 | Articles Variant | 0x0020 | 4.0. | MM Crona, No-Can |
| |0x12 | ui8 | 1 | Articles Version | 01 | 4.0. | Does not make much sense; New version new article code|
| |0x14 | ui8 ui32 | 4 | reserved | 01 0 | 4.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 errata-page.
2) Things that might be relevant for running software like used transceivers. Product specific.
Its only related to the board directly, not connected periphery.
Things like production site, version of horo-firmware etc. can be stored off-device.
Each Board (with MCU) should have an I2C EEPROM containung some "production" information.
|_.Offset|_.Type |
|0x00 | Production-Data |
|0x20 | Board-Config |
|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 |_.Retain Version | Comment |
|Board |Main |0x00 | ui16 | 2 | Articles Code | 0x0020 | 4.0. | Can be printed on PCB, so no variant |
| |0x02 | ui16 ui8 | 2 1 | Board Code Articles Variant | 01 | 4.0. | Main is always main |
| |0x03 | ui8 | 1 | Article Version | 01 | 4.0. |
|Board |0x04 | ui8 | 1 | major version Board Code | 0 01 | 4.0. | |
| |0x05 | ui8 | 1 | minor major version | 4 0 | 4.0. | |
| |0x06 | ui8 | 1 | patch version; assembly patches 1) minor version | 0 4 | 4.0. | 0='X' |
| |0x07 | ui8 | 1 | Board Variant patch version; assembly option 1) | 0 | 4.0. | Valid Solder options; |
|Production|0x08 | ui32 | 4 | Serial number | 0001 | 3.0. |
| |0x0c | ui32 | 4 | Variant/Flags 2) | 0 | 3.0. |
| |0x0C |0x10 | ui8 | 1 | Production year (+2000) | 21 | 3.0. | |
| |0x0D |0x11 | ui8 | 1 | Production month | 10 | 3.0. | |
| |0x0E |0x12 | ui8 | 1 | Production day | 21 | 3.0. | |
| |0x0F |0x13 | ui8 | 1 | Production site | 3 | 3.0. | |
|Main |0x10 | ui16 | 1 | Articles Variant | 0x0020 | 4.0. | MM Crona, No-Can |
| |0x12 | ui8 | 1 | Articles Version | 01 | 4.0. | Does not make much sense; New version new article code|
| |0x14 | ui8 ui32 | 4 | reserved | 01 0 | 4.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 errata-page.
2) Things that might be relevant for running software like used transceivers. Product specific.
Its only related to the board directly, not connected periphery.
Things like production site, version of horo-firmware etc. can be stored off-device.