SLAU144K December 2004 – August 2022 MSP430AFE221 , MSP430AFE222 , MSP430AFE223 , MSP430AFE231 , MSP430AFE232 , MSP430AFE233 , MSP430AFE251 , MSP430AFE252 , MSP430AFE253 , MSP430F2001 , MSP430F2002 , MSP430F2003 , MSP430F2011 , MSP430F2012 , MSP430F2013 , MSP430F2101 , MSP430F2111 , MSP430F2112 , MSP430F2121 , MSP430F2122 , MSP430F2131 , MSP430F2132 , MSP430F2132-EP , MSP430F2232 , MSP430F2234 , MSP430F2252 , MSP430F2252-Q1 , MSP430F2254 , MSP430F2272 , MSP430F2272-Q1 , MSP430F2274 , MSP430F2274-EP , MSP430F233 , MSP430F2330 , MSP430F235 , MSP430F2350 , MSP430F2370 , MSP430F2410 , MSP430F2416 , MSP430F2417 , MSP430F2418 , MSP430F2419 , MSP430F247 , MSP430F2471 , MSP430F248 , MSP430F2481 , MSP430F249 , MSP430F2491 , MSP430F2616 , MSP430F2617 , MSP430F2618 , MSP430F2619 , MSP430G2001 , MSP430G2101 , MSP430G2102 , MSP430G2111 , MSP430G2112 , MSP430G2121 , MSP430G2131 , MSP430G2132 , MSP430G2152 , MSP430G2153 , MSP430G2201 , MSP430G2201-Q1 , MSP430G2202 , MSP430G2203 , MSP430G2210 , MSP430G2211 , MSP430G2212 , MSP430G2213 , MSP430G2221 , MSP430G2230 , MSP430G2231 , MSP430G2231-Q1 , MSP430G2232 , MSP430G2233 , MSP430G2252 , MSP430G2253 , MSP430G2302 , MSP430G2303 , MSP430G2312 , MSP430G2313 , MSP430G2332 , MSP430G2333 , MSP430G2352 , MSP430G2353 , MSP430G2402 , MSP430G2403 , MSP430G2412 , MSP430G2413 , MSP430G2432 , MSP430G2433 , MSP430G2444 , MSP430G2452 , MSP430G2453 , MSP430G2513 , MSP430G2533 , MSP430G2544 , MSP430G2553 , MSP430G2744 , MSP430G2755 , MSP430G2855 , MSP430G2955 , MSP430TCH5E
The TLV structure stores device-specific data in SegmentA. The SegmentA content of an example device is shown in Table 24-1.
Word Address | Upper Byte | Lower Byte | Tag Address and Offset |
---|---|---|---|
0x10FE | CALBC1_1MHZ | CALDCO_1MHZ | 0x10F6 + 0x0008 |
0x10FC | CALBC1_8MHZ | CALDCO_8MHZ | 0x10F6 + 0x0006 |
0x10FA | CALBC1_12MHZ | CALDCO_12MHZ | 0x10F6 + 0x0004 |
0x10F8 | CALBC1_16MHZ | CALDCO_16MHZ | 0x10F6 + 0x0002 |
0x10F6 | 0x08 (LENGTH) | TAG_DCO_30 | 0x10F6 |
0x10F4 | 0xFF | 0xFF | |
0x10F2 | 0xFF | 0xFF | |
0x10F0 | 0xFF | 0xFF | |
0x10EE | 0xFF | 0xFF | |
0x10EC | 0x08 (LENGTH) | TAG_EMPTY | 0x10EC |
0x10EA | CAL_ADC_25T85 | 0x10DA + 0x0010 | |
0x10E8 | CAL_ADC_25T30 | 0x10DA + 0x000E | |
0x10E6 | CAL_ADC_25VREF_FACTOR | 0x10DA + 0x000C | |
0x10E4 | CAL_ADC_15T85 | 0x10DA + 0x000A | |
0x10E2 | CAL_ADC_15T30 | 0x10DA + 0x0008 | |
0x10E0 | CAL_ADC_15VREF_FACTOR | 0x10DA + 0x0006 | |
0x10DE | CAL_ADC_OFFSET | 0x10DA + 0x0004 | |
0x10DC | CAL_ADC_GAIN_FACTOR | 0x10DA + 0x0002 | |
0x10DA | 0x10 (LENGTH) | TAG_ADC12_1 | 0x10DA |
0x10D8 | 0xFF | 0xFF | |
0x10D6 | 0xFF | 0xFF | |
0x10D4 | 0xFF | 0xFF | |
0x10D2 | 0xFF | 0xFF | |
0x10D0 | 0xFF | 0xFF | |
0x10CE | 0xFF | 0xFF | |
0x10CC | 0xFF | 0xFF | |
0x10CA | 0xFF | 0xFF | |
0x10C8 | 0xFF | 0xFF | |
0x10C6 | 0xFF | 0xFF | |
0x10C4 | 0xFF | 0xFF | |
0x10C2 | 0x16 (LENGTH) | TAG_EMPTY | 0x10C2 |
0x10C0 | 2s complement of bit-wise XOR | 0x10C0 |
The first two bytes of SegmentA (0x10C0 and 0x10C1) hold the checksum of the remainder of the segment (addresses 0x10C2 to 0x10FF).
The first tag is located at address 0x10C2 and, in this example, is the TAG_EMPTY tag. The following byte (0x10C3) holds the length of the following structure. The length of this TAG_EMPTY structure is 0x16 and, therefore, the next tag, TAG_ADC12_1, is found at address 0x10DA. Again, the following byte holds the length of the TAG_ADC12_1 structure.
The TLV structure maps the entire address range 0x10C2 to 0x10FF of the SegmentA. A program routine looking for tags starting at the SegmentA address 0x10C2 can extract all information even if it is stored at a different (device-specific) absolute address.