#ifndef __LKS32MC09X_TRIM_H__
#define __LKS32MC09X_TRIM_H__

uint32_t TRIM_Read(uint32_t adr);
// AFE
#define NVR_ADDR_AFE_REG8 0x00001400 /// SYS_AFE_REG8 校准值，REF校准值
#define NVR_ADDR_AFE_REGA 0x00001404 /// SYS_AFE_REGA 校准值，LDO校准值
#define NVR_ADDR_AFE_REGB 0x00001408 /// SYS_AFE_REGB 校准值，RCL校准值
#define NVR_ADDR_AFE_REGC 0x0000140C /// SYS_AFE_REGC 校准值，RCH校准值，5v供电
#define NVR_ADDR_AFE_REG9 0x00001410 /// SYS_AFE_REG9 校准值
// ADC
#define NVR_ADDR_ADC_0_DC0  0x00001420 /// ADC0_DC0 校准值，3.6V量程OFFSET
#define NVR_ADDR_ADC_0_AMC0 0x00001424 /// ADC0_AMC0 校准值，3.6V量程GAIN
#define NVR_ADDR_ADC_0_DC1  0x00001428 /// ADC0_DC1 校准值，7.2V量程OFFSET
#define NVR_ADDR_ADC_0_AMC1 0x0000142C /// ADC0_AMC1 校准值，7.2V量程GAIN
#define NVR_ADDR_ADC_1_DC0  0x00001430 /// ADC1_DC0 校准值，3.6V量程OFFSET
#define NVR_ADDR_ADC_1_AMC0 0x00001434 /// ADC1_AMC0 校准值，3.6V量程GAIN
#define NVR_ADDR_ADC_1_DC1  0x00001438 /// ADC1_DC1 校准值，7.2V量程OFFSET
#define NVR_ADDR_ADC_1_AMC1 0x0000143C /// ADC1_AMC1 校准值，7.2V量程GAIN
// DAC
#define NVR_ADDR_DAC_0_AMC_4_8V  0x00001450 /// DAC0 选择4.8V 档位， SYS_AFE_DAC_AMC 校准值（扩大 512 倍结果）
#define NVR_ADDR_DAC_0_DC_4_8V   0x00001454 /// DAC0 选择4.8V 档位， SYS_AFE_DAC_DC 校准值
#define NVR_ADDR_DAC_0_AMC_1_20V 0x00001458 /// DAC0 选择1.20V 档位，SYS_AFE_DAC_AMC 校准值（扩大 512 倍结果）
#define NVR_ADDR_DAC_0_DC_1_20V  0x0000145C /// DAC0 选择1.20V 档位，SYS_AFE_DAC_DC 校准值
#define NVR_ADDR_DAC_1_AMC_3_0V  0x00001460 /// DAC1 选择3.0V 档位， SYS_AFE_DAC_AMC 校准值（扩大 512 倍结果）
#define NVR_ADDR_DAC_1_DC_3_0V   0x00001464 /// DAC1 选择3.0V 档位， SYS_AFE_DAC_DC 校准值
#define NVR_ADDR_DAC_1_AMC_1_20V 0x00001468 /// DAC1 选择1.20V 档位，SYS_AFE_DAC_AMC 校准值（扩大 512 倍结果）
#define NVR_ADDR_DAC_1_DC_1_20V  0x0000146C /// DAC1 选择1.20V 档位，SYS_AFE_DAC_DC 校准值
// OPA
#define NVR_ADDR_OPA_0               0x000014C0 /// OPA0，共模电压（扩大10000 倍结果）
#define NVR_ADDR_OPA_1               0x000014C4 /// OPA1，共模电压（扩大10000 倍结果）
#define NVR_ADDR_OPA_2               0x000014C8 /// OPA2，共模电压（扩大10000 倍结果）
#define NVR_ADDR_OPA_3               0x000014CC /// OPA3，共模电压（扩大10000 倍结果）
#define NVR_ADDR_OPA_0_660K_20K_GAIN 0x00001480 /// OPA0，660K 欧姆 VS 20K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_0_640K_40K_GAIN 0x00001484 /// OPA0，640K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_0_320K_40K_GAIN 0x00001488 /// OPA0，320K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_0_160K_40K_GAIN 0x0000148C /// OPA0，160K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_1_660K_20K_GAIN 0x00001490 /// OPA1，660K 欧姆 VS 20K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_1_640K_40K_GAIN 0x00001494 /// OPA1，640K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_1_320K_40K_GAIN 0x00001498 /// OPA1，320K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_1_160K_40K_GAIN 0x0000149C /// OPA1，160K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_2_660K_20K_GAIN 0x000014A0 /// OPA2，660K 欧姆 VS 20K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_2_640K_40K_GAIN 0x000014A4 /// OPA2，640K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_2_320K_40K_GAIN 0x000014A8 /// OPA2，320K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_2_160K_40K_GAIN 0x000014AC /// OPA2，160K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_3_660K_20K_GAIN 0x000014B0 /// OPA3，660K 欧姆 VS 20K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_3_640K_40K_GAIN 0x000014B4 /// OPA3，640K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_3_320K_40K_GAIN 0x000014B8 /// OPA3，320K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_3_160K_40K_GAIN 0x000014BC /// OPA3，160K 欧姆 VS 40K 欧姆，GAIN 校准值（扩大 1000 倍结果）
#define NVR_ADDR_OPA_0_660K_20K_RES  0x00001500 /// OPA0，660K 欧姆:20K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_0_640K_40K_RES  0x00001504 /// OPA0，640K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_0_320K_40K_RES  0x00001508 /// OPA0，320K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_0_160K_40K_RES  0x0000150C /// OPA0，160K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_1_660K_20K_RES  0x00001510 /// OPA1，660K 欧姆:20K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_1_640K_40K_RES  0x00001514 /// OPA1，640K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_1_320K_40K_RES  0x00001518 /// OPA1，320K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_1_160K_40K_RES  0x0000151C /// OPA1，160K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_2_660K_20K_RES  0x00001520 /// OPA2，660K 欧姆:20K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_2_640K_40K_RES  0x00001524 /// OPA2，640K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_2_320K_40K_RES  0x00001528 /// OPA2，320K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_2_160K_40K_RES  0x0000152C /// OPA2，160K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_3_660K_20K_RES  0x00001530 /// OPA3，660K 欧姆:20K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_3_640K_40K_RES  0x00001534 /// OPA3，640K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_3_320K_40K_RES  0x00001538 /// OPA3，320K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_3_160K_40K_RES  0x0000153C /// OPA3，160K 欧姆:40K 欧姆,电阻校准值。高16位R2校准值（注意：扩大10 倍结果）低16位R1校准值（注意：扩大10 倍结果）
#define NVR_ADDR_OPA_0_OFFSET_H      0x00001560 /// OPA0 四个档位下Offset值(有符号类型，单位v，放大1000倍)Bit[31:16]4倍放大倍数 3档Bit[15:0]8倍放大倍数 2档
#define NVR_ADDR_OPA_0_OFFSET_L      0x00001564 /// OPA0 四个档位下Offset值(有符号类型，单位v，放大1000倍)Bit[31:16]16倍放大倍数 1档Bit[15:0]33倍放大倍数 0档
#define NVR_ADDR_OPA_1_OFFSET_H      0x00001568 /// OPA1 四个档位下Offset值(有符号类型，单位v，放大1000倍)Bit[31:16]4倍放大倍数Bit[15:0]8倍放大倍数
#define NVR_ADDR_OPA_1_OFFSET_L      0x0000156C /// OPA1 四个档位下Offset值(有符号类型，单位v，放大1000倍)Bit[31:16]16倍放大倍数Bit[15:0]33倍放大倍数
#define NVR_ADDR_OPA_2_OFFSET_H      0x00001570 /// OPA2 四个档位下Offset值(有符号类型，单位v，放大1000倍)Bit[31:16]4倍放大倍数 3档Bit[15:0]8倍放大倍数 2档
#define NVR_ADDR_OPA_2_OFFSET_L      0x00001574 /// OPA2 四个档位下Offset值(有符号类型，单位v，放大1000倍)Bit[31:16]16倍放大倍数 1档Bit[15:0]33倍放大倍数 0档
#define NVR_ADDR_OPA_3_OFFSET_H      0x00001578 /// OPA3 四个档位下Offset值(有符号类型，单位v，放大1000倍)Bit[31:16]4倍放大倍数Bit[15:0]8倍放大倍数
#define NVR_ADDR_OPA_3_OFFSET_L      0x0000157C /// OPA3 四个档位下Offset值(有符号类型，单位v，放大1000倍)Bit[31:16]16倍放大倍数Bit[15:0]33倍放大倍数
// TMP
#define NVR_ADDR_TMP_K 0x000014D0 /// 温度传感器，斜率校准值
#define NVR_ADDR_TMP_B 0x000014D4 /// 温度传感器，偏置校准值
// TMP
#define NVR_ADDR_AMTE_TMP     0x000014D8 /// 测试温度
#define NVR_ADDR_AMTE_CNT     0x000014E0 /// 芯片AMTE 测试次数
#define NVR_ADDR_AMTE_VERSION 0x000014E4 /// AMTE 测试程序版本号
// CHIP
#define NVR_ADDR_CHIP_MODEL        0x000014E8 /// LKS07X 芯片具体型号，070/1/2/3/5/6/....
#define NVR_ADDR_CHIP_BOOT_VERSION 0x000014EC /// Boot 程序版本号
#define NVR_ADDR_CHIP_FLASH_SIZE   0x000014F0 /// Flash大小标志，0:128k/1:64k/2:32k

#define NVR_ADDR_CHIP_ID0          0x1e84
#define NVR_ADDR_CHIP_ID1          0x1e88
#define NVR_ADDR_CHIP_ID2          0x1e8c
#define NVR_ADDR_CHIP_ID3          0x1e90
#define NVR_ADDR_CHIP_ID4          0x1e94

#endif
