Task #603
closed3.0.0.16
Added by paul leroy almost 9 years ago. Updated over 7 years ago.
0%
Description
- 3.0.0.16 *** 02 FEB 2016
_______________________________
_ fsw__ Changeset: 266 (3e5aabdb1fce)
ASM restart updated
Snapshot resynch updated
watchdog fully functional
hk_lfr_last_er_ fields handled
spacewire statistics management updated
VHDL registers status stored in the HK packets
Files
Updated by Veronique bouzid almost 9 years ago
- Assignee set to Veronique bouzid
Logiciel installé dans /opt/LFR/LFR-FSW/3.0.0.16
Mise à jour des scripts d'initialisation (Famille des /opt/VALIDATION_R3/LFRControlPlugin*) en positionnant FSW_VER = "3.0.0.16"
Mise à jour du fichier /opt/VALIDATION_R3/lfrverif/common/param.py
Lancement du script /home/validation/SCRIPT/just_hk_survey.py
Analyse de la premiere TM_LFR_HK
- Version du soft 3.0.0.16
- Watchdog activé SY_LFR_WATCHDOG_ENABLED: ENABLED = 1
- detection erreur absence de timecode HK_LFR_TIMECODE_MISSING=1,
- comptabilisation des erreurs HK_LFR_LE_CNT=1, HK_LFR_ME_CNT=0, HK_LFR_HE_CNT=0,
- description de la derniere erreur détectée
HK_LFR_LAST_ER_RID: LE_LFR_TIMEC = 42129, HK_LFR_LAST_ER_CODE: MISSING = 21, HK_LFR_LAST_ER_TIME=0x800000022f33,
Voici un extrait du fichier utilisé pour valider un premier test:
16:14:10.847433, TM_LFR_HK, CCSDS_VERSION_NUMBER = 0, PACKET_TYPE: TM_PACKET = 0, DATA_FIELD_HEADER_FLAG: WITH_HEADER = 1, PROCESS_ID: RPW_PID_2 = 76, PACKET_CATEGORY: HK_ROUTINE = 4, (PACKET_ID=0xcc4), SEGMENTATION_GROUPING_FLAG: STANDALONE_PACKET = 3, SEQUENCE_CNT=8, (PACKET_SEQUENCE_CONTROL=0xc008), PACKET_LENGTH=129, SPARE_1=0, PUS_VERSION = 1, SPARE_2=0, SERVICE_TYPE: HOUSEKEEPING_AND_DIAGNOSTIC_DATA_REPORTING = 3, SERVICE_SUBTYPE: HK_PARAMETER_REPORT = 25, DESTINATION_ID: GROUND = 0, TIME=0x8000000a48da, PA_LFR_HK_REPORT_SID: LFR_HK_SID = 1, HK_LFR_MODE: STANDBY = 0, HK_LFR_DPU_SPW_ENABLED: ENABLED = 1, HK_LFR_DPU_SPW_LINK_STATE: RUN = 5, SPARE=0x0, HK_LFR_SC_POTENTIEL_FLAG: ON = 1, HK_LFR_MAG_FIELDS_FLAG: OFF = 0, SY_LFR_WATCHDOG_ENABLED: ENABLED = 1, HK_LFR_CALIB_ENABLED: DISABLED = 0, HK_LFR_RESET_CAUSE: POWER_ON = 1, SY_LFR_SW_VERSION_N1=3, SY_LFR_SW_VERSION_N2=0, SY_LFR_SW_VERSION_N3=0, SY_LFR_SW_VERSION_N4=16, SY_LFR_FPGA_VERSION_N1=1, SY_LFR_FPGA_VERSION_N2=1, SY_LFR_FPGA_VERSION_N3=89, HK_LFR_CPU_LOAD=0.392156862745, HK_LFR_CPU_LOAD_MAX=3.13725490196, HK_LFR_CPU_LOAD_AVE=0.0, HK_LFR_Q_SD_FIFO_SIZE_MAX=1, HK_LFR_Q_SD_FIFO_SIZE=50, HK_LFR_Q_RV_FIFO_SIZE_MAX=0, HK_LFR_Q_RV_FIFO_SIZE=10, HK_LFR_Q_P0_FIFO_SIZE_MAX=0, HK_LFR_Q_P0_FIFO_SIZE=10, HK_LFR_Q_P1_FIFO_SIZE_MAX=0, HK_LFR_Q_P1_FIFO_SIZE=10, HK_LFR_Q_P2_FIFO_SIZE_MAX=0, HK_LFR_Q_P2_FIFO_SIZE=5, HK_LFR_UPDATE_INFO_TC_CNT=0, HK_LFR_UPDATE_TIME_TC_CNT=0, HK_LFR_EXE_TC_CNT=0, HK_LFR_REJ_TC_CNT=0, HK_LFR_LAST_EXE_TC_ID=0x0, HK_LFR_LAST_EXE_TC_TYPE=0, HK_LFR_LAST_EXE_TC_SUBTYPE=0, HK_LFR_LAST_EXE_TC_TIME=0x000000000000, HK_LFR_LAST_REJ_TC_ID=0x0, HK_LFR_LAST_REJ_TC_TYPE=0, HK_LFR_LAST_REJ_TC_SUBTYPE=0, HK_LFR_LAST_REJ_TC_TIME=0x000000000000, HK_LFR_LE_CNT=1, HK_LFR_ME_CNT=0, HK_LFR_HE_CNT=0, HK_LFR_LAST_ER_RID: LE_LFR_TIMEC = 42129, HK_LFR_LAST_ER_CODE: MISSING = 21, HK_LFR_LAST_ER_TIME=0x800000022f33, HK_LFR_VHDL_AA=0, HK_LFR_VHDL_SM=0, HK_LFR_VHDL_FFT=0, HK_LFR_VHDL_SR=0, HK_LFR_VHDL_CIC=0, HK_LFR_VHDL_HK=0, HK_LFR_VHDL_IIR=0, HK_LFR_VHDL_CAL=0, HK_LFR_DPU_SPW_PKT_RCV_CNT=0, HK_LFR_DPU_SPW_PKT_SENT_CNT=8, HK_LFR_DPU_SPW_TICK_OUT_CNT=0, HK_LFR_DPU_SPW_LAST_TIMC=0, HK_LFR_LAST_FAIL_ADDR=0x0, HK_LFR_TEMP_SCM=202.49degC, HK_LFR_TEMP_PCB=18.34degC, HK_LFR_TEMP_FPGA=20.53degC, HK_LFR_SC_V_F3=592, HK_LFR_SC_E1_F3=504, HK_LFR_SC_E2_F3=378, SPARE=0x0, SY_LFR_BW=1, SY_LFR_SP0=0, SY_LFR_SP1=0, SY_LFR_R0=0, SY_LFR_R1=0, SY_LFR_R2=0, HK_LFR_DPU_SPW_PARITY=0, HK_LFR_DPU_SPW_DISCONNECT=0, HK_LFR_DPU_SPW_ESCAPE=0, HK_LFR_DPU_SPW_CREDIT=0, HK_LFR_DPU_SPW_WRITE_SYNC=0, HK_LFR_DPU_SPW_RX_AHB=0, HK_LFR_DPU_SPW_TX_AHB=0, HK_LFR_DPU_SPW_EARLY_EOP=0, HK_LFR_DPU_SPW_INVALID_ADDR=0, HK_LFR_DPU_SPW_EEP=0, HK_LFR_DPU_SPW_RX_TOO_BIG=0, HK_LFR_TIMECODE_ERRONEOUS=0, HK_LFR_TIMECODE_MISSING=1, HK_LFR_TIMECODE_INVALID=0, HK_LFR_TIME_TIMECODE_IT=0, HK_LFR_TIME_NOT_SYNCHRO=0, HK_LFR_TIME_TIMECODE_CTR=0, HK_LFR_BUFFER_DPU_TC_FIFO=0, HK_LFR_BUFFER_DPU_TM_FIFO=0, HK_LFR_AHB_CORRECTABLE=0, HK_LFR_AHB_UNCORRECTABLE=0, SPARE=0x0
Je demarre donc la campagne de tests fonctionnels ainsi que les tests pour valider les SWF.
Updated by thomas chust almost 9 years ago
- File plot_delta_SWF_F0_test1.png plot_delta_SWF_F0_test1.png added
- File plot_delta_SWF_F0_test2.png plot_delta_SWF_F0_test2.png added
- File plot_delta_SWF_F1_test1.png plot_delta_SWF_F1_test1.png added
- File plot_delta_SWF_F1_test2.png plot_delta_SWF_F1_test2.png added
- File plot_delta_SWF_F2_test1.png plot_delta_SWF_F2_test1.png added
- File plot_delta_SWF_F2_test2.png plot_delta_SWF_F2_test2.png added
- File tests_time_swf_VHDL-1.1.89_FSW-3.0.0.16_2016_02_03_test1 tests_time_swf_VHDL-1.1.89_FSW-3.0.0.16_2016_02_03_test1 added
- File tests_time_swf_VHDL-1.1.89_FSW-3.0.0.16_2016_02_03_test2 tests_time_swf_VHDL-1.1.89_FSW-3.0.0.16_2016_02_03_test2 added
- Assignee changed from Veronique bouzid to paul leroy
Tests fait sur la synchro:
- test 1 : SBM1 30min + SBM2 30min
- test 2 : NM 60 min
Résultats: pas mal du tout, bravo Paul ! (voir fichiers joints)
Un bémol: est-ce que si le test durait plus longtemps (disons 12-24h) on n'observerait pas un décalage global bien plus grand de qqes dizaines de ms ?
Sur les données SBM on devine en effet une tendance à la baisse des courbes oscillantes; sur les données NM ce n'est pas vraiment visible ?
Updated by bruno katra almost 9 years ago
Pour répondre à Thomas : le plan de validation de Véro et moi inclue des tests longs en nominal que nous allons lancer ce soir. Ça consiste en 15h de NORMAL mode avec les SWF à 300s et le TIMEGEN : on va voir ce que ça donne...
Updated by paul leroy almost 9 years ago
En travaillant sur l'explication de la resynchro, et en faisant des tests en parallèle, j'ai vu un truc bizarre (une correction qui s'applique avec un décalage que je ne comprenais pas). J'ai modifié un peu la resynchro et ça a corrigé cet aléa qui pouvait se produire. A suivre dans la révision 3.0.0.17
Normalement ça ne devrait pas descendre davantage. La correction se fait de façon cyclique, en deux étapes [MEASURE, CORRECTION]. On démarre dans l'état MEASURE. Le paramètre sur lequel on joue est delta_snapshot.
MEASURE à la réception du snapshot (k), on mesure une correction qui sera appliquée sur le snapshot (k+1) et on passe dans l'état CORRECTION
CORRECTION A la réception du snapshot (k+1) on enlève la correction (retour à la valeur nominale de delta_snapshot pour le snapshot k+3), on retourne à l'état MEASURE
En c dans le texte, ça donne ça:
switch (state) { case MEASURE: // ******** PRINTF("MEASURE ===\n"); state = CORRECTION; correction = computeCorrection( timePtr ); PRINTF1("MEASURE === correction = %.2f\n", correction ); applyCorrection( correction ); PRINTF1("MEASURE === delta_snapshot = %d\n", waveform_picker_regs->delta_snapshot); //**** break; case CORRECTION: //************ PRINTF("CORRECTION ===\n"); state = MEASURE; computeCorrection( timePtr ); correction = -correction; PRINTF1("CORRECTION === correction = %.2f\n", correction ); applyCorrection( correction ); PRINTF1("CORRECTION === delta_snapshot = %d\n", waveform_picker_regs->delta_snapshot); //**** break; default: break; }
Updated by paul leroy almost 9 years ago
- File 2016_02_03_15_40_28.png 2016_02_03_15_40_28.png added
Updated by paul leroy almost 9 years ago
- Assignee changed from paul leroy to bruno katra