Browse code

Power saving changes, add new fonts, bitmaps and screens

Nils Faerber authored on 19/05/2013 00:07:04
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,226 @@
1
+/*******************************************************************************
2
+ *
3
+ * HAL_TLV.c
4
+ * Provides Functions to Read the TLV Data Section of the MSP430 Devices
5
+ * 
6
+ *
7
+ * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ 
8
+ * 
9
+ * 
10
+ *  Redistribution and use in source and binary forms, with or without 
11
+ *  modification, are permitted provided that the following conditions 
12
+ *  are met:
13
+ *
14
+ *    Redistributions of source code must retain the above copyright 
15
+ *    notice, this list of conditions and the following disclaimer.
16
+ *
17
+ *    Redistributions in binary form must reproduce the above copyright
18
+ *    notice, this list of conditions and the following disclaimer in the 
19
+ *    documentation and/or other materials provided with the   
20
+ *    distribution.
21
+ *
22
+ *    Neither the name of Texas Instruments Incorporated nor the names of
23
+ *    its contributors may be used to endorse or promote products derived
24
+ *    from this software without specific prior written permission.
25
+ *
26
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
27
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
28
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
30
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
31
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
32
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
35
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
36
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
+ * 
38
+ * Updated: Version 2.0 01/17/2011
39
+ *  
40
+ ******************************************************************************/
41
+
42
+#ifndef HAL_TLV_H
43
+#define HAL_TLV_H
44
+
45
+/*******************************************************************************
46
+ * Device Descriptors - Fixed Memory Locations
47
+ ******************************************************************************/
48
+#define DEVICE_ID_0		(0x1A04)
49
+#define DEVICE_ID_1		(0x1A05)
50
+
51
+/*******************************************************************************
52
+ * Data Types
53
+ ******************************************************************************/
54
+struct s_TLV_Die_Record {
55
+  unsigned char die_record[10];
56
+};
57
+
58
+struct s_TLV_ADC_Cal_Data {
59
+  unsigned int adc_gain_factor;
60
+  unsigned int adc_offset;
61
+  unsigned int adc_ref15_30_temp;
62
+  unsigned int adc_ref15_85_temp;
63
+  unsigned int adc_ref20_30_temp;
64
+  unsigned int adc_ref20_85_temp;
65
+  unsigned int adc_ref25_30_temp;
66
+  unsigned int adc_ref25_85_temp;
67
+};
68
+
69
+struct s_TLV_Timer_D_Cal_Data {
70
+  unsigned int TDH0CTL1_64;
71
+  unsigned int TDH0CTL1_128;
72
+  unsigned int TDH0CTL1_200;
73
+  unsigned int TDH0CTL1_256;
74
+};
75
+
76
+struct s_TLV_REF_Cal_Data {
77
+  unsigned int ref_ref15;
78
+  unsigned int ref_ref20;
79
+  unsigned int adc_ref25;
80
+};
81
+
82
+/*******************************************************************************
83
+ * Tag Defines
84
+ ******************************************************************************/
85
+#define TLV_LDTAG             (0x01)      /*  Legacy descriptor (1xx, 2xx,
86
+                                              4xx families) */
87
+#define TLV_PDTAG             (0x02)      /*  Peripheral discovery descriptor */
88
+#define TLV_Reserved3         (0x03)      /*  Future usage */
89
+#define TLV_Reserved4         (0x04)      /*  Future usage */
90
+#define TLV_BLANK             (0x05)      /*  Blank descriptor */
91
+#define TLV_Reserved6         (0x06)      /*  Future usage */
92
+#define TLV_Reserved7         (0x07)      /*  Serial Number */
93
+#define TLV_DIERECORD         (0x08)      /*  Die Record  */
94
+#define TLV_ADCCAL            (0x11)      /*  ADC12 calibration */
95
+#define TLV_ADC12CAL          (0x11)      /*  ADC12 calibration */
96
+#define TLV_ADC10CAL          (0x13)      /*  ADC10 calibration */
97
+#define TLV_REFCAL            (0x12)      /*  REF calibration */
98
+#define TLV_TIMER_D_CAL       (0x15)      /*  Timer_Dx calibration */
99
+#define TLV_TAGEXT            (0xFE)      /*  Tag extender */
100
+#define TLV_TAGEND            (0xFF)      /*  Tag End of Table */
101
+
102
+/*******************************************************************************
103
+ * Peripheral Defines
104
+ ******************************************************************************/
105
+#define TLV_PID_NO_MODULE     (0x00)      /*  No Module */
106
+#define TLV_PID_PORTMAPPING   (0x10)      /*  Port Mapping */
107
+#define TLV_PID_MSP430CPUXV2  (0x23)      /*  MSP430CPUXV2 */
108
+#define TLV_PID_JTAG          (0x09)      /*  JTAG */
109
+#define TLV_PID_SBW           (0x0F)      /*  SBW */
110
+#define TLV_PID_EEM_XS        (0x02)      /*  EEM X-Small */
111
+#define TLV_PID_EEM_S         (0x03)      /*  EEM Small */
112
+#define TLV_PID_EEM_M         (0x04)      /*  EEM Medium */
113
+#define TLV_PID_EEM_L         (0x05)      /*  EEM Large */
114
+#define TLV_PID_PMM           (0x30)      /*  PMM */
115
+#define TLV_PID_PMM_FR        (0x32)      /*  PMM FRAM */
116
+#define TLV_PID_FCTL          (0x39)      /*  Flash */
117
+#define TLV_PID_CRC16         (0x3C)      /*  CRC16 */
118
+#define TLV_PID_CRC16_RB      (0x3D)      /*  CRC16 Reverse */
119
+#define TLV_PID_WDT_A         (0x40)      /*  WDT_A */
120
+#define TLV_PID_SFR           (0x41)      /*  SFR */
121
+#define TLV_PID_SYS           (0x42)      /*  SYS */
122
+#define TLV_PID_RAMCTL        (0x44)      /*  RAMCTL */
123
+#define TLV_PID_DMA_1         (0x46)      /*  DMA 1 */
124
+#define TLV_PID_DMA_3         (0x47)      /*  DMA 3 */
125
+#define TLV_PID_UCS           (0x48)      /*  UCS */
126
+#define TLV_PID_DMA_6         (0x4A)      /*  DMA 6 */
127
+#define TLV_PID_DMA_2         (0x4B)      /*  DMA 2 */
128
+#define TLV_PID_PORT1_2       (0x51)      /*  Port 1 + 2 / A */
129
+#define TLV_PID_PORT3_4       (0x52)      /*  Port 3 + 4 / B */
130
+#define TLV_PID_PORT5_6       (0x53)      /*  Port 5 + 6 / C */
131
+#define TLV_PID_PORT7_8       (0x54)      /*  Port 7 + 8 / D */
132
+#define TLV_PID_PORT9_10      (0x55)      /*  Port 9 + 10 / E */
133
+#define TLV_PID_PORT11_12     (0x56)      /*  Port 11 + 12 / F */
134
+#define TLV_PID_PORTU         (0x5E)      /*  Port U */
135
+#define TLV_PID_PORTJ         (0x5F)      /*  Port J */
136
+#define TLV_PID_TA2           (0x60)      /*  Timer A2 */
137
+#define TLV_PID_TA3           (0x61)      /*  Timer A1 */
138
+#define TLV_PID_TA5           (0x62)      /*  Timer A5 */
139
+#define TLV_PID_TA7           (0x63)      /*  Timer A7 */
140
+#define TLV_PID_TB3           (0x65)      /*  Timer B3 */
141
+#define TLV_PID_TB5           (0x66)      /*  Timer B5 */
142
+#define TLV_PID_TB7           (0x67)      /*  Timer B7 */
143
+#define TLV_PID_RTC           (0x68)      /*  RTC */
144
+#define TLV_PID_BT_RTC        (0x69)      /*  BT + RTC */
145
+#define TLV_PID_BBS           (0x6A)      /*  Battery Backup Switch */
146
+#define TLV_PID_RTC_B         (0x6B)      /*  RTC_B */
147
+#define TLV_PID_TD2           (0x6C)      /*  Timer D2 */
148
+#define TLV_PID_TD3           (0x6D)      /*  Timer D1 */
149
+#define TLV_PID_TD5           (0x6E)      /*  Timer D5 */
150
+#define TLV_PID_TD7           (0x6F)      /*  Timer D7 */
151
+#define TLV_PID_TEC           (0x70)      /*  Imer Event Control */
152
+#define TLV_PID_RTC_C         (0x71)      /*  RTC_C */
153
+#define TLV_PID_AES           (0x80)      /*  AES */
154
+#define TLV_PID_MPY16         (0x84)      /*  MPY16 */
155
+#define TLV_PID_MPY32         (0x85)      /*  MPY32 */
156
+#define TLV_PID_MPU           (0x86)      /*  MPU */
157
+#define TLV_PID_USCI_AB       (0x90)      /*  USCI_AB */
158
+#define TLV_PID_USCI_A        (0x91)      /*  USCI_A */
159
+#define TLV_PID_USCI_B        (0x92)      /*  USCI_B */
160
+#define TLV_PID_EUSCI_A       (0x94)      /*  eUSCI_A */
161
+#define TLV_PID_EUSCI_B       (0x95)      /*  eUSCI_B */
162
+#define TLV_PID_REF           (0xA0)      /*  Shared Reference */
163
+#define TLV_PID_COMP_B        (0xA8)      /*  COMP_B */
164
+#define TLV_PID_COMP_D        (0xA9)      /*  COMP_D */
165
+#define TLV_PID_USB           (0x98)      /*  USB */
166
+#define TLV_PID_LCD_B         (0xB1)      /*  LCD_B */
167
+#define TLV_PID_LCD_C         (0xB2)      /*  LCD_C */
168
+#define TLV_PID_DAC12_A       (0xC0)      /*  DAC12_A */
169
+#define TLV_PID_SD16_B_1      (0xC8)      /*  SD16_B 1 Channel */
170
+#define TLV_PID_SD16_B_2      (0xC9)      /*  SD16_B 2 Channel */
171
+#define TLV_PID_SD16_B_3      (0xCA)      /*  SD16_B 3 Channel */
172
+#define TLV_PID_SD16_B_4      (0xCB)      /*  SD16_B 4 Channel */
173
+#define TLV_PID_SD16_B_5      (0xCC)      /*  SD16_B 5 Channel */
174
+#define TLV_PID_SD16_B_6      (0xCD)      /*  SD16_B 6 Channel */
175
+#define TLV_PID_SD16_B_7      (0xCE)      /*  SD16_B 7 Channel */
176
+#define TLV_PID_SD16_B_8      (0xCF)      /*  SD16_B 8 Channel */
177
+#define TLV_PID_ADC12_A       (0xD1)      /*  ADC12_A */
178
+#define TLV_PID_ADC10_A       (0xD3)      /*  ADC10_A */
179
+#define TLV_PID_ADC10_B       (0xD4)      /*  ADC10_B */
180
+#define TLV_PID_SD16_A        (0xD8)      /*  SD16_A */
181
+#define TLV_PID_TI_BSL        (0xFC)      /*  BSL */
182
+
183
+/*******************************************************************************
184
+ * \brief   Get Information out of the TLV Table
185
+ *
186
+ * \param tag               Tag of the TLV entry
187
+ * \param instance          Instance of the Tag of the TLV entry
188
+ * \param *length           return: Length of the information if found
189
+ * \param **data_address    return: start pointer of Data
190
+ ******************************************************************************/
191
+void Get_TLV_Info(unsigned char tag, unsigned char instance, unsigned char *length,
192
+    unsigned int **data_address);
193
+
194
+/*******************************************************************************
195
+ * \brief   Get Device Type out of the TLV Table
196
+ *
197
+ * \return  Device dependent value
198
+ ******************************************************************************/
199
+unsigned int Get_Device_Type(void);
200
+
201
+/*******************************************************************************
202
+ * \brief   Get Memory Info out of the TLV Table
203
+ *
204
+ * \param instance  Index of the Instance [0..]
205
+ * \return          Memory Data found
206
+ ******************************************************************************/
207
+unsigned int Get_TLV_Memory(unsigned char instance);
208
+
209
+/*******************************************************************************
210
+ * \brief Get Peripheral Info out of the TLV Table
211
+ *
212
+ * \param tag       Tag of the TLV entry
213
+ * \param instance  Index of the Instance [0..]
214
+ * \return          Peripheral Data found
215
+ ******************************************************************************/
216
+unsigned int Get_TLV_Peripheral(unsigned char tag, unsigned char instance);
217
+
218
+/*******************************************************************************
219
+ * \brief   Get Interrupt Info out of the TLV Table
220
+ *
221
+ * \param tag   Tag of the TLV entry
222
+ * \return      Interrupt Data found
223
+ ******************************************************************************/
224
+unsigned char Get_TLV_Interrupt(unsigned char tag);
225
+
226
+#endif /* HAL_TLV_H */