#coding:utf-8
#author:liushaopeng
#2016/8/20
import math
import si5338_ms_calculate
#--------------------------------------------------------------------------#
#---------------------寄存器配置部分-----------------------------------------#
#--------------------------------------------------------------------------#

#**************************************************************************#
#---------------------参考时钟的选择-----------------------------------------#
#**************************************************************************#

#--------------------------------------------------------------------------#
#-------REG28［1:0］ 选择外部晶振频率配置如下：--------------------------------#
#REG28_XTAL_FREQ_8Mto11M  = 0   #--外部晶振8M<XTAL<=11M
#REG28_XTAL_FREQ_11Mto19M = 1   #--外部晶振11M<XTAL<=19M  
#REG28_XTAL_FREQ_19Mto26M = 2   #--外部晶振19M<XTAL<=26M
#REG28_XTAL_FREQ_26Mto30M = 3   #--外部晶振26M<XTAL<=30M
#--------------------------------------------------------------------------#
#选择上面配置选项 si5338输入为FPGA分频的10MHz 
#--------------------------------------------------------------------------#

REG28_XTAL_FREQ = 0
#--------------------------------------------------------------------------#
#-----REG28［4:2］& REG29［4:3］选择P1输入端口IN1 IN2 IN3---------------------#
#-----其中reg28寄存器的可配置选项如下：----------------------------------------#
# REG28_P1DIV_IN_IN12_DIFF = 0<<2  #reg28选择IN1 IN2 差分输入
# REG28_P1DIV_IN_IN3_SING  = 2<<2  #reg28选择IN3 单端输入
# REG28_P1DIV_IN_IN12_XTAL = 5<<2  #reg28选择IN1 IN2 外部晶振输入
#--------------------------------------------------------------------------#
# P1端口选择为单端10MHz输入
#--------------------------------------------------------------------------#

REG28_P1DIV_IN = 2 << 2

#--------------------------------------------------------------------------#
#------reg28[7:0]寄存器配置如下----------------------------------------------#
#--------------------------------------------------------------------------#

IIC_CONFIG_ADDR28  = REG28_XTAL_FREQ  &  REG28_P1DIV_IN & REG28_P2DIV_IN

#-------------------------------------------------------------------------#
# REG29_P1DIV_IN_IN12_DIFF = 0<<3  #reg29选择IN1 IN2 差分输入
# REG29_P1DIV_IN_IN3_SING  = 2<<3  #reg29选择IN3 单端输入
# REG29_P1DIV_IN_IN12_XTAL = 1<<3  #reg29选择IN1 IN2 外部晶振输入
#--------------------------------------------------------------------------#
REG29_P1DIV_IN = 2 << 3

#--------------------------------------------------------------------------#
#-----REG29[7:5] 选择进入P1-PFD的参考时钟 如图12页 图6
#--------------------------------------------------------------------------#
# REG29_PFD_IN_P1DIV_IN    = 0<<5  #选择进入PFD的参考时钟的方式 P1分频之前的输入时钟
# REG29_PFD_IN_P2DIV_IN    = 1<<5  #选择进入PFD的参考时钟的方式 P2分频之前的输入时钟
# REG29_PFD_IN_P1DIV_OUT   = 2<<5  #选择进入PFD的参考时钟的方式 P1分频之后的输出时钟
# REG29_PFD_IN_P2DIV_OUT   = 3<<5  #选择进入PFD的参考时钟的方式 P2分频之后的输出时钟
# REG29_PFD_IN_XOCLK       = 4<<5  #选择进入PFD的参考时钟的方式 xoclk
# REG29_PFD_IN_NOCLK 	   = 5<<5  #选择进入PFD的参考时钟的方式 不选择任何时钟
#--------------------------------------------------------------------------# 
REG29_PFD_IN  = 0<<5

#--------------------------------------------------------------------------#
#-----REG29[2:0] 选择P1端口的分频数
#--------------------------------------------------------------------------#
# REG29_P1DIV_DIV1       = 0  
# REG29_P1DIV_DIV2       = 1
# REG29_P1DIV_DIV4       = 2
# REG29_P1DIV_DIV8		 = 3
# REG29_P1DIV_DIV16		 = 4
# REG29_P1DIV_DIV32		 = 5
#--------------------------------------------------------------------------#
REG29_P1DIV = 0
#--------------------------------------------------------------------------#
#配置29寄存器
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR29   = REG29_P1DIV_IN & REG29_PFD_IN   & REG29_P1DIV

#--------------------------------------------------------------------------#
#-----REG30[7:5] 选择进入P2-PFD的反馈时钟 如图12页 图6
#--------------------------------------------------------------------------#
# REG30_PFD_IN_P1DIV_IN    = 0<<5  
# REG30_PFD_IN_P2DIV_IN    = 1<<5  
# REG30_PFD_IN_P1DIV_OUT   = 2<<5
# REG30_PFD_IN_P2DIV_OUT   = 3<<5
# REG30_PFD_IN_XOCLK       = 4<<5
# REG30_PFD_IN_NOCLK 	   = 5<<5
#--------------------------------------------------------------------------#
REG30_PFD_IN = 5<<5	

#--------------------------------------------------------------------------#
#-----REG30[2:0] 选择P2的分频数
#--------------------------------------------------------------------------#
# REG30_P2DIV_DIV1         = 0  
# REG30_P2DIV_DIV2         = 1
# REG30_P2DIV_DIV4         = 2
# REG30_P2DIV_DIV8		   = 3
# REG30_P2DIV_DIV16		   = 4
# REG30_P2DIV_DIV32		   = 5
#--------------------------------------------------------------------------#
REG30_P2DIV = 0 

#--------------------------------------------------------------------------#
#配置30寄存器
IIC_CONFIG_ADDR30   = REG30_P2DIV_IN & REG30_PFD_IN   & REG30_P2DIV



#**************************************************************************#
#---------------------反馈时钟的选择-----------------------------------------#
#**************************************************************************#

#--------------------------------------------------------------------------#
#需要30 和 28 寄存器同时设置，详见si5338-RM手册14页
#--------------------------------------------------------------------------#
# REG30_P2DIV_IN_IN56_DIFF = 0<<3  #选择IN5 IN6 差分输入
# REG30_P2DIV_IN_IN4_SING  = 1<<3  #选择IN4 单端输入
# REG30_P2DIV_IN_NOCLK     = 2<<3  #无时钟进入P2
#--------------------------------------------------------------------------#
REG30_P2DIV = 2<<3

#--------------------------------------------------------------------------#
# REG28_P2DIV_IN_IN56_DIFF = 0<<5  #选择IN5 IN6 差分输入
# REG28_P2DIV_IN_IN4_SING  = 1<<5  #选择IN4 单端输入
# REG28_P2DIV_IN_NOCLK     = 0<<5  #无时钟进入P2
#--------------------------------------------------------------------------#
REG28_P2DIV_IN = 0 <<5


#**************************************************************************#
#---------------------MSN及MSX的配置----------------------------------------#
#**************************************************************************#
fsout_and_fin = [7987859.6,5987859.6,1,1,10000000]
#--------------------------------------------------------------------------#
#--MS0_P1[17:0]--55[1:0]，54，53寄存器组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR53 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][0][0] 
IIC_CONFIG_ADDR54 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][0][1]
IIC_CONFIG_ADDR55 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][0][2] & si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][1][0]<<2
#--------------------------------------------------------------------------#
#--MS0_P2[29:0]--由寄存器58，57，56，55[7:2]组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR56 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][1][1]
IIC_CONFIG_ADDR57 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][1][2]
IIC_CONFIG_ADDR58 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][1][3]

#--------------------------------------------------------------------------#
#--MS0_P3[29:0]--由寄存器62[5:0]，61，60,59组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR59 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][2][0]
IIC_CONFIG_ADDR60 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][2][1]
IIC_CONFIG_ADDR61 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][2][2]
IIC_CONFIG_ADDR62 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[0][2][3]


#--------------------------------------------------------------------------#
#--MS1_P1[17:0]--66[1:0]，65，64寄存器组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR64 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][0][0] 
IIC_CONFIG_ADDR65 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][0][1]
IIC_CONFIG_ADDR66 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][0][2] & si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][1][0]<<2
#--------------------------------------------------------------------------#
#--MS1_P2[29:0]--由寄存器69，68，67，66[7:2]组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR67 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][1][1]
IIC_CONFIG_ADDR68 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][1][2]
IIC_CONFIG_ADDR69 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][1][3]

#--------------------------------------------------------------------------#
#--MS1_P3[29:0]--由寄存器73[5:0]，72，71,70组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR70 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][2][0]
IIC_CONFIG_ADDR71 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][2][1]
IIC_CONFIG_ADDR72 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][2][2]
IIC_CONFIG_ADDR73 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[1][2][3]


#--------------------------------------------------------------------------#
#--MS2_P1[17:0]--77[1:0]，76，75寄存器组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR75 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][0][0] 
IIC_CONFIG_ADDR76 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][0][1]
IIC_CONFIG_ADDR77 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][0][2] & si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][1][0]<<2
#--------------------------------------------------------------------------#
#--MS2_P2[29:0]--由寄存器80，79，78，77[7:2]组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR78 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][1][1]
IIC_CONFIG_ADDR79 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][1][2]
IIC_CONFIG_ADDR80 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][1][3]

#--------------------------------------------------------------------------#
#--MS2_P3[29:0]--由寄存器84[5:0]，83，82,81组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR81 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][2][0]
IIC_CONFIG_ADDR82 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][2][1]
IIC_CONFIG_ADDR83 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][2][2]
IIC_CONFIG_ADDR84 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[2][2][3]

#--------------------------------------------------------------------------#
#--MS3_P1[17:0]--88[1:0]，87，86寄存器组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR86 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][0][0] 
IIC_CONFIG_ADDR87 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][0][1]
IIC_CONFIG_ADDR88 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][0][2] & si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][1][0]<<2
#--------------------------------------------------------------------------#
#--MS3_P2[29:0]--由寄存器91，90，89，88[7:2]组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR89 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][1][1]
IIC_CONFIG_ADDR90 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][1][2]
IIC_CONFIG_ADDR91 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][1][3]

#--------------------------------------------------------------------------#
#--MS3_P3[29:0]--由寄存器95[5:0]，94，93,92组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR92 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][2][0]
IIC_CONFIG_ADDR93 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][2][1]
IIC_CONFIG_ADDR94 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][2][2]
IIC_CONFIG_ADDR95 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[3][2][3]

#--------------------------------------------------------------------------#
#--MSn_P1[17:0]--99[1:0]，98，97寄存器组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR97 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][0][0] 
IIC_CONFIG_ADDR98 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][0][1]
IIC_CONFIG_ADDR99 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][0][2] & si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][1][0]<<2
#--------------------------------------------------------------------------#
#--MSn_P2[29:0]--由寄存器102，101，100，99[7:2]组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR100 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][1][1]
IIC_CONFIG_ADDR101 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][1][2]
IIC_CONFIG_ADDR102 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][1][3]

#--------------------------------------------------------------------------#
#--MSn_P3[29:0]--由寄存器106[5:0]，105，104,103组成
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR103 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][2][0]
IIC_CONFIG_ADDR104 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][2][1]
IIC_CONFIG_ADDR105 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][2][2]
IIC_CONFIG_ADDR106 =  si5338_ms_calculate.Msx_and_Msn(fsout_and_fin)[4][2][3]

#**************************************************************************#
#---------------------------配置PLL参数-------------------------------------#
#**************************************************************************#

#--------------------------------------------------------------------------#
#----reg49[3:0]选择k值和fpfd的工作频率
#--------------------------------------------------------------------------#
# REG49_K_Fpfd_15M   = 0   # k = 925 同时 Fpfd >= 15MHz
# REG49_K_Fpfd_8M15  = 5   # k = 325 同时 8MHz <= Fpfd < 15MHz
# REG49_K_Fpfd_5M8   = 14  # k = 185 同时 5MHz <= Fpfd < 8MHz
#--------------------------------------------------------------------------#
REG49_K_Fpfd = 5

#--------------------------------------------------------------------------#
#-------reg49[6:4]选择fvco和Q值
#--------------------------------------------------------------------------#
# REG49_VCO_GAIN_Q3  = 0<<4   # vco_gian >2.425G 同时 Q = 3
# REG49_VCO_GAIN_Q4  = 1<<4   # vco_gian <2.425G 同时 Q = 4
#--------------------------------------------------------------------------#
REG49_VCO_GAIN = 0

#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR40  = REG49_K_Fpfd & REG49_VCO_GAIN



#--------------------------------------------------------------------------#
#--------reg51[2:0]---Multisynth相位错误校正，此三位必须为111
#--------------------------------------------------------------------------#
REG51_MULTISYNTH_PHERROR_CORREC = 7 

#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR51 = REG51_MULTISYNTH_PHERROR_CORREC


#**************************************************************************#
#---------------------------配置输出驱动-------------------------------------#
#**************************************************************************#

#--------------------------------------------------------------------------#
#-----------配置4个输出端口电平类型
#--------------------------------------------------------------------------#

#--------------------------------------------------------------------------#
#---reg36[2:0],reg37[2:0],reg38[2:0],reg39[2:0]--电平类型
# REG36_7_8_9_DRVx_FMT_RE     = 0 # 保留位
# REG36_7_8_9_DRVx_FMT_CMOS1  = 1 # CMOS/SSTL/HSTL A enable B disable
# REG36_7_8_9_DRVx_FMT_CMOS2  = 2 # CMOS/SSTL/HSTL A disable B enable
# REG36_7_8_9_DRVx_FMT_CMOS3  = 3 # CMOS/SSTL/HSTL A disable B disable
# REG36_7_8_9_DRVx_FMT_LVPECL = 4 # LVPECL
# REG36_7_8_9_DRVx_FMT_LVDS   = 5 # LVDS
# REG36_7_8_9_DRVx_FMT_CML    = 6 # CML
# REG36_7_8_9_DRVx_FMT_HCSL   = 7 # HCSL
#--------------------------------------------------------------------------#
REG36_DRV0_FMT = 1
REG37_DRV1_FMT = 1
REG38_DRV2_FMT = 1
REG39_DRV3_FMT = 1


IIC_CONFIG_ADDR36 = REG36_DRV0_FMT & REG36_DRV0_INV
IIC_CONFIG_ADDR37 = REG37_DRV1_FMT & REG37_DRV1_INV
IIC_CONFIG_ADDR38 = REG38_DRV2_FMT & REG38_DRV2_INV
IIC_CONFIG_ADDR39 = REG39_DRV3_FMT & REG39_DRV3_INV


#**************************************************************************#
#---------------------------配置4个输出端口电压大小---------------------------#
#**************************************************************************#

#--------------------------------------------------------------------------#
#----reg35[7:0]配置四个端口的电压大小
#----reg35[1:0]：0端口--reg35[3:2]：1端口--reg35[5:4]：2端口--reg35[7:6]：3端口
# REG_DRVx_VDDO33 = 0 # 端口输出电压为3.3V 
# REG_DRVx_VDDO25 = 1 # 端口输出电压为2.8V
# REG_DRVx_VDDO18 = 2 # 端口输出电压为1.8V
# REG_DRVx_VDDO15 = 3 # 端口输出电压为1.5V
#--------------------------------------------------------------------------#
REG35_DRV0_VDDO = 0 
REG35_DRV1_VDDO = 0 << 2
REG35_DRV2_VDDO = 0 << 4
REG35_DRV3_VDDO = 0 << 6
#--------------------------------------------------------------------------#
IIC_CONFIG_ADDR35 = REG35_DRV0_VDDO & REG35_DRV1_VDDO & REG35_DRV2_VDDO & REG35_DRV3_VDDO


#**************************************************************************#
#---------------------------配置4个输出端口驱动修整---------------------------#
#**************************************************************************#
#--------------------------------------------------------------------------#
#---reg42[4:0],reg41[6:0],reg40[7:0]
#--------------------------------------------------------------------------#
# REG40_41_42_DRVx_CMOS33 = 23
# REG40_41_42_DRVx_CMOS25 = 19
# REG40_41_42_DRVx_CMOS18 = 21

# REG40_41_42_DRVx_HSTL15 = 31

# REG40_41_42_DRVx_SSTL33 = 4
# REG40_41_42_DRVx_SSTL25 = 13
# REG40_41_42_DRVx_SSTL18 = 23

# REG40_41_42_DRVx_LVPECL33 = 15
# REG40_41_42_DRVx_LVPECL25 = 16

# REG40_41_42_DRVx_LVDS33     = 3
# REG40_41_42_DRVx_LCDS25OR18 = 4

# REG40_41_42_DRVx_HCSL33 = 7
# REG40_41_42_DRVx_HCSL25 = 7
# REG40_41_42_DRVx_HCSL18 = 7

# REG40_41_42_DRVx_CML33 = 8
# REG40_41_42_DRVx_CML25 = 9
#--------------------------------------------------------------------------#
REG40_DRV0 = 23 
REG41_DRV1 = 23
REG41_DRV2 = 23
REG42_DRV3 = 23

IIC_CONFIG_ADDR40 = REG40_DRV0 & (REG41_DRV1 & 0x00000007)<<5
IIC_CONFIG_ADDR41 = REG42_DRV2 <<2 & (REG41_DRV1 & 0x00000018)
IIC_CONFIG_ADDR42 = REG42_DRV3 & 3 << 5  


#**************************************************************************#
#---------------------------配置4个输出端口使能------------------------------#
#**************************************************************************#
#--------------------------------------------------------------------------#
#------------reg230[4:0]
#--------------------------------------------------------------------------#
# REG230_OEBx_ENABLE  = 0
# REG230_OEBx_DISABLE = 1
#--------------------------------------------------------------------------#
#--此寄存器在后续进行顺序控制时需要重新进行设计
IIC_CONFIG_ADDR230 =  REG230_OEBx_ENABLE & REG230_OEBx_ENABLE



#**************************************************************************#
#---------------------------配置4个输出端口未使能状态--------------------------#
#**************************************************************************#
#--------------------------------------------------------------------------#
#-----reg110[7:6],114[7:6],118[7:6],122[7:6]
#--------------------------------------------------------------------------#
# REG110_114_118_122_CLKx_DISSTHIz = 0
# REG110_114_118_122_CLKx_DISSTLOW = 1
# REG110_114_118_122_CLKx_DISSTHIG = 2
# REG110_114_118_122_CLKx_DISSTAWO = 3
#--------------------------------------------------------------------------#
REG110_CLK0_DISSTAWO = 0 << 6
REG114_CLK1_DISSTAWO = 0 << 6
REG118_CLK2_DISSTAWO = 0 << 6
REG122_CLK3_DISSTAWO = 0 << 6


#**************************************************************************#
#---------------------------配置4个时钟端口倒置反转---------------------------#
#**************************************************************************#
#--------------------------------------------------------------------------#
#---reg36[4:3],reg37[4:3],reg38[4:3],reg39[4:3]
# REG36_7_8_9_DRVx_INV_NO = 0<<3    #不反转
# REG36_7_8_9_DRVx_INV_ONLYA = 1<<3 #反转A
# REG36_7_8_9_DRVx_INV_ONLYB = 2<<3 #反转B
# REG36_7_8_9_DRVx_INV_BOTAB = 3<<3 #反转AB
#--------------------------------------------------------------------------#
REG36_DRV0_INV = 0<<3 
REG37_DRV1_INV = 0<<3
REG38_DRV2_INV = 0<<3
REG39_DRV3_INV = 0<<3


#**************************************************************************#
#---------------------------配置4个端口输出时钟选择---------------------------#
#**************************************************************************#
#--------------------------------------------------------------------------#
#---reg31[7:5],reg32[7:5],reg33[7:5],reg34[7:5]
#--------------------------------------------------------------------------#
# REG31_2_3_4_RxDIV_IN_FBCLK = 0
# REG31_2_3_4_RxDIV_IN_REFCLK = 1
# REG31_2_3_4_RxDIV_IN_DIVFBCLK = 2
# REG31_2_3_4_RxDIV_IN_DIVREFCLK = 3
# REG31_2_3_4_RxDIV_IN_XOCLK = 4
# REG31_2_3_4_RxDIV_IN_M0CLK = 5
# REG31_2_3_4_RxDIV_IN_MNCLK = 6
# REG31_2_3_4_RxDIV_IN_NOCLK = 7
#--------------------------------------------------------------------------#
REG31_R0DIV_IN = 5 <<5
REG32_R1DIV_IN = 5 <<5
REG33_R2DIV_IN = 5 <<5
REG34_R3DIV_IN = 5 <<5

#**************************************************************************#
#---------------------------配置4个端口输出时钟选择---------------------------#
#**************************************************************************#
#--------------------------------------------------------------------------#
#---reg31[4:2],reg32[4:2],reg33[4:2],reg34[4:2]
#--------------------------------------------------------------------------#
# REG31_2_3_4_RxDIV1   =  0 
# REG31_2_3_4_RxDIV2   =  1
# REG31_2_3_4_RxDIV4   =  2
# REG31_2_3_4_RxDIV8   =  3
# REG31_2_3_4_RxDIV16  =  4
# REG31_2_3_4_RxDIV32  =  5
#--------------------------------------------------------------------------#
REG31_R0DIV = 0 
REG32_R1DIV = 0 
REG33_R2DIV = 0 
REG34_R3DIV = 0 
#--------------------------------------------------------------------------#


#**************************************************************************#
#---------------------------寄存器地址列表-----------------------------------#
#**************************************************************************#
#--------------------------------------------------------------------------#
#--------------------------------------------------------------------------#
#将寄存器地址和寄存器配置数据分别放到两个列表中，方便后续寄存器的配置使用
#--------------------------------------------------------------------------#
IIC_REG_ADDR_LIST = [28,29,30,31,32,33,34,35,37,38,39,40
					\41,42,49,51,53,54,55,56,57,58,59,60,
					\61,62,64,65,66,67,68,69,70,71,72,73,
					\75,76,77,78,79,80,81,82,83,84,86,87,
					\88,89,90,91,92,93,94,95,97,98,99,100,
					\101,102,103,104,105,106]


#**************************************************************************#
#------------------------寄存器配置数据列表-----------------------------------#
#**************************************************************************#
#--------------------------------------------------------------------------#
IIC_REG_CONFIG_LIST = 
[\IIC_CONFIG_ADDR28,IIC_CONFIG_ADDR29,IIC_CONFIG_ADDR30,
 \IIC_CONFIG_ADDR31,IIC_CONFIG_ADDR32,IIC_CONFIG_ADDR33,
 \IIC_CONFIG_ADDR34,IIC_CONFIG_ADDR35,IIC_CONFIG_ADDR37,
 \IIC_CONFIG_ADDR38,IIC_CONFIG_ADDR39,IIC_CONFIG_ADDR40,
 \IIC_CONFIG_ADDR41,IIC_CONFIG_ADDR42,IIC_CONFIG_ADDR49,
 \IIC_CONFIG_ADDR51,IIC_CONFIG_ADDR53,IIC_CONFIG_ADDR54,
 \IIC_CONFIG_ADDR55,IIC_CONFIG_ADDR56,IIC_CONFIG_ADDR57,
 \IIC_CONFIG_ADDR58,IIC_CONFIG_ADDR59,IIC_CONFIG_ADDR60,
 \IIC_CONFIG_ADDR61,IIC_CONFIG_ADDR62,IIC_CONFIG_ADDR64,
 \IIC_CONFIG_ADDR65,IIC_CONFIG_ADDR66,IIC_CONFIG_ADDR67,
 \IIC_CONFIG_ADDR68,IIC_CONFIG_ADDR69,IIC_CONFIG_ADDR70,
 \IIC_CONFIG_ADDR71,IIC_CONFIG_ADDR72,IIC_CONFIG_ADDR73,
 \IIC_CONFIG_ADDR75,IIC_CONFIG_ADDR76,IIC_CONFIG_ADDR77,
 \IIC_CONFIG_ADDR78,IIC_CONFIG_ADDR79,IIC_CONFIG_ADDR80,
 \IIC_CONFIG_ADDR81,IIC_CONFIG_ADDR82,IIC_CONFIG_ADDR83,
 \IIC_CONFIG_ADDR84,IIC_CONFIG_ADDR86,IIC_CONFIG_ADDR87,
 \IIC_CONFIG_ADDR88,IIC_CONFIG_ADDR89,IIC_CONFIG_ADDR90,
 \IIC_CONFIG_ADDR91,IIC_CONFIG_ADDR92,IIC_CONFIG_ADDR93,
 \IIC_CONFIG_ADDR94,IIC_CONFIG_ADDR95,IIC_CONFIG_ADDR97,
 \IIC_CONFIG_ADDR98,IIC_CONFIG_ADDR99,IIC_CONFIG_ADDR100,
 \IIC_CONFIG_ADDR101,IIC_CONFIG_ADDR102,IIC_CONFIG_ADDR103,
 \IIC_CONFIG_ADDR104,IIC_CONFIG_ADDR105,IIC_CONFIG_ADDR106]






















