fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Mon Sep 04 12:55:13 2017 +0000
Revision:
217:15cd8752bb6c
Parent:
129:406995a91322
dd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igor_v 0:8ad47e2b6f00 1 #include "Global.h"
igor_v 0:8ad47e2b6f00 2
igor_v 0:8ad47e2b6f00 3 /******************************************************************************
igor_v 0:8ad47e2b6f00 4 ** Function name: LoadFlashParam
igor_v 0:8ad47e2b6f00 5 **
igor_v 0:8ad47e2b6f00 6 ** Descriptions: Load of the parameters from the flash memory
igor_v 0:8ad47e2b6f00 7 **
igor_v 0:8ad47e2b6f00 8 ** parameters: None
igor_v 0:8ad47e2b6f00 9 ** Returned value: None
igor_v 0:8ad47e2b6f00 10 **
igor_v 0:8ad47e2b6f00 11 ******************************************************************************/
igor_v 0:8ad47e2b6f00 12 void LoadFlashParam(unsigned source)
igor_v 0:8ad47e2b6f00 13 {
Kovalev_D 129:406995a91322 14 /* if (source == FromFLASH)
igor_v 0:8ad47e2b6f00 15 {
igor_v 0:8ad47e2b6f00 16 while (LPC_GPDMACH3->CConfig & (1<<17)); //e. wait while DMA channel3 is busy
igor_v 0:8ad47e2b6f00 17
igor_v 0:8ad47e2b6f00 18 if (LPC_GPDMA->RawIntErrStat & INT_ERR_TC)
igor_v 0:8ad47e2b6f00 19 LPC_GPDMA->IntErrClr |= INT_ERR_TC; //e. an errors found, reset interrupt
igor_v 0:8ad47e2b6f00 20
igor_v 0:8ad47e2b6f00 21 else if (LPC_GPDMA->RawIntTCStat & INT_ERR_TC)
igor_v 0:8ad47e2b6f00 22 { //e. successful loading complete
igor_v 0:8ad47e2b6f00 23 LPC_GPDMA->IntTCClear |= INT_ERR_TC;
igor_v 0:8ad47e2b6f00 24 if (Device_blk.Str.Header_Word == HEADER_WORD_CONST) //e. flash contain valid data
igor_v 0:8ad47e2b6f00 25 return;
igor_v 0:8ad47e2b6f00 26 }
igor_v 0:8ad47e2b6f00 27 else
igor_v 0:8ad47e2b6f00 28 { //e. transfer was not started, start it immediatly
igor_v 0:8ad47e2b6f00 29 FlashDMA_Init();
igor_v 0:8ad47e2b6f00 30 return;
igor_v 0:8ad47e2b6f00 31 }
igor_v 0:8ad47e2b6f00 32 init_DefaultParam(); //e. load parameters by default
igor_v 0:8ad47e2b6f00 33 }
igor_v 0:8ad47e2b6f00 34 else //e. source == ByDefault
igor_v 0:8ad47e2b6f00 35 init_DefaultParam(); //e. load parameters by default
igor_v 0:8ad47e2b6f00 36
Kovalev_D 129:406995a91322 37 blt_in_test = ((uint32_t)FIRMWARE_VER << 8) | (Device_blk.Str.Device_SerialNumber & 0x00FF);*/
igor_v 0:8ad47e2b6f00 38 }
igor_v 0:8ad47e2b6f00 39 /******************************************************************************
igor_v 0:8ad47e2b6f00 40 ** Function name: init_DefaultParam
igor_v 0:8ad47e2b6f00 41 **
igor_v 0:8ad47e2b6f00 42 ** Descriptions: Initialization of variables of computing procedures
igor_v 0:8ad47e2b6f00 43 **
igor_v 0:8ad47e2b6f00 44 ** parameters: None
igor_v 0:8ad47e2b6f00 45 ** Returned value: None
igor_v 0:8ad47e2b6f00 46 **
igor_v 0:8ad47e2b6f00 47 ******************************************************************************/
igor_v 0:8ad47e2b6f00 48 void init_DefaultParam(void)
igor_v 0:8ad47e2b6f00 49 {
Kovalev_D 129:406995a91322 50 /*int i;
igor_v 0:8ad47e2b6f00 51
igor_v 21:bc8c1cec3da6 52 Device_blk.Str.My_Addres = My_Addres_const; //r. 0x00; //e. direct set of the main device address //r. прямое назначение основного адреса у-ва
igor_v 0:8ad47e2b6f00 53
igor_v 21:bc8c1cec3da6 54 Device_blk.Str.HF_ref = HF_REF_CONST; //e. set the reference voltage of the HFO //r. установить опорное напряжение ГВЧ
igor_v 21:bc8c1cec3da6 55 Device_blk.Str.HF_scl = HF_SCL_CONST; //e. set the gain factor of HFO integrator to ~ 0.001 //r. установить к-т передачи интегратора ГВЧ ~ 0.001
igor_v 0:8ad47e2b6f00 56 Device_blk.Str.HF_scl_2 = Device_blk.Str.HF_scl;
igor_v 21:bc8c1cec3da6 57 Device_blk.Str.HF_max = HF_MAX_CONST; //e. maximal value of the regulator //r. максимальное значение регулятора
igor_v 0:8ad47e2b6f00 58
igor_v 21:bc8c1cec3da6 59 Device_blk.Str.HF_min = HF_MIN_CONST; //e. minimal value //r. минимальное значение
igor_v 21:bc8c1cec3da6 60 Device_blk.Str.RI_ref= RI_REF_CONST; //e. set the reference voltage of DS to (=) 1,5 V //r. установить опорное напряжение ДУП = 1,5 В
igor_v 21:bc8c1cec3da6 61 Device_blk.Str.RI_scl= RI_SCL_CONST; //e. set the gain factor of DS integrator to ~ 0.01 //r. установить к-т передачи интегратора ДУП ~ 0.01
igor_v 0:8ad47e2b6f00 62
igor_v 21:bc8c1cec3da6 63 Device_blk.Str.WP_ref = WP_REF_CONST; //e. set the reference signal of CPLC to ~ 0,01 of maximal input value //r. установить опорный сигнал СРП ~ 0,01 входного макс.
igor_v 21:bc8c1cec3da6 64 Device_blk.Str.WP_scl = WP_SCL_CONST; //e. the gain factor of the CPLC regulator ~ 0,001 //r. к-т передачи контура СРП ~ 0,001
igor_v 21:bc8c1cec3da6 65 Device_blk.Str.WP_rup = WP_RUP_CONST; //e. upper value of the heater current //r. верхнее значение тока нагревателя
igor_v 21:bc8c1cec3da6 66 Device_blk.Str.WP_rdw = WP_RDW_CONST; //e. lower value of the heater current //r. нижнее значение тока нагревателя
igor_v 21:bc8c1cec3da6 67 Device_blk.Str.WP_mdy = WP_MDY_CONST; //e. maximal delay of the reset //r. максимальная задержка обнуления
igor_v 0:8ad47e2b6f00 68
igor_v 21:bc8c1cec3da6 69 Device_blk.Str.VB_phs = VB_PHS_CONST; //e. the phase delay parameter of the PLL //r. параметр Phase_зад.
igor_v 21:bc8c1cec3da6 70 Device_blk.Str.VB_scl = VB_SCL_CONST; //e. set the gain factor of the PLL of the dither drive //r. установить коэффициент передачи СРЧ вибропривода
igor_v 21:bc8c1cec3da6 71 Device_blk.Str.VB_Fdf_Lo = VB_FDF_LO_CONST; //e. set the F_del parameter //r. установить параметр Fзад
igor_v 21:bc8c1cec3da6 72 Device_blk.Str.VB_Fdf_Hi = VB_FDF_HI_CONST; //e. set the F_del parameter (120000) //r. установить параметр Fзад (120000)
igor_v 21:bc8c1cec3da6 73 Device_blk.Str.VB_Fsc = VB_FSC_CONST; //e. set the ScaleTau parameter //r. установить параметр ScaleTau
igor_v 21:bc8c1cec3da6 74 Device_blk.Str.VB_Tmin = VB_TMIN_CONST; //e. set minimal value of the Tau regulator //r. минимальное значение регулятора Tau
igor_v 21:bc8c1cec3da6 75 Device_blk.Str.VB_Tmax = VB_TMAX_CONST; //e. set maximal value of the Tau reulator //r. максимальное значение регулятора Tau
igor_v 0:8ad47e2b6f00 76
igor_v 21:bc8c1cec3da6 77 Device_blk.Str.VB_N = T_VIB_START; //e. ... dither drive //r. вибропривода
igor_v 21:bc8c1cec3da6 78 Device_blk.Str.VB_Nmin = T_VIB_START - T_VIB_DELTA; //e. minimal value of the N regulator //r. минимальное значение регулятора N
igor_v 21:bc8c1cec3da6 79 Device_blk.Str.VB_Nmax = T_VIB_START + T_VIB_DELTA; //e. maximal value of the N regulator //r. максимальное значение регулятора N
igor_v 21:bc8c1cec3da6 80 Device_blk.Str.VB_tau = L_VIB_START; //e. similarly load th pulse width of the dither drive //r. аналогично загрузить длительность импульсов вибропривода
igor_v 0:8ad47e2b6f00 81
igor_v 21:bc8c1cec3da6 82 Device_blk.Str.VBN_Tzd = VBN_TZD_CONST; //e. adjusted period of {noise}[??] //r. заданный период ошумления
igor_v 21:bc8c1cec3da6 83 Device_blk.Str.VBN_Ran = VBN_RAN_CONST; //e. the range of the random component //r. диапазон случайной составляющей
igor_v 21:bc8c1cec3da6 84 Device_blk.Str.VBN_k = VBN_K_CONST; //e. ajusted of the {noise}[??] constant //r. заданная константа ошумления
igor_v 0:8ad47e2b6f00 85
igor_v 21:bc8c1cec3da6 86 Device_blk.Str.PI_a0 = PI_A0_CONST; //e. a0 coefficient of the temperature correction //r. коэффициент a0 температурной коррекции
igor_v 21:bc8c1cec3da6 87 Device_blk.Str.PI_a1 = PI_A1_CONST; //e. a1 coefficient of the temperature correction //r. коэффициент a1 температурной коррекции
igor_v 21:bc8c1cec3da6 88 Device_blk.Str.PI_a2 = PI_A2_CONST; //e. a2 coefficient of the temperature correction //r. коэффициент a2 температурной коррекции
igor_v 21:bc8c1cec3da6 89 Device_blk.Str.PI_a3 = PI_A3_CONST; //e. a3 coefficient of the temperature correction //r. коэффициент a3 температурной коррекции
igor_v 21:bc8c1cec3da6 90 Device_blk.Str.PI_a4 = PI_A4_CONST; //e. a4 coefficient of the temperature correction //r. коэффициент a4 температурной коррекции
igor_v 21:bc8c1cec3da6 91 Device_blk.Str.PI_a5 = PI_A5_CONST; //e. a5 coefficient of the temperature correction //r. коэффициент a5 температурной коррекции
igor_v 21:bc8c1cec3da6 92 Device_blk.Str.PI_a6 = PI_A6_CONST; //e. a6 coefficient of the temperature correction //r. коэффициент a6 температурной коррекции
igor_v 0:8ad47e2b6f00 93
igor_v 21:bc8c1cec3da6 94 Device_blk.Str.PI_b1 = PI_B1_CONST; //e. b1 coefficient of the temperature correction //r. коэффициент b1 температурной коррекции
igor_v 21:bc8c1cec3da6 95 Device_blk.Str.PI_b2 = PI_B2_CONST; //e. b2 coefficient of the temperature correction //r. коэффициент b2 температурной коррекции
igor_v 21:bc8c1cec3da6 96 Device_blk.Str.PI_b3 = PI_B3_CONST; //e. b3 coefficient of the temperature correction //r. коэффициент b3 температурной коррекции
igor_v 21:bc8c1cec3da6 97 Device_blk.Str.PI_b4 = PI_B4_CONST; //e. b4 coefficient of the temperature correction //r. коэффициент b4 температурной коррекции
igor_v 21:bc8c1cec3da6 98 Device_blk.Str.PI_b5 = PI_B5_CONST; //e. b5 coefficient of the temperature correction //r. коэффициент b5 температурной коррекции
igor_v 21:bc8c1cec3da6 99 Device_blk.Str.PI_b6 = PI_B6_CONST; //e. b6 coefficient of the temperature correction //r. коэффициент b6 температурной коррекции
igor_v 0:8ad47e2b6f00 100
igor_v 21:bc8c1cec3da6 101 Device_blk.Str.PI_Fsc = PI_FSC_CONST; //e. the S_ds scale parameter //r. масштабный коэффициент Sдуп
igor_v 21:bc8c1cec3da6 102 Device_blk.Str.PI_Fb0 = PI_FB0_CONST; //e. the B_ds zero shift of the DS //r. смещение нуля ДУПа Bдуп
igor_v 21:bc8c1cec3da6 103 Device_blk.Str.PI_scl = PI_SCL_CONST; //e. the Scale scale coefficient of the gyro //r. масштабный коэфф. гироскопа Scale
igor_v 21:bc8c1cec3da6 104 Device_blk.Str.PI_bia = PI_BIA_CONST; //e. the Bias zero shift of the gyro //r. смещение нуля гироскопа Bias
igor_v 0:8ad47e2b6f00 105
igor_v 0:8ad47e2b6f00 106 for (i = 0; i <6 ; i++)
igor_v 0:8ad47e2b6f00 107 {
igor_v 0:8ad47e2b6f00 108 Device_blk.Str.Tmp_scal[i] = TMP_SCALE;
igor_v 0:8ad47e2b6f00 109 Device_blk.Str.Tmp_bias[i] = TMP_BIAS;
igor_v 0:8ad47e2b6f00 110 }
igor_v 0:8ad47e2b6f00 111 Device_blk.Str.WP_transition_step = WP_TRANS_STEP;
igor_v 21:bc8c1cec3da6 112 Device_blk.Str.WP_reset = WP_RESET_CONST; //e. default initial position = 0 //r. исходное положение по умолчанию = 0
igor_v 0:8ad47e2b6f00 113 Device_blk.Str.WP_reset2 = WP_RESET2_CONST;
igor_v 21:bc8c1cec3da6 114 Device_blk.Str.Gain_Ph_A = G_PHOTO_STRA; //e. load the initial value of the gain factor of photodetectors channels//r. загрузить начальное значение к-та усиления каналов фотоприемников
igor_v 0:8ad47e2b6f00 115 Device_blk.Str.Gain_Ph_B = G_PHOTO_STRB;
igor_v 0:8ad47e2b6f00 116
igor_v 21:bc8c1cec3da6 117 Device_blk.Str.Device_SerialNumber = DEVICE_SN; //e. serial number of the device is by default written down in the register of self-testing //r. серийный номер прибора по умолчанию записываем в регистр самотестирования
Kovalev_D 129:406995a91322 118 */
igor_v 0:8ad47e2b6f00 119 } // init_DefaultParam
igor_v 0:8ad47e2b6f00 120 /******************************************************************************
igor_v 0:8ad47e2b6f00 121 ** Function name: FlashDMA_Init
igor_v 0:8ad47e2b6f00 122 **
igor_v 0:8ad47e2b6f00 123 ** Descriptions: Initialisation of DMA channel for flash reading
igor_v 0:8ad47e2b6f00 124 **
igor_v 0:8ad47e2b6f00 125 ** parameters: None
igor_v 0:8ad47e2b6f00 126 ** Returned value: None
igor_v 0:8ad47e2b6f00 127 **
igor_v 0:8ad47e2b6f00 128 ******************************************************************************/
igor_v 0:8ad47e2b6f00 129 void FlashDMA_Init()
Kovalev_D 129:406995a91322 130 {/*
igor_v 0:8ad47e2b6f00 131 LPC_GPDMACH3->CConfig &= ~DMAChannelEn;
igor_v 0:8ad47e2b6f00 132
igor_v 0:8ad47e2b6f00 133 LPC_GPDMA->IntTCClear = DMA3_IntTCClear;
igor_v 0:8ad47e2b6f00 134 LPC_GPDMA->IntErrClr = DMA3_IntTCClear;
igor_v 0:8ad47e2b6f00 135
Kovalev_D 129:406995a91322 136
igor_v 0:8ad47e2b6f00 137 LPC_GPDMACH3->CSrcAddr = 0x40000; //e. address of device parameter block in flash memory (22 sec)
igor_v 0:8ad47e2b6f00 138 LPC_GPDMACH3->CDestAddr = (uint32_t)&(Device_blk.Array);//e. address of device parameter block in RAM
igor_v 0:8ad47e2b6f00 139
igor_v 0:8ad47e2b6f00 140 LPC_GPDMACH3->CControl = ((sizeof(Device_blk.Array))>>2)|SrcBSize_1 |DstBSize_1
igor_v 0:8ad47e2b6f00 141 |SrcWidth_32b |DstWidth_32b |SrcInc |DstInc |TCIntEnabl;
igor_v 0:8ad47e2b6f00 142
igor_v 0:8ad47e2b6f00 143 LPC_GPDMACH3->CConfig = MaskTCInt |MaskErrInt|DMA_MEMORY |DMA_MEMORY |(M2M << 11)| DMAChannelEn;
igor_v 0:8ad47e2b6f00 144
Kovalev_D 129:406995a91322 145 return;*/
igor_v 0:8ad47e2b6f00 146 }