|
| 1 | +/** |
| 2 | + ****************************************************************************** |
| 3 | + * @file lib_LoadNVR.h |
| 4 | + * @author Application Team |
| 5 | + * @version V1.1.0 |
| 6 | + * @date 2019-10-28 |
| 7 | + * @brief Load information from NVR. |
| 8 | + ****************************************************************************** |
| 9 | + * @attention |
| 10 | + * |
| 11 | + ****************************************************************************** |
| 12 | + */ |
| 13 | + |
| 14 | +#ifndef __LIB_LOADNVR_H |
| 15 | +#define __LIB_LOADNVR_H |
| 16 | + |
| 17 | +#ifdef __cplusplus |
| 18 | + extern "C" { |
| 19 | +#endif |
| 20 | + |
| 21 | +/* Includes ------------------------------------------------------------------*/ |
| 22 | +#include "target.h" |
| 23 | + |
| 24 | +/* Power Measure Result */ |
| 25 | +typedef struct |
| 26 | +{ |
| 27 | + uint32_t AVCCMEAResult; // LDO33 Measure Result |
| 28 | + uint32_t DVCCMEAResult; // LDO15 Measure Result |
| 29 | + uint32_t BGPMEAResult; // BGP Measure Result |
| 30 | + uint32_t RCLMEAResult; // RCL Measure Result |
| 31 | + uint32_t RCHMEAResult; // RCH Measure Result |
| 32 | +} NVR_MISCGain; |
| 33 | + |
| 34 | +/* Chip ID */ |
| 35 | +typedef struct |
| 36 | +{ |
| 37 | + uint32_t ChipID0; // ID word 0 |
| 38 | + uint32_t ChipID1; // ID word 1 |
| 39 | +} NVR_CHIPID; |
| 40 | + |
| 41 | +/* Temperature information */ |
| 42 | +typedef struct |
| 43 | +{ |
| 44 | + float TempOffset; |
| 45 | +} NVR_TEMPINFO; |
| 46 | + |
| 47 | +/* LCD information */ |
| 48 | +typedef struct |
| 49 | +{ |
| 50 | + uint32_t MEALCDLDO; // Measure LCD LDO pre trim value |
| 51 | + uint32_t MEALCDVol; // VLCD setting |
| 52 | +} NVR_LCDINFO; |
| 53 | + |
| 54 | +/* RTC(temp) information */ |
| 55 | +typedef struct |
| 56 | +{ |
| 57 | + int16_t RTCTempP0; //P0 |
| 58 | + int16_t RTCTempP1; //P1 |
| 59 | + int32_t RTCTempP2; //P2 |
| 60 | + int16_t RTCTempP4; //P4 |
| 61 | + int16_t RTCTempP5; //P5 |
| 62 | + int16_t RTCTempP6; //P6 |
| 63 | + int16_t RTCTempP7; //P7 |
| 64 | + int16_t RTCTempK0; //K0 |
| 65 | + int16_t RTCTempK1; //K1 |
| 66 | + int16_t RTCTempK2; //K2 |
| 67 | + int16_t RTCTempK3; //K3 |
| 68 | + int16_t RTCTempK4; //K4 |
| 69 | + int16_t RTCACTI; //Center temperature |
| 70 | + uint32_t RTCACKTemp; //section X temperature |
| 71 | + int32_t RTCTempDelta; //Temperature delta |
| 72 | + uint32_t RTCACF200; //RTC_ACF200 |
| 73 | +} NVR_RTCINFO; |
| 74 | + |
| 75 | +/* RTC(temp) information */ |
| 76 | +typedef struct |
| 77 | +{ |
| 78 | + int16_t RTCTempP0; //P0 |
| 79 | + int16_t RTCTempP1; //P1 |
| 80 | + int32_t RTCTempP2; //P2 |
| 81 | +} NVR_TempParams; |
| 82 | + |
| 83 | +/* ADC Voltage Parameters */ |
| 84 | +typedef struct |
| 85 | +{ |
| 86 | + float aParameter; |
| 87 | + float bParameter; |
| 88 | + float OffsetParameter; |
| 89 | +} NVR_ADCVOLPARA; |
| 90 | +//Mode |
| 91 | +#define NVR_3V_EXTERNAL_NODIV (0x000UL) // Power supply: 3.3V; Channel: External; Divider modeL: None |
| 92 | +#define NVR_3V_EXTERNAL_RESDIV (0x001UL) // Power supply: 3.3V; Channel: External; Divider modeL: Resistive |
| 93 | +#define NVR_3V_BAT1_RESDIV (0x002UL) // Power supply: 3.3V; Channel: VDD; Divider modeL: Resistive |
| 94 | +#define NVR_3V_BATRTC_RESDIV (0x003UL) // Power supply: 3.3V; Channel: BATRTC; Divider modeL: Resistive |
| 95 | +#define NVR_5V_EXTERNAL_NODIV (0x100UL) // Power supply: 5V; Channel: External; Divider modeL: None |
| 96 | +#define NVR_5V_EXTERNAL_RESDIV (0x101UL) // Power supply: 5V; Channel: External; Divider modeL: Resistive |
| 97 | +#define NVR_5V_BAT1_RESDIV (0x102UL) // Power supply: 5V; Channel: VDD; Divider modeL: Resistive |
| 98 | +#define NVR_5V_BATRTC_RESDIV (0x103UL) // Power supply: 5V; Channel: BATRTC; Divider modeL: Resistive |
| 99 | +#define IS_NVR_ADCVOL_MODE(__MODE__) (((__MODE__) == NVR_3V_EXTERNAL_NODIV) ||\ |
| 100 | + ((__MODE__) == NVR_3V_EXTERNAL_RESDIV) ||\ |
| 101 | + ((__MODE__) == NVR_3V_BAT1_RESDIV) ||\ |
| 102 | + ((__MODE__) == NVR_3V_BATRTC_RESDIV) ||\ |
| 103 | + ((__MODE__) == NVR_5V_EXTERNAL_NODIV) ||\ |
| 104 | + ((__MODE__) == NVR_5V_EXTERNAL_RESDIV) ||\ |
| 105 | + ((__MODE__) == NVR_5V_BAT1_RESDIV) ||\ |
| 106 | + ((__MODE__) == NVR_5V_BATRTC_RESDIV)) |
| 107 | + |
| 108 | +//VOLMode |
| 109 | +#define NVR_MEARES_3V 0 |
| 110 | +#define NVR_MEARES_5V 1 |
| 111 | +#define IS_MEARES(__VOLMODE__) (((__VOLMODE__) == NVR_MEARES_3V) ||\ |
| 112 | + ((__VOLMODE__) == NVR_MEARES_5V)) |
| 113 | +/********** NVR Address **********/ |
| 114 | +//ADC Voltage Parameters |
| 115 | +#define NVR_3VPARA_BASEADDR1 (__IO uint32_t *)(0x80C48) |
| 116 | +#define NVR_3VPARA_BASEADDR2 (__IO uint32_t *)(0x80C6C) |
| 117 | +#define NVR_5VPARA_BASEADDR1 (__IO uint32_t *)(0x80C00) |
| 118 | +#define NVR_5VPARA_BASEADDR2 (__IO uint32_t *)(0x80C24) |
| 119 | +//RTC DATA |
| 120 | +//P4 |
| 121 | +#define NVR_RTC1_P4 (__IO uint32_t *)(0x80800) |
| 122 | +#define NVR_RTC1_P4_CHKSUM (__IO uint32_t *)(0x80804) |
| 123 | +#define NVR_RTC2_P4 (__IO uint32_t *)(0x80808) |
| 124 | +#define NVR_RTC2_P4_CHKSUM (__IO uint32_t *)(0x8080C) |
| 125 | +//ACK1~ACK5 |
| 126 | +#define NVR_RTC1_ACK0 (__IO uint32_t *)(0x80810) |
| 127 | +#define NVR_RTC1_ACK1 (__IO uint32_t *)(0x80814) |
| 128 | +#define NVR_RTC1_ACK2 (__IO uint32_t *)(0x80818) |
| 129 | +#define NVR_RTC1_ACK3 (__IO uint32_t *)(0x8081C) |
| 130 | +#define NVR_RTC1_ACK4 (__IO uint32_t *)(0x80820) |
| 131 | +#define NVR_RTC1_ACK_CHKSUM (__IO uint32_t *)(0x80824) |
| 132 | +#define NVR_RTC2_ACK0 (__IO uint32_t *)(0x80828) |
| 133 | +#define NVR_RTC2_ACK1 (__IO uint32_t *)(0x8082C) |
| 134 | +#define NVR_RTC2_ACK2 (__IO uint32_t *)(0x80830) |
| 135 | +#define NVR_RTC2_ACK3 (__IO uint32_t *)(0x80834) |
| 136 | +#define NVR_RTC2_ACK4 (__IO uint32_t *)(0x80838) |
| 137 | +#define NVR_RTC2_ACK_CHKSUM (__IO uint32_t *)(0x8083C) |
| 138 | +//ACTI |
| 139 | +#define NVR_RTC1_ACTI (__IO uint32_t *)(0x80840) |
| 140 | +#define NVR_RTC1_ACTI_CHKSUM (__IO uint32_t *)(0x80844) |
| 141 | +#define NVR_RTC2_ACTI (__IO uint32_t *)(0x80848) |
| 142 | +#define NVR_RTC2_ACTI_CHKSUM (__IO uint32_t *)(0x8084C) |
| 143 | +//ACKTEMP |
| 144 | +#define NVR_RTC1_ACKTEMP (__IO uint32_t *)(0x80850) |
| 145 | +#define NVR_RTC1_ACKTEMP_CHKSUM (__IO uint32_t *)(0x80854) |
| 146 | +#define NVR_RTC2_ACKTEMP (__IO uint32_t *)(0x80858) |
| 147 | +#define NVR_RTC2_ACKTEMP_CHKSUM (__IO uint32_t *)(0x8085C) |
| 148 | +//Analog trim data |
| 149 | +#define NVR_ANA_TRIMDATA1 (__IO uint32_t *)(0x80DC0) |
| 150 | +#define NVR_ANA_OPREG1 (__IO uint32_t *)(0x80DC4) |
| 151 | +#define NVR_ANA_KEYREG1 (__IO uint32_t *)(0x80DC8) |
| 152 | +#define NVR_ANA_CHECKSUM1 (__IO uint32_t *)(0x80DCC) |
| 153 | +#define NVR_ANA_TRIMDATA2 (__IO uint32_t *)(0x80DD0) |
| 154 | +#define NVR_ANA_OPREG2 (__IO uint32_t *)(0x80DD4) |
| 155 | +#define NVR_ANA_KEYREG2 (__IO uint32_t *)(0x80DD8) |
| 156 | +#define NVR_ANA_CHECKSUM2 (__IO uint32_t *)(0x80DDC) |
| 157 | +#define NVR_ANA1_REG10 (__IO uint32_t *)(0x80DE0) |
| 158 | +#define NVR_ANA1_REG10_CHKSUM (__IO uint32_t *)(0x80DE4) |
| 159 | +#define NVR_ANA2_REG10 (__IO uint32_t *)(0x80DE8) |
| 160 | +#define NVR_ANA2_REG10_CHKSUM (__IO uint32_t *)(0x80DEC) |
| 161 | +//ADC_CHx |
| 162 | +#define NVR_5VADCCHx_NODIV1 (__IO uint32_t *)(0x80C90) |
| 163 | +#define NVR_5VADCCHx_RESDIV1 (__IO uint32_t *)(0x80C94) |
| 164 | +#define NVR_5VADCCHx_NODIV2 (__IO uint32_t *)(0x80CA4) |
| 165 | +#define NVR_5VADCCHx_RESDIV2 (__IO uint32_t *)(0x80CA8) |
| 166 | +#define NVR_3VADCCHx_NODIV1 (__IO uint32_t *)(0x80CB8) |
| 167 | +#define NVR_3VADCCHx_RESDIV1 (__IO uint32_t *)(0x80CBC) |
| 168 | +#define NVR_3VADCCHx_NODIV2 (__IO uint32_t *)(0x80CCC) |
| 169 | +#define NVR_3VADCCHx_RESDIV2 (__IO uint32_t *)(0x80CD0) |
| 170 | +//BAT Measure Result |
| 171 | +#define NVR_5VBAT1 (__IO uint32_t *)(0x80C98) |
| 172 | +#define NVR_5VBATRTC1 (__IO uint32_t *)(0x80C9C) |
| 173 | +#define NVR_5VBATCHKSUM1 (__IO uint32_t *)(0x80CA0) |
| 174 | +#define NVR_5VBAT2 (__IO uint32_t *)(0x80CAC) |
| 175 | +#define NVR_5VBATRTC2 (__IO uint32_t *)(0x80CB0) |
| 176 | +#define NVR_5VBATCHKSUM2 (__IO uint32_t *)(0x80CB4) |
| 177 | +#define NVR_3VBAT1 (__IO uint32_t *)(0x80CC0) |
| 178 | +#define NVR_3VBATRTC1 (__IO uint32_t *)(0x80CC4) |
| 179 | +#define NVR_3VBATCHKSUM1 (__IO uint32_t *)(0x80CC8) |
| 180 | +#define NVR_3VBAT2 (__IO uint32_t *)(0x80CD4) |
| 181 | +#define NVR_3VBATRTC2 (__IO uint32_t *)(0x80CD8) |
| 182 | +#define NVR_3VBATCHKSUM2 (__IO uint32_t *)(0x80CDC) |
| 183 | +//RTC AutoCal Px pramameters |
| 184 | +#define NVR_RTC1_P1_P0 (__IO uint32_t *)(0x80D10) |
| 185 | +#define NVR_RTC1_P2 (__IO uint32_t *)(0x80D14) |
| 186 | +#define NVR_RTC1_P5_P4 (__IO uint32_t *)(0x80D18) |
| 187 | +#define NVR_RTC1_P7_P6 (__IO uint32_t *)(0x80D1C) |
| 188 | +#define NVR_RTC1_PCHECHSUM (__IO uint32_t *)(0x80D20) |
| 189 | +#define NVR_RTC2_P1_P0 (__IO uint32_t *)(0x80D24) |
| 190 | +#define NVR_RTC2_P2 (__IO uint32_t *)(0x80D28) |
| 191 | +#define NVR_RTC2_P5_P4 (__IO uint32_t *)(0x80D2C) |
| 192 | +#define NVR_RTC2_P7_P6 (__IO uint32_t *)(0x80D30) |
| 193 | +#define NVR_RTC2_PCHECHSUM (__IO uint32_t *)(0x80D34) |
| 194 | +//Power Measure Result |
| 195 | +#define NVR_AVCC_MEA1 (__IO uint32_t *)(0x80D38) |
| 196 | +#define NVR_DVCC_MEA1 (__IO uint32_t *)(0x80D3C) |
| 197 | +#define NVR_BGP_MEA1 (__IO uint32_t *)(0x80D40) |
| 198 | +#define NVR_RCL_MEA1 (__IO uint32_t *)(0x80D44) |
| 199 | +#define NVR_RCH_MEA1 (__IO uint32_t *)(0x80D48) |
| 200 | +#define NVR_PWR_CHECKSUM1 (__IO uint32_t *)(0x80D4C) |
| 201 | +#define NVR_AVCC_MEA2 (__IO uint32_t *)(0x80D50) |
| 202 | +#define NVR_DVCC_MEA2 (__IO uint32_t *)(0x80D54) |
| 203 | +#define NVR_BGP_MEA2 (__IO uint32_t *)(0x80D58) |
| 204 | +#define NVR_RCL_MEA2 (__IO uint32_t *)(0x80D5C) |
| 205 | +#define NVR_RCH_MEA2 (__IO uint32_t *)(0x80D60) |
| 206 | +#define NVR_PWR_CHECKSUM2 (__IO uint32_t *)(0x80D64) |
| 207 | +//Chip ID |
| 208 | +#define NVR_CHIP1_ID0 (__IO uint32_t *)(0x80D68) |
| 209 | +#define NVR_CHIP1_ID1 (__IO uint32_t *)(0x80D6C) |
| 210 | +#define NVR_CHIP1_CHECKSUM (__IO uint32_t *)(0x80D70) |
| 211 | +#define NVR_CHIP2_ID0 (__IO uint32_t *)(0x80D74) |
| 212 | +#define NVR_CHIP2_ID1 (__IO uint32_t *)(0x80D78) |
| 213 | +#define NVR_CHIP2_CHECKSUM (__IO uint32_t *)(0x80D7C) |
| 214 | +//Temperature information |
| 215 | +#define NVR_REALTEMP1 (__IO uint32_t *)(0x80D80) |
| 216 | +#define NVR_MEATEMP1 (__IO uint32_t *)(0x80D84) |
| 217 | +#define NVR_TEMP_CHECKSUM1 (__IO uint32_t *)(0x80D88) |
| 218 | +#define NVR_REALTEMP2 (__IO uint32_t *)(0x80D9C) |
| 219 | +#define NVR_MEATEMP2 (__IO uint32_t *)(0x80D90) |
| 220 | +#define NVR_TEMP_CHECKSUM2 (__IO uint32_t *)(0x80D94) |
| 221 | + |
| 222 | +uint32_t NVR_LoadANADataManual(void); |
| 223 | +uint32_t NVR_GetInfo_LoadRTCData(NVR_RTCINFO *RTCTempData, uint32_t DivCLKSource); |
| 224 | +uint32_t NVR_GetVoltageParameters(uint32_t Mode, NVR_ADCVOLPARA *Parameter); |
| 225 | +uint32_t NVR_GetTempParameters(NVR_TempParams *TempParams); |
| 226 | +uint32_t NVR_GetMISCGain(NVR_MISCGain *MEAResult); |
| 227 | +uint32_t NVR_GetChipID(NVR_CHIPID *ChipID); |
| 228 | + |
| 229 | +#ifdef __cplusplus |
| 230 | +} |
| 231 | +#endif |
| 232 | + |
| 233 | +#endif /* __LIB_LOADNVR_H */ |
| 234 | + |
| 235 | +/*********************************** END OF FILE ******************************/ |
0 commit comments