Projekt

Allgemein

Profil

HwData Structures » Historie » Version 15

Maximilian Seesslen, 01.01.2022 18:28

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 12 Redmine Admin
The Board-Config is config information that might be inherited by production data;
5
e.g. max. usable LEDs; soldered transceivers. It *should* be reflected by variants but may not, at least
6
development samples. The software does not want to miracle information from production data.
7 1 Redmine Admin
8 12 Redmine Admin
9 1 Redmine Admin
|_.Offset|_.Type                    |
10 2 Redmine Admin
|0x00    | Production-Data          |
11
|0x20    | Board-Config             |
12 1 Redmine Admin
|0x40    | Config 1                 |
13
|0x60    | Config 2                 |
14
15
If EEPROM is not available, an sector in internal flash can be used.
16
The area within the flash should be handled by the "retain"-class from libbiwak. It
17
already handles header version and CRC.
18
"Magic"s do not make much sense. Its not supposed to be human readable.
19
20 13 Maximilian Seesslen
The first 5 Bytes after magic can be used to identify an plain PCB. Until there are not more than
21 12 Redmine Admin
0xff articles, they coud be shrinked to 4Bytes in representations.
22 13 Maximilian Seesslen
The first 7 Bytes after magic can be used to identify an valid article PCB.
23 9 Redmine Admin
24 12 Redmine Admin
|_.Section |_.Offset|_.Type  |_.Size|_.Decription                              |_.Example    |_.Retain Version | Comment                                               |
25 14 Redmine Admin
|Board     |0x00    |  ui8   | 1    | Magic 'B' / 0x42 / 66                    | 'B'         | 4.0.            | Check content with GDB                                |
26 13 Maximilian Seesslen
|          |0x01    |  ui16  | 2    | Articles Code                            | 0x0020      | 4.0.            | Can be printed on PCB, so no variant                  |
27
|          |0x03    |  ui8   | 1    | Board Code                               | 01          | 4.0.            | Main is always main                                   |
28 9 Redmine Admin
|          |0x04    |  ui8   | 1    | major version                            | 0           | 4.0.            |                                                       |
29
|          |0x05    |  ui8   | 1    | minor version                            | 4           | 4.0.            |                                                       |
30 1 Redmine Admin
|          |0x06    |  ui8   | 1    | patch version; assembly patches 1)       | 0           | 4.0.            | 0='X'                                                 |
31 12 Redmine Admin
|          |0x07    |  ui8   | 1    | Board Variant                            | 0           | 4.0.            | Valid Solder options; The used BOM                    |
32 11 Redmine Admin
|Production|0x08    |  ui32  | 4    | Serial number                            | 0001        | 4.0.            |                                                       |
33
|          |0x0C    |  ui8   | 1    | Production year (+2000)                  | 21          | 4.0.            |                                                       |
34 9 Redmine Admin
|          |0x0D    |  ui8   | 1    | Production month                         | 10          | 4.0.            |                                                       |
35 11 Redmine Admin
|          |0x0E    |  ui8   | 1    | Production day                           | 21          | 4.0.            |                                                       |
36 1 Redmine Admin
|          |0x0F    |  ui8   | 1    | Production site                          | 3           | 4.0.            |                                                       |
37 15 Maximilian Seesslen
|Main      |0x10    |  ui16  | 2    | Articles Variant                         | 0x0020      | 4.0.            | MM Crona, No-Can                                      |
38
|          |0x12    |  ui16  | 2    | Articles Version                         | 01          | 4.0.            | Does not make much sense; New version new article code|
39 1 Redmine Admin
|          |0x14    |  ui8   | 4    | reserved                                 | 01          | 4.0.            |                                                       |
40 3 Redmine Admin
|          |0x18    | Struct | 8    | Retain information; Version, counter, CRC| {-}         | 4.0.            |                                                       |
41 10 Redmine Admin
42 1 Redmine Admin
1) although circuit might be changed afterwards, assembly option at time of production
43 12 Redmine Admin
   is relevant to compare with errata-page.
44
   The soldered parts shout match the one taged with this patch level in git.
45 1 Redmine Admin
46
Things like production site, version of horo-firmware etc. can be stored off-device.