You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

281 lines
11 KiB

#ifndef __DAC_CTRL_DEFINE_H__
#define __DAC_CTRL_DEFINE_H__
//-----------------------------------------------------------------------------
// dac_ctrl registers definition
//-----------------------------------------------------------------------------
#pragma anon_unions
//-----------------------------------------------------------------------------
// registers structures
typedef struct
{
//dac output target vaule
//2.3v/4096=1lsb
uint32_t target:12;
uint32_t reserved_15_12:4;
//ramp up slewrate selection, time unit is micro seconde. step is 1us.
//0: 0us; 1: 1us; …..255: 255us;
uint32_t slewrate:8;
//dac output enable
uint32_t enable:1;
uint32_t reserved_31_25:7;
} REG_dac_ctrl_cv0_cfg_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cv0_cfg_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cv0_cfg_TypeDef;
typedef struct
{
//current dac value
uint32_t out:12;
uint32_t reserved_31_12:20;
} REG_dac_ctrl_cv0_val_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cv0_val_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cv0_val_TypeDef;
typedef struct
{
//dac output target vaule
//2.3v/4096=1lsb
uint32_t target:12;
uint32_t reserved_15_12:4;
//ramp up slewrate selection, time unit is micro seconde. step is 1us.
//0: 0us; 1: 1us; …..255: 255us;
uint32_t slewrate:8;
//dac output enable
uint32_t enable:1;
uint32_t reserved_31_25:7;
} REG_dac_ctrl_cv1_cfg_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cv1_cfg_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cv1_cfg_TypeDef;
typedef struct
{
//current dac value
uint32_t out:12;
uint32_t reserved_31_12:20;
} REG_dac_ctrl_cv1_val_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cv1_val_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cv1_val_TypeDef;
typedef struct
{
//dac output target vaule
//2.3v/63=1lsb
uint32_t target:6;
uint32_t reserved_15_6:10;
//ramp up slewrate selection, time unit is micro seconde. step is 1us.
//0: 0us; 1: 1us; …..255: 255us;
uint32_t slewrate:8;
//dac output enable
uint32_t enable:1;
uint32_t reserved_31_25:7;
} REG_dac_ctrl_cv2_cfg_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cv2_cfg_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cv2_cfg_TypeDef;
typedef struct
{
//current dac value
uint32_t out:6;
uint32_t reserved_31_6:26;
} REG_dac_ctrl_cv2_val_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cv2_val_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cv2_val_TypeDef;
typedef struct
{
//dac output target vaule
//2.3v/2048=1lsb
uint32_t target:11;
uint32_t reserved_15_11:5;
//ramp up slewrate selection, time unit is micro seconde.
//0: 0us; 1: 1us; …..255: 255us;
uint32_t slewrate:8;
//dac output enable
uint32_t enable:1;
uint32_t reserved_31_25:7;
} REG_dac_ctrl_cc0_cfg_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cc0_cfg_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cc0_cfg_TypeDef;
typedef struct
{
//current dac value
uint32_t out:11;
uint32_t reserved_31_11:21;
} REG_dac_ctrl_cc0_val_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cc0_val_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cc0_val_TypeDef;
typedef struct
{
//dac output target vaule
//2.3v/2048=1lsb
uint32_t target:11;
uint32_t reserved_15_11:5;
//ramp up slewrate selection, time unit is micro seconde.
//0: 0us; 1: 1us; …..255: 255us;
uint32_t slewrate:8;
//dac output enable
uint32_t enable:1;
uint32_t reserved_31_25:7;
} REG_dac_ctrl_cc1_cfg_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cc1_cfg_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cc1_cfg_TypeDef;
typedef struct
{
//current dac value
uint32_t out:11;
uint32_t reserved_31_11:21;
} REG_dac_ctrl_cc1_val_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_dac_ctrl_cc1_val_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_dac_ctrl_cc1_val_TypeDef;
//-----------------------------------------------------------------------------
// memory map
#define REG_DAC_CTRL_CV0_CFG_BASE 0x40009000
#define REG_DAC_CTRL_CV0_VAL_BASE 0x40009004
#define REG_DAC_CTRL_CV1_CFG_BASE 0x40009008
#define REG_DAC_CTRL_CV1_VAL_BASE 0x4000900C
#define REG_DAC_CTRL_CV2_CFG_BASE 0x40009010
#define REG_DAC_CTRL_CV2_VAL_BASE 0x40009014
#define REG_DAC_CTRL_CC0_CFG_BASE 0x40009100
#define REG_DAC_CTRL_CC0_VAL_BASE 0x40009104
#define REG_DAC_CTRL_CC1_CFG_BASE 0x40009108
#define REG_DAC_CTRL_CC1_VAL_BASE 0x4000910C
//-----------------------------------------------------------------------------
// declaration
#define REG_DAC_CTRL_CV0_CFG ((REG_dac_ctrl_cv0_cfg_TypeDef *) REG_DAC_CTRL_CV0_CFG_BASE )
#define REG_DAC_CTRL_CV0_VAL ((REG_dac_ctrl_cv0_val_TypeDef *) REG_DAC_CTRL_CV0_VAL_BASE )
#define REG_DAC_CTRL_CV1_CFG ((REG_dac_ctrl_cv1_cfg_TypeDef *) REG_DAC_CTRL_CV1_CFG_BASE )
#define REG_DAC_CTRL_CV1_VAL ((REG_dac_ctrl_cv1_val_TypeDef *) REG_DAC_CTRL_CV1_VAL_BASE )
#define REG_DAC_CTRL_CV2_CFG ((REG_dac_ctrl_cv2_cfg_TypeDef *) REG_DAC_CTRL_CV2_CFG_BASE )
#define REG_DAC_CTRL_CV2_VAL ((REG_dac_ctrl_cv2_val_TypeDef *) REG_DAC_CTRL_CV2_VAL_BASE )
#define REG_DAC_CTRL_CC0_CFG ((REG_dac_ctrl_cc0_cfg_TypeDef *) REG_DAC_CTRL_CC0_CFG_BASE )
#define REG_DAC_CTRL_CC0_VAL ((REG_dac_ctrl_cc0_val_TypeDef *) REG_DAC_CTRL_CC0_VAL_BASE )
#define REG_DAC_CTRL_CC1_CFG ((REG_dac_ctrl_cc1_cfg_TypeDef *) REG_DAC_CTRL_CC1_CFG_BASE )
#define REG_DAC_CTRL_CC1_VAL ((REG_dac_ctrl_cc1_val_TypeDef *) REG_DAC_CTRL_CC1_VAL_BASE )
//-----------------------------------------------------------------------------
// set
#define REG_DAC_CTRL_CV0_CFG_TARGET_POS 0
#define REG_DAC_CTRL_CV0_CFG_TARGET_MSK (0xFFFul << REG_DAC_CTRL_CV0_CFG_TARGET_POS)
#define REG_DAC_CTRL_CV0_CFG_TARGET_SET(num) (((num) << REG_DAC_CTRL_CV0_CFG_TARGET_POS ) & REG_DAC_CTRL_CV0_CFG_TARGET_MSK)
#define REG_DAC_CTRL_CV0_CFG_SLEWRATE_POS 16
#define REG_DAC_CTRL_CV0_CFG_SLEWRATE_MSK (0xFFul << REG_DAC_CTRL_CV0_CFG_SLEWRATE_POS)
#define REG_DAC_CTRL_CV0_CFG_SLEWRATE_SET(num) (((num) << REG_DAC_CTRL_CV0_CFG_SLEWRATE_POS ) & REG_DAC_CTRL_CV0_CFG_SLEWRATE_MSK)
#define REG_DAC_CTRL_CV0_CFG_ENABLE_POS 24
#define REG_DAC_CTRL_CV0_CFG_ENABLE_MSK (0x1ul << REG_DAC_CTRL_CV0_CFG_ENABLE_POS)
#define REG_DAC_CTRL_CV0_CFG_ENABLE_SET(num) (((num) << REG_DAC_CTRL_CV0_CFG_ENABLE_POS ) & REG_DAC_CTRL_CV0_CFG_ENABLE_MSK)
#define REG_DAC_CTRL_CV1_CFG_TARGET_POS 0
#define REG_DAC_CTRL_CV1_CFG_TARGET_MSK (0xFFFul << REG_DAC_CTRL_CV1_CFG_TARGET_POS)
#define REG_DAC_CTRL_CV1_CFG_TARGET_SET(num) (((num) << REG_DAC_CTRL_CV1_CFG_TARGET_POS ) & REG_DAC_CTRL_CV1_CFG_TARGET_MSK)
#define REG_DAC_CTRL_CV1_CFG_SLEWRATE_POS 16
#define REG_DAC_CTRL_CV1_CFG_SLEWRATE_MSK (0xFFul << REG_DAC_CTRL_CV1_CFG_SLEWRATE_POS)
#define REG_DAC_CTRL_CV1_CFG_SLEWRATE_SET(num) (((num) << REG_DAC_CTRL_CV1_CFG_SLEWRATE_POS ) & REG_DAC_CTRL_CV1_CFG_SLEWRATE_MSK)
#define REG_DAC_CTRL_CV1_CFG_ENABLE_POS 24
#define REG_DAC_CTRL_CV1_CFG_ENABLE_MSK (0x1ul << REG_DAC_CTRL_CV1_CFG_ENABLE_POS)
#define REG_DAC_CTRL_CV1_CFG_ENABLE_SET(num) (((num) << REG_DAC_CTRL_CV1_CFG_ENABLE_POS ) & REG_DAC_CTRL_CV1_CFG_ENABLE_MSK)
#define REG_DAC_CTRL_CV2_CFG_TARGET_POS 0
#define REG_DAC_CTRL_CV2_CFG_TARGET_MSK (0x3Ful << REG_DAC_CTRL_CV2_CFG_TARGET_POS)
#define REG_DAC_CTRL_CV2_CFG_TARGET_SET(num) (((num) << REG_DAC_CTRL_CV2_CFG_TARGET_POS ) & REG_DAC_CTRL_CV2_CFG_TARGET_MSK)
#define REG_DAC_CTRL_CV2_CFG_SLEWRATE_POS 16
#define REG_DAC_CTRL_CV2_CFG_SLEWRATE_MSK (0xFFul << REG_DAC_CTRL_CV2_CFG_SLEWRATE_POS)
#define REG_DAC_CTRL_CV2_CFG_SLEWRATE_SET(num) (((num) << REG_DAC_CTRL_CV2_CFG_SLEWRATE_POS ) & REG_DAC_CTRL_CV2_CFG_SLEWRATE_MSK)
#define REG_DAC_CTRL_CV2_CFG_ENABLE_POS 24
#define REG_DAC_CTRL_CV2_CFG_ENABLE_MSK (0x1ul << REG_DAC_CTRL_CV2_CFG_ENABLE_POS)
#define REG_DAC_CTRL_CV2_CFG_ENABLE_SET(num) (((num) << REG_DAC_CTRL_CV2_CFG_ENABLE_POS ) & REG_DAC_CTRL_CV2_CFG_ENABLE_MSK)
#define REG_DAC_CTRL_CC0_CFG_TARGET_POS 0
#define REG_DAC_CTRL_CC0_CFG_TARGET_MSK (0x7FFul << REG_DAC_CTRL_CC0_CFG_TARGET_POS)
#define REG_DAC_CTRL_CC0_CFG_TARGET_SET(num) (((num) << REG_DAC_CTRL_CC0_CFG_TARGET_POS ) & REG_DAC_CTRL_CC0_CFG_TARGET_MSK)
#define REG_DAC_CTRL_CC0_CFG_SLEWRATE_POS 16
#define REG_DAC_CTRL_CC0_CFG_SLEWRATE_MSK (0xFFul << REG_DAC_CTRL_CC0_CFG_SLEWRATE_POS)
#define REG_DAC_CTRL_CC0_CFG_SLEWRATE_SET(num) (((num) << REG_DAC_CTRL_CC0_CFG_SLEWRATE_POS ) & REG_DAC_CTRL_CC0_CFG_SLEWRATE_MSK)
#define REG_DAC_CTRL_CC0_CFG_ENABLE_POS 24
#define REG_DAC_CTRL_CC0_CFG_ENABLE_MSK (0x1ul << REG_DAC_CTRL_CC0_CFG_ENABLE_POS)
#define REG_DAC_CTRL_CC0_CFG_ENABLE_SET(num) (((num) << REG_DAC_CTRL_CC0_CFG_ENABLE_POS ) & REG_DAC_CTRL_CC0_CFG_ENABLE_MSK)
#define REG_DAC_CTRL_CC1_CFG_TARGET_POS 0
#define REG_DAC_CTRL_CC1_CFG_TARGET_MSK (0x7FFul << REG_DAC_CTRL_CC1_CFG_TARGET_POS)
#define REG_DAC_CTRL_CC1_CFG_TARGET_SET(num) (((num) << REG_DAC_CTRL_CC1_CFG_TARGET_POS ) & REG_DAC_CTRL_CC1_CFG_TARGET_MSK)
#define REG_DAC_CTRL_CC1_CFG_SLEWRATE_POS 16
#define REG_DAC_CTRL_CC1_CFG_SLEWRATE_MSK (0xFFul << REG_DAC_CTRL_CC1_CFG_SLEWRATE_POS)
#define REG_DAC_CTRL_CC1_CFG_SLEWRATE_SET(num) (((num) << REG_DAC_CTRL_CC1_CFG_SLEWRATE_POS ) & REG_DAC_CTRL_CC1_CFG_SLEWRATE_MSK)
#define REG_DAC_CTRL_CC1_CFG_ENABLE_POS 24
#define REG_DAC_CTRL_CC1_CFG_ENABLE_MSK (0x1ul << REG_DAC_CTRL_CC1_CFG_ENABLE_POS)
#define REG_DAC_CTRL_CC1_CFG_ENABLE_SET(num) (((num) << REG_DAC_CTRL_CC1_CFG_ENABLE_POS ) & REG_DAC_CTRL_CC1_CFG_ENABLE_MSK)
#endif /*__DAC_CTRL_DEFINE_H__*/