Projekt

Allgemein

Profil

HwData Structures » Historie » Version 10

Redmine Admin, 14.12.2021 17:52

1 2 Redmine Admin
h1. HW-Data
2 1 Redmine Admin
3
Each Board (with MCU) should have an I2C EEPROM containung some "production" information.
4
5
|_.Offset|_.Type                    |
6 2 Redmine Admin
|0x00    | Production-Data          |
7
|0x20    | Board-Config             |
8 1 Redmine Admin
|0x40    | Config 1                 |
9
|0x60    | Config 2                 |
10
11
If EEPROM is not available, an sector in internal flash can be used.
12
The area within the flash should be handled by the "retain"-class from libbiwak. It
13
already handles header version and CRC.
14
"Magic"s do not make much sense. Its not supposed to be human readable.
15
16
17 9 Redmine Admin
|_.Section |_.Offset|_.Type  |_.Size|_.Decription                              |_.Example    |_.Retain Version | Comment                                               |
18
|Board     |0x00    |  ui16  | 2    | Articles Code                            | 0x0020      | 4.0.            | Can be printed on PCB, so no variant                  |
19
|          |0x02    |  ui16  | 2    | Board Code                               | 01          | 4.0.            | Main is always main                                   |
20
|          |0x04    |  ui8   | 1    | major version                            | 0           | 4.0.            |                                                       |
21
|          |0x05    |  ui8   | 1    | minor version                            | 4           | 4.0.            |                                                       |
22
|          |0x06    |  ui8   | 1    | patch version; assembly patches 1)       | 0           | 4.0.            | 0='X'                                                 |
23
|          |0x07    |  ui8   | 1    | Board Variant                            | 0           | 4.0.            | Valid Solder options;                                 |
24
|Production|0x08    |  ui32  | 4    | Serial number                            | 0001        | 3.0.            |                                                       |
25
|          |0x0C    |  ui8   | 1    | Production year (+2000)                  | 21          | 3.0.            |                                                       |
26
|          |0x0D    |  ui8   | 1    | Production month                         | 10          | 3.0.            |                                                       |
27
|          |0x0E    |  ui8   | 1    | Production day                           | 21          | 3.0.            |                                                       |
28
|          |0x0F    |  ui8   | 1    | Production site                          | 3           | 3.0.            |                                                       |
29
|Main      |0x10    |  ui16  | 1    | Articles Variant                         | 0x0020      | 4.0.            | MM Crona, No-Can                                      |
30
|          |0x12    |  ui8   | 1    | Articles Version                         | 01          | 4.0.            | Does not make much sense; New version new article code|
31
|          |0x14    |  ui8   | 4    | reserved                                 | 01          | 4.0.            |                                                       |
32
|          |0x18    | Struct | 8    | Retain information; Version, counter, CRC| {-}         | 3.0.            |                                                       |
33 1 Redmine Admin
34
1) although circuit might be changed afterwards, assembly option at time of production
35 3 Redmine Admin
   is relevant. To compare with errata-page.
36 10 Redmine Admin
   THe soldered parts shout match the one taged with this patch level in git.
37 1 Redmine Admin
38
2) Things that might be relevant for running software like used transceivers. Product specific.
39 2 Redmine Admin
   Its only related to the board directly, not connected periphery.
40 1 Redmine Admin
41
Things like production site, version of horo-firmware etc. can be stored off-device.