瀏覽代碼

MBIC Shutdown Index 추가 UL DL 각각 계산식 추가 , 부팅시 UL DL 저장 에러 수정 ,data Req 시 Init 하도록 수정

PYJ 5 年之前
父節點
當前提交
69448f78a1
共有 7 個文件被更改,包括 360 次插入165 次删除
  1. 11 1
      Bluecell_Inc/Bluecell_operate.h
  2. 230 128
      Bluecell_Src/Bluecell_operate.c
  3. 43 8
      Bluecell_Src/PE43711.c
  4. 2 2
      Bluecell_Src/eeprom.c
  5. 3 3
      Bluecell_Src/uart.c
  6. 1 1
      STM32F103ZET_JDASMBIC.elf.launch
  7. 70 22
      Src/main.c

+ 11 - 1
Bluecell_Inc/Bluecell_operate.h

@@ -482,7 +482,17 @@ ULO_Shutdown_Alarm4,
482
 
482
 
483
 #define MBIC_CPUVERSION 0x000000
483
 #define MBIC_CPUVERSION 0x000000
484
 
484
 
485
-
485
+typedef enum{
486
+    MBIC_Shutdown_DL1 = 0,
487
+    MBIC_Shutdown_DL2,
488
+    MBIC_Shutdown_DL3,
489
+    MBIC_Shutdown_DL4,
490
+    MBIC_Shutdown_UL1,
491
+    MBIC_Shutdown_UL2,
492
+    MBIC_Shutdown_UL3,
493
+    MBIC_Shutdown_UL4,
494
+    MBIC_Shutdown_MaxIndex,        
495
+};
486
 enum DATATYPE
496
 enum DATATYPE
487
 {
497
 {
488
     BLUECELL_SOFTWARERESET = 0,
498
     BLUECELL_SOFTWARERESET = 0,

+ 230 - 128
Bluecell_Src/Bluecell_operate.c

@@ -11,6 +11,8 @@
11
 /***************************************************************************************/
11
 /***************************************************************************************/
12
 /*                                  Extern Function                                    */
12
 /*                                  Extern Function                                    */
13
 /***************************************************************************************/
13
 /***************************************************************************************/
14
+extern uint32_t ShutdownCnt_Get(uint8_t index);
15
+extern void ShutdownCnt_Set(uint8_t index,uint8_t val);
14
 
16
 
15
 extern void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
17
 extern void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
16
 extern void Uart1_Data_Send(uint8_t* data,uint16_t size);
18
 extern void Uart1_Data_Send(uint8_t* data,uint16_t size);
@@ -61,8 +63,6 @@ double PE43711_Double(uint8_t high_bit,uint8_t low_bit);
61
 void Booting_LED_Check(void);
63
 void Booting_LED_Check(void);
62
 double Bluecell_TestPro(double value );
64
 double Bluecell_TestPro(double value );
63
 double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size);
65
 double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size);
64
-void MBIC_Table_Load_TempValueConvert(uint8_t* data);
65
-void MBIC_Table_Save_TempValueConvert(uint8_t* data);
66
 
66
 
67
 
67
 
68
 
68
 
@@ -75,9 +75,9 @@ uint8_t DataWrite[sizeof(BLUESTATUS_st)] = {0,};
75
 uint8_t Txdata[512];
75
 uint8_t Txdata[512];
76
 int8_t AutoControl_Save[sizeof(ALC_dBm_t)];
76
 int8_t AutoControl_Save[sizeof(ALC_dBm_t)];
77
 uint16_t ADC1Ret[4];
77
 uint16_t ADC1Ret[4];
78
+bool Initialize = false;
78
 
79
 
79
 uint16_t ADC3Ret[5];
80
 uint16_t ADC3Ret[5];
80
-uint8_t LED_TestCnt = 0;
81
 
81
 
82
 ATT_TABLE_st Att_DL1;
82
 ATT_TABLE_st Att_DL1;
83
 ATT_TABLE_st Att_DL2;
83
 ATT_TABLE_st Att_DL2;
@@ -112,7 +112,6 @@ BLUESTATUS_st bluecell_Currdatastatus;
112
 BLUESTATUS_st bluecell_Prevdatastatus;
112
 BLUESTATUS_st bluecell_Prevdatastatus;
113
 
113
 
114
 
114
 
115
-
116
 #if 0 // PYJ.2020.05.21_BEGIN -- 
115
 #if 0 // PYJ.2020.05.21_BEGIN -- 
117
 int8_t AGC_ATTEN_ref[16] = {
116
 int8_t AGC_ATTEN_ref[16] = {
118
     15  ,
117
     15  ,
@@ -183,6 +182,7 @@ void MBIC_Table_Save_TempValueConvert(uint8_t* data){
183
 
182
 
184
 }
183
 }
185
 
184
 
185
+uint8_t LED_TestCnt = 0;
186
 void Boot_LED_Toggle(void){
186
 void Boot_LED_Toggle(void){
187
   if(bluecell_Currdatastatus.LED_TEST == false){
187
   if(bluecell_Currdatastatus.LED_TEST == false){
188
       if(LedTimerCnt > 1000){
188
       if(LedTimerCnt > 1000){
@@ -235,20 +235,28 @@ uint8_t PE43711_Calc(uint8_t* Table,uint8_t high_bit,uint8_t low_bit,uint8_t off
235
     uint8_t Result = 0;
235
     uint8_t Result = 0;
236
     ret = PE43711_Double(high_bit,low_bit); // Hidden Atten Calc
236
     ret = PE43711_Double(high_bit,low_bit); // Hidden Atten Calc
237
     ret += PE43711_Double(offset_h,offset_l);//Plus User Atten Calc
237
     ret += PE43711_Double(offset_h,offset_l);//Plus User Atten Calc
238
-    ret += PE43711_Double(0,HIDDENATTEN);//Plus Default Atten 5
238
+//    ret += PE43711_Double(0,HIDDENATTEN);//Plus Default Atten 5
239
 //    printf("ret1 : %f \r\n",ret); // 2
239
 //    printf("ret1 : %f \r\n",ret); // 2
240
     ret = TableAtteGuarantee(Table,ret);//Table Guarantee
240
     ret = TableAtteGuarantee(Table,ret);//Table Guarantee
241
 //    printf("ret2 : %f \r\n",ret);
241
 //    printf("ret2 : %f \r\n",ret);
242
     Result = PE43711_DataToHexConvert(ret);
242
     Result = PE43711_DataToHexConvert(ret);
243
     return Result;
243
     return Result;
244
 }
244
 }
245
-uint8_t MBIC_PE43711_Calc(uint8_t* Table,int16_t MBIC_Val,int16_t MBIC_UserVal){
245
+uint8_t MBIC_DL_PE43711_Calc(uint8_t* Table,int16_t MBIC_Val,int16_t MBIC_UserVal){
246
 
246
 
247
     double ret = 0;
247
     double ret = 0;
248
+    double ret2 = 0;
248
     uint8_t Result = 0;
249
     uint8_t Result = 0;
249
     //ret = PE43711_Double(MBIC_Val); // Hidden Atten Calc
250
     //ret = PE43711_Double(MBIC_Val); // Hidden Atten Calc
250
-    ret = (MBIC_Val /10 )* -1;
251
-    ret += (MBIC_UserVal/10)* -1;//Plus User Atten Calc
251
+//    printf("MBIC_UserVal : %x \r\n",MBIC_UserVal); // 2
252
+    ret = MBIC_Val;
253
+    ret /= 10;
254
+    ret *= -1;
255
+    ret2 += MBIC_UserVal;
256
+    ret2 /= 10;
257
+    ret2 *= -1;
258
+    ret += ret2;
259
+    
252
     ret += HIDDENATTEN/10;//PE43711_Double(0,HIDDENATTEN);//Plus Default Atten 5
260
     ret += HIDDENATTEN/10;//PE43711_Double(0,HIDDENATTEN);//Plus Default Atten 5
253
 //    printf("ret1 : %f \r\n",ret); // 2
261
 //    printf("ret1 : %f \r\n",ret); // 2
254
     ret = TableAtteGuarantee(Table,ret);//Table Guarantee
262
     ret = TableAtteGuarantee(Table,ret);//Table Guarantee
@@ -256,6 +264,26 @@ uint8_t MBIC_PE43711_Calc(uint8_t* Table,int16_t MBIC_Val,int16_t MBIC_UserVal){
256
     Result = PE43711_DataToHexConvert(ret);
264
     Result = PE43711_DataToHexConvert(ret);
257
     return Result;
265
     return Result;
258
 }
266
 }
267
+uint8_t MBIC_UL_PE43711_Calc(uint8_t* Table,int16_t MBIC_Val,int16_t MBIC_UserVal){
268
+
269
+    double ret = 0;
270
+    double ret2 = 0;
271
+    uint8_t Result = 0;
272
+    //ret = PE43711_Double(MBIC_Val); // Hidden Atten Calc
273
+//    printf("MBIC_UserVal : %x \r\n",MBIC_UserVal); // 2
274
+    ret = MBIC_Val;
275
+    ret /= 10;
276
+    ret *= -1;
277
+    ret2 += MBIC_UserVal;
278
+    ret2 /= 10;
279
+    ret2 *= -1;
280
+    ret += ret2;
281
+//    printf("ret1 : %f \r\n",ret); // 2
282
+    ret = TableAtteGuarantee(Table,ret);//Table Guarantee
283
+//    printf("ret2 : %f \r\n",ret);
284
+    Result = PE43711_DataToHexConvert(ret);
285
+    return Result;
286
+}
259
 
287
 
260
 uint8_t PE43711_Calc_NoTable(uint8_t high_bit,uint8_t low_bit){
288
 uint8_t PE43711_Calc_NoTable(uint8_t high_bit,uint8_t low_bit){
261
 
289
 
@@ -348,7 +376,7 @@ void Bluecell_AttenInitialize(){
348
 
376
 
349
     MBIC_Val = bluecell_Currdatastatus.ATT_DL1_H << 8 | bluecell_Currdatastatus.ATT_DL1_L;
377
     MBIC_Val = bluecell_Currdatastatus.ATT_DL1_H << 8 | bluecell_Currdatastatus.ATT_DL1_L;
350
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_DL1_H << 8 | bluecell_Currdatastatus.bluecell_User_DL1_L;
378
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_DL1_H << 8 | bluecell_Currdatastatus.bluecell_User_DL1_L;
351
-    val = MBIC_PE43711_Calc(&Att_DL1.Table_0_0_dBm, // Table Offset
379
+    val = MBIC_DL_PE43711_Calc(&Att_DL1.Table_0_0_dBm, // Table Offset
352
                         MBIC_Val,
380
                         MBIC_Val,
353
                        MBIC_UserVal);// User Atten Low Bit
381
                        MBIC_UserVal);// User Atten Low Bit
354
 
382
 
@@ -360,7 +388,7 @@ void Bluecell_AttenInitialize(){
360
     bluecell_Prevdatastatus.bluecell_User_DL2_L = bluecell_Currdatastatus.bluecell_User_DL2_L;
388
     bluecell_Prevdatastatus.bluecell_User_DL2_L = bluecell_Currdatastatus.bluecell_User_DL2_L;
361
     MBIC_Val = bluecell_Currdatastatus.ATT_DL2_H << 8 | bluecell_Currdatastatus.ATT_DL2_L;
389
     MBIC_Val = bluecell_Currdatastatus.ATT_DL2_H << 8 | bluecell_Currdatastatus.ATT_DL2_L;
362
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_DL2_H << 8 | bluecell_Currdatastatus.bluecell_User_DL2_L;
390
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_DL2_H << 8 | bluecell_Currdatastatus.bluecell_User_DL2_L;
363
-    val = MBIC_PE43711_Calc(&Att_DL2.Table_0_0_dBm, // Table Offset
391
+    val = MBIC_DL_PE43711_Calc(&Att_DL2.Table_0_0_dBm, // Table Offset
364
                         MBIC_Val,
392
                         MBIC_Val,
365
                        MBIC_UserVal);// User Atten Low Bit
393
                        MBIC_UserVal);// User Atten Low Bit
366
 
394
 
@@ -370,9 +398,9 @@ void Bluecell_AttenInitialize(){
370
     bluecell_Prevdatastatus.ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
398
     bluecell_Prevdatastatus.ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
371
     bluecell_Prevdatastatus.bluecell_User_DL3_H = bluecell_Currdatastatus.bluecell_User_DL3_H;
399
     bluecell_Prevdatastatus.bluecell_User_DL3_H = bluecell_Currdatastatus.bluecell_User_DL3_H;
372
     bluecell_Prevdatastatus.bluecell_User_DL3_L = bluecell_Currdatastatus.bluecell_User_DL3_L;
400
     bluecell_Prevdatastatus.bluecell_User_DL3_L = bluecell_Currdatastatus.bluecell_User_DL3_L;
373
-    MBIC_Val = bluecell_Currdatastatus.ATT_DL2_H << 8 | bluecell_Currdatastatus.ATT_DL2_L;
374
-    MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_DL2_H << 8 | bluecell_Currdatastatus.bluecell_User_DL2_L;
375
-    val = MBIC_PE43711_Calc(&Att_DL2.Table_0_0_dBm, // Table Offset
401
+    MBIC_Val = bluecell_Currdatastatus.ATT_DL3_L << 8 | bluecell_Currdatastatus.ATT_DL3_L;
402
+    MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_DL3_H << 8 | bluecell_Currdatastatus.bluecell_User_DL3_L;
403
+    val = MBIC_DL_PE43711_Calc(&Att_DL3.Table_0_0_dBm, // Table Offset
376
                         MBIC_Val,
404
                         MBIC_Val,
377
                        MBIC_UserVal);// User Atten Low Bit
405
                        MBIC_UserVal);// User Atten Low Bit
378
 
406
 
@@ -382,9 +410,9 @@ void Bluecell_AttenInitialize(){
382
     bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
410
     bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
383
     bluecell_Prevdatastatus.bluecell_User_DL4_H = bluecell_Currdatastatus.bluecell_User_DL4_H;
411
     bluecell_Prevdatastatus.bluecell_User_DL4_H = bluecell_Currdatastatus.bluecell_User_DL4_H;
384
     bluecell_Prevdatastatus.bluecell_User_DL4_L = bluecell_Currdatastatus.bluecell_User_DL4_L;
412
     bluecell_Prevdatastatus.bluecell_User_DL4_L = bluecell_Currdatastatus.bluecell_User_DL4_L;
385
-    MBIC_Val = bluecell_Currdatastatus.ATT_DL3_H << 8 | bluecell_Currdatastatus.ATT_DL3_L;
386
-    MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_DL3_H << 8 | bluecell_Currdatastatus.bluecell_User_DL3_L;
387
-    val = MBIC_PE43711_Calc(&Att_DL3.Table_0_0_dBm, // Table Offset
413
+    MBIC_Val = bluecell_Currdatastatus.ATT_DL4_H << 8 | bluecell_Currdatastatus.ATT_DL4_H;
414
+    MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_DL4_H << 8 | bluecell_Currdatastatus.bluecell_User_DL4_L;
415
+    val = MBIC_DL_PE43711_Calc(&Att_DL4.Table_0_0_dBm, // Table Offset
388
                         MBIC_Val,
416
                         MBIC_Val,
389
                        MBIC_UserVal);// User Atten Low Bit
417
                        MBIC_UserVal);// User Atten Low Bit
390
 
418
 
@@ -398,7 +426,7 @@ void Bluecell_AttenInitialize(){
398
     bluecell_Prevdatastatus.bluecell_User_UL1_L = bluecell_Currdatastatus.bluecell_User_UL1_L;
426
     bluecell_Prevdatastatus.bluecell_User_UL1_L = bluecell_Currdatastatus.bluecell_User_UL1_L;
399
     MBIC_Val = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
427
     MBIC_Val = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
400
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_UL1_H << 8 | bluecell_Currdatastatus.bluecell_User_UL1_L;
428
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_UL1_H << 8 | bluecell_Currdatastatus.bluecell_User_UL1_L;
401
-    val = MBIC_PE43711_Calc(&Att_UL1.Table_0_0_dBm, // Table Offset
429
+    val = MBIC_UL_PE43711_Calc(&Att_UL1.Table_0_0_dBm, // Table Offset
402
                         MBIC_Val,
430
                         MBIC_Val,
403
                        MBIC_UserVal);// User Atten Low Bit
431
                        MBIC_UserVal);// User Atten Low Bit
404
 
432
 
@@ -411,7 +439,7 @@ void Bluecell_AttenInitialize(){
411
     bluecell_Prevdatastatus.bluecell_User_UL2_L = bluecell_Currdatastatus.bluecell_User_UL2_L;
439
     bluecell_Prevdatastatus.bluecell_User_UL2_L = bluecell_Currdatastatus.bluecell_User_UL2_L;
412
     MBIC_Val = bluecell_Currdatastatus.ATT_UL2_H << 8 | bluecell_Currdatastatus.ATT_UL2_L;
440
     MBIC_Val = bluecell_Currdatastatus.ATT_UL2_H << 8 | bluecell_Currdatastatus.ATT_UL2_L;
413
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_UL2_H << 8 | bluecell_Currdatastatus.bluecell_User_UL2_L;
441
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_UL2_H << 8 | bluecell_Currdatastatus.bluecell_User_UL2_L;
414
-    val = MBIC_PE43711_Calc(&Att_UL1.Table_0_0_dBm, // Table Offset
442
+    val = MBIC_UL_PE43711_Calc(&Att_UL1.Table_0_0_dBm, // Table Offset
415
                         MBIC_Val,
443
                         MBIC_Val,
416
                        MBIC_UserVal);// User Atten Low Bit
444
                        MBIC_UserVal);// User Atten Low Bit
417
 
445
 
@@ -425,7 +453,7 @@ void Bluecell_AttenInitialize(){
425
     bluecell_Prevdatastatus.bluecell_User_UL3_L = bluecell_Currdatastatus.bluecell_User_UL3_L;
453
     bluecell_Prevdatastatus.bluecell_User_UL3_L = bluecell_Currdatastatus.bluecell_User_UL3_L;
426
     MBIC_Val = bluecell_Currdatastatus.ATT_UL3_H << 8 | bluecell_Currdatastatus.ATT_UL3_L;
454
     MBIC_Val = bluecell_Currdatastatus.ATT_UL3_H << 8 | bluecell_Currdatastatus.ATT_UL3_L;
427
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_UL3_H << 8 | bluecell_Currdatastatus.bluecell_User_UL3_L;
455
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_UL3_H << 8 | bluecell_Currdatastatus.bluecell_User_UL3_L;
428
-    val = MBIC_PE43711_Calc(&Att_UL3.Table_0_0_dBm, // Table Offset
456
+    val = MBIC_UL_PE43711_Calc(&Att_UL3.Table_0_0_dBm, // Table Offset
429
                         MBIC_Val,
457
                         MBIC_Val,
430
                        MBIC_UserVal);// User Atten Low Bit
458
                        MBIC_UserVal);// User Atten Low Bit
431
 
459
 
@@ -433,13 +461,13 @@ void Bluecell_AttenInitialize(){
433
     PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
461
     PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
434
 
462
 
435
 
463
 
436
-                bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
464
+    bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
437
     bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
465
     bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
438
     bluecell_Prevdatastatus.bluecell_User_UL4_H = bluecell_Currdatastatus.bluecell_User_UL4_H;
466
     bluecell_Prevdatastatus.bluecell_User_UL4_H = bluecell_Currdatastatus.bluecell_User_UL4_H;
439
     bluecell_Prevdatastatus.bluecell_User_UL4_L = bluecell_Currdatastatus.bluecell_User_UL4_L;
467
     bluecell_Prevdatastatus.bluecell_User_UL4_L = bluecell_Currdatastatus.bluecell_User_UL4_L;
440
     MBIC_Val = bluecell_Currdatastatus.ATT_UL4_H << 8 | bluecell_Currdatastatus.ATT_UL4_L;
468
     MBIC_Val = bluecell_Currdatastatus.ATT_UL4_H << 8 | bluecell_Currdatastatus.ATT_UL4_L;
441
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_UL4_H << 8 | bluecell_Currdatastatus.bluecell_User_UL4_L;
469
     MBIC_UserVal = bluecell_Currdatastatus.bluecell_User_UL4_H << 8 | bluecell_Currdatastatus.bluecell_User_UL4_L;
442
-    val = MBIC_PE43711_Calc(&Att_UL4.Table_0_0_dBm, // Table Offset
470
+    val = MBIC_UL_PE43711_Calc(&Att_UL4.Table_0_0_dBm, // Table Offset
443
                         MBIC_Val,
471
                         MBIC_Val,
444
                        MBIC_UserVal);// User Atten Low Bit
472
                        MBIC_UserVal);// User Atten Low Bit
445
 
473
 
@@ -449,8 +477,8 @@ void Bluecell_AttenInitialize(){
449
 }
477
 }
450
 void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
478
 void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
451
      uint8_t val = 0;
479
      uint8_t val = 0;
452
-     int16_t MBIC_Val = 0;
453
-     int16_t MBIC_UserVal = 0;
480
+     uint16_t MBIC_Val = 0;
481
+     uint16_t MBIC_UserVal = 0;
454
 
482
 
455
     if((Curr.ATT_DL1_H != Prev.ATT_DL1_H
483
     if((Curr.ATT_DL1_H != Prev.ATT_DL1_H
456
      ||Curr.ATT_DL1_L != Prev.ATT_DL1_L)
484
      ||Curr.ATT_DL1_L != Prev.ATT_DL1_L)
@@ -461,15 +489,14 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
461
             bluecell_Prevdatastatus.ATT_DL1_L = bluecell_Currdatastatus.ATT_DL1_L;
489
             bluecell_Prevdatastatus.ATT_DL1_L = bluecell_Currdatastatus.ATT_DL1_L;
462
             bluecell_Prevdatastatus.bluecell_User_DL1_H = bluecell_Currdatastatus.bluecell_User_DL1_H;
490
             bluecell_Prevdatastatus.bluecell_User_DL1_H = bluecell_Currdatastatus.bluecell_User_DL1_H;
463
             bluecell_Prevdatastatus.bluecell_User_DL1_L = bluecell_Currdatastatus.bluecell_User_DL1_L;
491
             bluecell_Prevdatastatus.bluecell_User_DL1_L = bluecell_Currdatastatus.bluecell_User_DL1_L;
464
-            MBIC_Val = Curr.ATT_DL1_H << 8 | Curr.ATT_DL1_L;
492
+            MBIC_Val =Curr.ATT_DL1_H << 8 | Curr.ATT_DL1_L;
465
             MBIC_UserVal = Curr.bluecell_User_DL1_H << 8 | Curr.bluecell_User_DL1_L;
493
             MBIC_UserVal = Curr.bluecell_User_DL1_H << 8 | Curr.bluecell_User_DL1_L;
466
-            val = MBIC_PE43711_Calc(&Att_DL1.Table_0_0_dBm, // Table Offset
494
+            val = MBIC_DL_PE43711_Calc(&Att_DL1.Table_0_0_dBm, // Table Offset
467
                                 MBIC_Val,
495
                                 MBIC_Val,
468
                                MBIC_UserVal);// User Atten Low Bit
496
                                MBIC_UserVal);// User Atten Low Bit
469
             printf("%s : %d \r\n",__func__,__LINE__);   
497
             printf("%s : %d \r\n",__func__,__LINE__);   
470
             printf("%d val = %x \r\n",__LINE__,val);
498
             printf("%d val = %x \r\n",__LINE__,val);
471
             PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
499
             PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
472
-     
473
     }
500
     }
474
     if((Curr.ATT_DL2_H != Prev.ATT_DL2_H)
501
     if((Curr.ATT_DL2_H != Prev.ATT_DL2_H)
475
      ||(Curr.ATT_DL2_L != Prev.ATT_DL2_L)
502
      ||(Curr.ATT_DL2_L != Prev.ATT_DL2_L)
@@ -481,7 +508,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
481
             bluecell_Prevdatastatus.bluecell_User_DL2_L = bluecell_Currdatastatus.bluecell_User_DL2_L;
508
             bluecell_Prevdatastatus.bluecell_User_DL2_L = bluecell_Currdatastatus.bluecell_User_DL2_L;
482
             MBIC_Val = Curr.ATT_DL2_H << 8 | Curr.ATT_DL2_L;
509
             MBIC_Val = Curr.ATT_DL2_H << 8 | Curr.ATT_DL2_L;
483
             MBIC_UserVal = Curr.bluecell_User_DL2_H << 8 | Curr.bluecell_User_DL2_L;
510
             MBIC_UserVal = Curr.bluecell_User_DL2_H << 8 | Curr.bluecell_User_DL2_L;
484
-            val = MBIC_PE43711_Calc(&Att_DL2.Table_0_0_dBm,// Table Offset
511
+            val = MBIC_DL_PE43711_Calc(&Att_DL2.Table_0_0_dBm,// Table Offset
485
                                 MBIC_Val,// Hidden Atten Low bit
512
                                 MBIC_Val,// Hidden Atten Low bit
486
                                MBIC_UserVal);// User Atten Low Bit
513
                                MBIC_UserVal);// User Atten Low Bit
487
 //            printf("%d val = %x \r\n",__LINE__,val);
514
 //            printf("%d val = %x \r\n",__LINE__,val);
@@ -500,7 +527,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
500
             MBIC_Val = Curr.ATT_DL3_H << 8 | Curr.ATT_DL3_L;
527
             MBIC_Val = Curr.ATT_DL3_H << 8 | Curr.ATT_DL3_L;
501
             MBIC_UserVal = Curr.bluecell_User_DL3_H << 8 | Curr.bluecell_User_DL3_L;
528
             MBIC_UserVal = Curr.bluecell_User_DL3_H << 8 | Curr.bluecell_User_DL3_L;
502
             
529
             
503
-            val = MBIC_PE43711_Calc(&Att_DL3.Table_0_0_dBm,// Table Offset
530
+            val = MBIC_DL_PE43711_Calc(&Att_DL3.Table_0_0_dBm,// Table Offset
504
                             MBIC_Val,// Hidden Atten Low bit
531
                             MBIC_Val,// Hidden Atten Low bit
505
                            MBIC_UserVal);// User Atten Low Bit
532
                            MBIC_UserVal);// User Atten Low Bit
506
         printf("%d val = %x \r\n",__LINE__,val);
533
         printf("%d val = %x \r\n",__LINE__,val);
@@ -518,9 +545,12 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
518
             bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
545
             bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
519
             bluecell_Prevdatastatus.bluecell_User_DL4_H = bluecell_Currdatastatus.bluecell_User_DL4_H;
546
             bluecell_Prevdatastatus.bluecell_User_DL4_H = bluecell_Currdatastatus.bluecell_User_DL4_H;
520
             bluecell_Prevdatastatus.bluecell_User_DL4_L = bluecell_Currdatastatus.bluecell_User_DL4_L;
547
             bluecell_Prevdatastatus.bluecell_User_DL4_L = bluecell_Currdatastatus.bluecell_User_DL4_L;
521
-            MBIC_Val = Curr.ATT_DL4_H << 8 | Curr.ATT_DL4_L;
522
-            MBIC_UserVal = Curr.bluecell_User_DL4_H << 8 | Curr.bluecell_User_DL4_L;
523
-            val = MBIC_PE43711_Calc(&Att_DL4.Table_0_0_dBm,// Table Offset
548
+            MBIC_Val = (Curr.ATT_DL4_H << 8 | Curr.ATT_DL4_L);
549
+                 printf("\r\nCurr.ATT_DL4_H : %x \r\Curr.ATT_DL4_L : %x \r\n",Curr.ATT_DL4_H,Curr.ATT_DL4_L);
550
+            MBIC_UserVal = (((Curr.bluecell_User_DL4_H & 0x00FF)<< 8) | Curr.bluecell_User_DL4_L);
551
+            printf("\r\nCurr.bluecell_User_DL4_H : %x \r\Curr.bluecell_User_DL4_L : %x \r\n",Curr.bluecell_User_DL4_H,Curr.bluecell_User_DL4_L);
552
+            printf("MBIC_UserVal : %x \r\n",MBIC_UserVal); // 2
553
+            val = MBIC_DL_PE43711_Calc(&Att_DL4.Table_0_0_dBm,// Table Offset
524
                                 MBIC_Val,// Hidden Atten Low bit
554
                                 MBIC_Val,// Hidden Atten Low bit
525
                                MBIC_UserVal);// User Atten Low Bit
555
                                MBIC_UserVal);// User Atten Low Bit
526
             printf("%d val = %x \r\n",__LINE__,val);
556
             printf("%d val = %x \r\n",__LINE__,val);
@@ -539,7 +569,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
539
             bluecell_Prevdatastatus.bluecell_User_UL1_L = bluecell_Currdatastatus.bluecell_User_UL1_L;
569
             bluecell_Prevdatastatus.bluecell_User_UL1_L = bluecell_Currdatastatus.bluecell_User_UL1_L;
540
             MBIC_Val = Curr.ATT_UL1_H << 8 | Curr.ATT_UL1_L;
570
             MBIC_Val = Curr.ATT_UL1_H << 8 | Curr.ATT_UL1_L;
541
             MBIC_UserVal = Curr.bluecell_User_UL1_H << 8 | Curr.bluecell_User_UL1_L;
571
             MBIC_UserVal = Curr.bluecell_User_UL1_H << 8 | Curr.bluecell_User_UL1_L;
542
-            val = MBIC_PE43711_Calc(&Att_UL1.Table_0_0_dBm,// Table Offset
572
+            val = MBIC_UL_PE43711_Calc(&Att_UL1.Table_0_0_dBm,// Table Offset
543
                                 MBIC_Val,// Hidden Atten Low bit
573
                                 MBIC_Val,// Hidden Atten Low bit
544
                                MBIC_UserVal);// User Atten Low Bit
574
                                MBIC_UserVal);// User Atten Low Bit
545
     //        printf("%d val = %x \r\n",__LINE__,val);
575
     //        printf("%d val = %x \r\n",__LINE__,val);
@@ -555,7 +585,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
555
             bluecell_Prevdatastatus.bluecell_User_UL2_L = bluecell_Currdatastatus.bluecell_User_UL2_L;
585
             bluecell_Prevdatastatus.bluecell_User_UL2_L = bluecell_Currdatastatus.bluecell_User_UL2_L;
556
             MBIC_Val = Curr.ATT_UL2_H << 8 | Curr.ATT_UL2_L;
586
             MBIC_Val = Curr.ATT_UL2_H << 8 | Curr.ATT_UL2_L;
557
             MBIC_UserVal = Curr.bluecell_User_UL2_H << 8 | Curr.bluecell_User_UL2_L;
587
             MBIC_UserVal = Curr.bluecell_User_UL2_H << 8 | Curr.bluecell_User_UL2_L;
558
-            val = MBIC_PE43711_Calc(&Att_UL2.Table_0_0_dBm,// Table Offset
588
+            val = MBIC_UL_PE43711_Calc(&Att_UL2.Table_0_0_dBm,// Table Offset
559
                                 MBIC_Val,// Hidden Atten Low bit
589
                                 MBIC_Val,// Hidden Atten Low bit
560
                                MBIC_UserVal);// User Atten Low Bit
590
                                MBIC_UserVal);// User Atten Low Bit
561
     //        printf("%d val = %x \r\n",__LINE__,val);
591
     //        printf("%d val = %x \r\n",__LINE__,val);
@@ -574,16 +604,22 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
574
             
604
             
575
             MBIC_Val = Curr.ATT_UL3_H << 8 | Curr.ATT_UL3_L;
605
             MBIC_Val = Curr.ATT_UL3_H << 8 | Curr.ATT_UL3_L;
576
             MBIC_UserVal = Curr.bluecell_User_UL3_H << 8 | Curr.bluecell_User_UL3_L;
606
             MBIC_UserVal = Curr.bluecell_User_UL3_H << 8 | Curr.bluecell_User_UL3_L;
577
-            val = MBIC_PE43711_Calc(&Att_UL3.Table_0_0_dBm,// Table Offset
607
+            val = MBIC_UL_PE43711_Calc(&Att_UL3.Table_0_0_dBm,// Table Offset
578
                                 MBIC_Val,// Hidden Atten Low bit
608
                                 MBIC_Val,// Hidden Atten Low bit
579
                                MBIC_UserVal);// User Atten Low Bit
609
                                MBIC_UserVal);// User Atten Low Bit
580
-    //        printf("%d val = %x \r\n",__LINE__,val);
610
+//    printf("bluecell_Currdatastatus.ATT_UL3_H : %0x \r\n",bluecell_Currdatastatus.ATT_UL3_H);
611
+//    printf("bluecell_Currdatastatus.ATT_UL3_L : %0x \r\n",bluecell_Currdatastatus.ATT_UL3_L);
612
+//    printf("bluecell_Currdatastatus.bluecell_User_UL3_H : %0x \r\n",bluecell_Currdatastatus.bluecell_User_UL3_H);
613
+//    printf("bluecell_Currdatastatus.bluecell_User_UL3_L : %0x \r\n",bluecell_Currdatastatus.bluecell_User_UL3_L);        
614
+        printf("%d val = %x \r\n",__LINE__,val);
615
+
581
             PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
616
             PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
582
     }
617
     }
583
     if((Curr.ATT_UL4_H != Prev.ATT_UL4_H
618
     if((Curr.ATT_UL4_H != Prev.ATT_UL4_H
584
      ||Curr.ATT_UL4_L != Prev.ATT_UL4_L)
619
      ||Curr.ATT_UL4_L != Prev.ATT_UL4_L)
585
      ||(Curr.bluecell_User_UL4_H != Prev.bluecell_User_UL4_H
620
      ||(Curr.bluecell_User_UL4_H != Prev.bluecell_User_UL4_H
586
-     ||Curr.bluecell_User_UL4_L != Prev.bluecell_User_UL4_L)){
621
+     ||Curr.bluecell_User_UL4_L != Prev.bluecell_User_UL4_L))
622
+     {
587
             bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
623
             bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
588
             bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
624
             bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
589
             bluecell_Prevdatastatus.bluecell_User_UL4_H = bluecell_Currdatastatus.bluecell_User_UL4_H;
625
             bluecell_Prevdatastatus.bluecell_User_UL4_H = bluecell_Currdatastatus.bluecell_User_UL4_H;
@@ -591,11 +627,15 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
591
             
627
             
592
             MBIC_Val = Curr.ATT_UL4_H << 8 | Curr.ATT_UL4_L;
628
             MBIC_Val = Curr.ATT_UL4_H << 8 | Curr.ATT_UL4_L;
593
             MBIC_UserVal = Curr.bluecell_User_UL4_H << 8 | Curr.bluecell_User_UL4_L;
629
             MBIC_UserVal = Curr.bluecell_User_UL4_H << 8 | Curr.bluecell_User_UL4_L;
594
-            val = MBIC_PE43711_Calc(&Att_UL4.Table_0_0_dBm,// Table Offset
630
+            val = MBIC_UL_PE43711_Calc(&Att_UL4.Table_0_0_dBm,// Table Offset
595
                                 MBIC_Val,// Hidden Atten Low bit
631
                                 MBIC_Val,// Hidden Atten Low bit
596
                                MBIC_UserVal);// User Atten Low Bit
632
                                MBIC_UserVal);// User Atten Low Bit
597
-    //        printf("%d val = %x \r\n",__LINE__,val);
598
-            PE43711_atten_ctrl(ALL_ATT.ATT_UL4,val);
633
+        printf("bluecell_Currdatastatus.ATT_UL4_H : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_H);
634
+        printf("bluecell_Currdatastatus.ATT_UL4_L : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_L);
635
+        printf("bluecell_Currdatastatus.bluecell_User_UL4_H : %0x \r\n",bluecell_Currdatastatus.bluecell_User_UL4_H);
636
+        printf("bluecell_Currdatastatus.bluecell_User_UL4_L : %0x \r\n",bluecell_Currdatastatus.bluecell_User_UL4_L);        
637
+            printf("%d val = %x \r\n",__LINE__,val);
638
+            PE43711_UL4_atten_ctrl(val);
599
     }
639
     }
600
 //    memcpy(&bluecell_Prevdatastatus.ATT_DL1_H,&bluecell_Currdatastatus.ATT_DL1_H,32);
640
 //    memcpy(&bluecell_Prevdatastatus.ATT_DL1_H,&bluecell_Currdatastatus.ATT_DL1_H,32);
601
 #if 0 // PYJ.2020.04.21_BEGIN -- 
641
 #if 0 // PYJ.2020.04.21_BEGIN -- 
@@ -1094,6 +1134,7 @@ void Bluecell_TableLoad(uint8_t* data,uint8_t type){
1094
         case DLI_P1_ATT_Accuracy_Table_Number: 
1134
         case DLI_P1_ATT_Accuracy_Table_Number: 
1095
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,EEPROM_ATT_BASE              ,&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
1135
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,EEPROM_ATT_BASE              ,&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
1096
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1136
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1137
+//            Bluecell_structprintf(&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1097
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1138
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1098
           break;
1139
           break;
1099
         case DLI_P2_ATT_Accuracy_Table_Number: 
1140
         case DLI_P2_ATT_Accuracy_Table_Number: 
@@ -1639,7 +1680,7 @@ bool Bluecell_Operate(uint8_t* data){
1639
 
1680
 
1640
   //double ret = 0 ,tmp = 0.1;
1681
   //double ret = 0 ,tmp = 0.1;
1641
   int16_t tempdata = 0;
1682
   int16_t tempdata = 0;
1642
-
1683
+  
1643
   uint8_t i = 0;
1684
   uint8_t i = 0;
1644
   switch(datatype){
1685
   switch(datatype){
1645
     case BLUECELL_SOFTWARERESET:
1686
     case BLUECELL_SOFTWARERESET:
@@ -1647,6 +1688,8 @@ bool Bluecell_Operate(uint8_t* data){
1647
         break;
1688
         break;
1648
 	case Bluecell_ATT_DL1 				 :
1689
 	case Bluecell_ATT_DL1 				 :
1649
 //		printf("Function : %s Line %d \r\n",__func__,__LINE__);
1690
 //		printf("Function : %s Line %d \r\n",__func__,__LINE__);
1691
+       
1692
+
1650
         bluecell_Currdatastatus.ATT_DL1_H = data[BLUECELL_DATA + i++];
1693
         bluecell_Currdatastatus.ATT_DL1_H = data[BLUECELL_DATA + i++];
1651
         bluecell_Currdatastatus.ATT_DL1_L = data[BLUECELL_DATA + i++];
1694
         bluecell_Currdatastatus.ATT_DL1_L = data[BLUECELL_DATA + i++];
1652
 //        printf("bluecell_Currdatastatus.ATT_DL1_H : %x\r\n",bluecell_Currdatastatus.ATT_DL1_H);
1695
 //        printf("bluecell_Currdatastatus.ATT_DL1_H : %x\r\n",bluecell_Currdatastatus.ATT_DL1_H);
@@ -1659,7 +1702,7 @@ bool Bluecell_Operate(uint8_t* data){
1659
     case Bluecell_ATT_DL2                :
1702
     case Bluecell_ATT_DL2                :
1660
         bluecell_Currdatastatus.ATT_DL2_H = data[BLUECELL_DATA + i++];
1703
         bluecell_Currdatastatus.ATT_DL2_H = data[BLUECELL_DATA + i++];
1661
         bluecell_Currdatastatus.ATT_DL2_L = data[BLUECELL_DATA + i++];
1704
         bluecell_Currdatastatus.ATT_DL2_L = data[BLUECELL_DATA + i++];
1662
-    
1705
+
1663
         /*
1706
         /*
1664
             Atten Ctrl Function
1707
             Atten Ctrl Function
1665
         */
1708
         */
@@ -1668,7 +1711,7 @@ bool Bluecell_Operate(uint8_t* data){
1668
 	case Bluecell_ATT_DL3 				 :        
1711
 	case Bluecell_ATT_DL3 				 :        
1669
         bluecell_Currdatastatus.ATT_DL3_H = data[BLUECELL_DATA + i++];
1712
         bluecell_Currdatastatus.ATT_DL3_H = data[BLUECELL_DATA + i++];
1670
         bluecell_Currdatastatus.ATT_DL3_L = data[BLUECELL_DATA + i++];
1713
         bluecell_Currdatastatus.ATT_DL3_L = data[BLUECELL_DATA + i++];
1671
-    
1714
+
1672
         /*
1715
         /*
1673
             Atten Ctrl Function
1716
             Atten Ctrl Function
1674
         */
1717
         */
@@ -1677,7 +1720,7 @@ bool Bluecell_Operate(uint8_t* data){
1677
 	case Bluecell_ATT_DL4 				 :    
1720
 	case Bluecell_ATT_DL4 				 :    
1678
         bluecell_Currdatastatus.ATT_DL4_H = data[BLUECELL_DATA + i++];
1721
         bluecell_Currdatastatus.ATT_DL4_H = data[BLUECELL_DATA + i++];
1679
         bluecell_Currdatastatus.ATT_DL4_L = data[BLUECELL_DATA + i++];
1722
         bluecell_Currdatastatus.ATT_DL4_L = data[BLUECELL_DATA + i++];
1680
-    
1723
+
1681
         /*
1724
         /*
1682
             Atten Ctrl Function
1725
             Atten Ctrl Function
1683
         */
1726
         */
@@ -1687,7 +1730,6 @@ bool Bluecell_Operate(uint8_t* data){
1687
 
1730
 
1688
         bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
1731
         bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
1689
         bluecell_Currdatastatus.ATT_UL1_L = data[BLUECELL_DATA + i++];
1732
         bluecell_Currdatastatus.ATT_UL1_L = data[BLUECELL_DATA + i++];
1690
-    
1691
         /*
1733
         /*
1692
             Atten Ctrl Function
1734
             Atten Ctrl Function
1693
         */
1735
         */
@@ -1698,7 +1740,7 @@ bool Bluecell_Operate(uint8_t* data){
1698
     case Bluecell_ATT_UL2                :        
1740
     case Bluecell_ATT_UL2                :        
1699
         bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
1741
         bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
1700
         bluecell_Currdatastatus.ATT_UL2_L = data[BLUECELL_DATA + i++];
1742
         bluecell_Currdatastatus.ATT_UL2_L = data[BLUECELL_DATA + i++];
1701
-    
1743
+
1702
         /*
1744
         /*
1703
             Atten Ctrl Function
1745
             Atten Ctrl Function
1704
         */
1746
         */
@@ -1707,7 +1749,7 @@ bool Bluecell_Operate(uint8_t* data){
1707
     case Bluecell_ATT_UL3                :    
1749
     case Bluecell_ATT_UL3                :    
1708
         bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
1750
         bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
1709
         bluecell_Currdatastatus.ATT_UL3_L = data[BLUECELL_DATA + i++];
1751
         bluecell_Currdatastatus.ATT_UL3_L = data[BLUECELL_DATA + i++];
1710
-    
1752
+
1711
         /*
1753
         /*
1712
             Atten Ctrl Function
1754
             Atten Ctrl Function
1713
         */
1755
         */
@@ -1716,6 +1758,10 @@ bool Bluecell_Operate(uint8_t* data){
1716
     case Bluecell_ATT_UL4                :        
1758
     case Bluecell_ATT_UL4                :        
1717
         bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
1759
         bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
1718
         bluecell_Currdatastatus.ATT_UL4_L = data[BLUECELL_DATA + i++];
1760
         bluecell_Currdatastatus.ATT_UL4_L = data[BLUECELL_DATA + i++];
1761
+        printf("bluecell_Currdatastatus.ATT_UL4_H : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_H);
1762
+        printf("bluecell_Currdatastatus.ATT_UL4_L : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_L);        
1763
+
1764
+
1719
         /*
1765
         /*
1720
             Atten Ctrl Function
1766
             Atten Ctrl Function
1721
         */
1767
         */
@@ -1725,16 +1771,16 @@ bool Bluecell_Operate(uint8_t* data){
1725
 	case ATT_DL1_PATH 		 :
1771
 	case ATT_DL1_PATH 		 :
1726
         if(data[BLUECELL_DATA]==0){
1772
         if(data[BLUECELL_DATA]==0){
1727
             HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_RESET);//CLOCK        
1773
             HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_RESET);//CLOCK        
1728
-//            printf("ATT_DL1_PATH OFF\r\n");
1729
-            bluecell_Currdatastatus.DLI_Shutdown_Retry_Count1 = 0;
1774
+            printf("ATT_DL1_PATH OFF\r\n");
1775
+            bluecell_Currdatastatus.ULO_Shutdown_Retry_Count1 = 0;
1730
         }
1776
         }
1731
         else{
1777
         else{
1732
             
1778
             
1733
             HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_SET);//CLOCK
1779
             HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_SET);//CLOCK
1734
-            bluecell_Prevdatastatus.ATT_DL1_H = ~bluecell_Prevdatastatus.ATT_DL1_H;
1735
-            bluecell_Prevdatastatus.ATT_DL1_L = ~bluecell_Prevdatastatus.ATT_DL1_L;
1780
+            bluecell_Prevdatastatus.ATT_DL1_H = 0xFF;
1781
+            bluecell_Prevdatastatus.ATT_DL1_L =0xFF;
1736
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1782
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1737
-//            printf("ATT_DL1_PATH ON\r\n");
1783
+            printf("ATT_DL1_PATH ON\r\n");
1738
         }
1784
         }
1739
         bluecell_Currdatastatus.ATT_DL1_PATH = data[BLUECELL_DATA];
1785
         bluecell_Currdatastatus.ATT_DL1_PATH = data[BLUECELL_DATA];
1740
 	
1786
 	
@@ -1747,8 +1793,8 @@ bool Bluecell_Operate(uint8_t* data){
1747
         }
1793
         }
1748
         else{
1794
         else{
1749
             HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_SET);//CLOCK
1795
             HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_SET);//CLOCK
1750
-            bluecell_Prevdatastatus.ATT_UL1_H = ~bluecell_Prevdatastatus.ATT_UL1_H;
1751
-            bluecell_Prevdatastatus.ATT_UL1_L = ~bluecell_Prevdatastatus.ATT_UL1_L;
1796
+            bluecell_Prevdatastatus.ATT_UL1_H = 0xFF;
1797
+            bluecell_Prevdatastatus.ATT_UL1_L = 0xFF;
1752
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1798
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1753
 
1799
 
1754
         }
1800
         }
@@ -1774,8 +1820,8 @@ bool Bluecell_Operate(uint8_t* data){
1774
         }
1820
         }
1775
         else{
1821
         else{
1776
             HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_SET);//CLOCK
1822
             HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_SET);//CLOCK
1777
-            bluecell_Prevdatastatus.ATT_DL2_H = ~bluecell_Prevdatastatus.ATT_DL2_H;
1778
-            bluecell_Prevdatastatus.ATT_DL2_L = ~bluecell_Prevdatastatus.ATT_DL2_L;
1823
+            bluecell_Prevdatastatus.ATT_DL2_H = 0xFF;
1824
+            bluecell_Prevdatastatus.ATT_DL2_L = 0xFF;
1779
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1825
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1780
         }
1826
         }
1781
         bluecell_Currdatastatus.ATT_DL2_PATH = data[BLUECELL_DATA];
1827
         bluecell_Currdatastatus.ATT_DL2_PATH = data[BLUECELL_DATA];
@@ -1790,8 +1836,8 @@ bool Bluecell_Operate(uint8_t* data){
1790
         }
1836
         }
1791
         else{
1837
         else{
1792
             HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_SET);//CLOCK
1838
             HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_SET);//CLOCK
1793
-            bluecell_Prevdatastatus.ATT_UL2_H = ~bluecell_Prevdatastatus.ATT_UL2_H;
1794
-            bluecell_Prevdatastatus.ATT_UL2_L = ~bluecell_Prevdatastatus.ATT_UL2_L;
1839
+            bluecell_Prevdatastatus.ATT_UL2_H = 0xFF;
1840
+            bluecell_Prevdatastatus.ATT_UL2_L = 0xFF;
1795
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1841
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1796
         }
1842
         }
1797
         bluecell_Currdatastatus.ATT_UL2_PATH = data[BLUECELL_DATA];
1843
         bluecell_Currdatastatus.ATT_UL2_PATH = data[BLUECELL_DATA];
@@ -1814,8 +1860,8 @@ bool Bluecell_Operate(uint8_t* data){
1814
         }
1860
         }
1815
         else{
1861
         else{
1816
             HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_SET);//CLOCK
1862
             HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_SET);//CLOCK
1817
-            bluecell_Prevdatastatus.ATT_DL3_H = ~bluecell_Prevdatastatus.ATT_DL3_H;
1818
-            bluecell_Prevdatastatus.ATT_DL3_L = ~bluecell_Prevdatastatus.ATT_DL3_L;
1863
+            bluecell_Prevdatastatus.ATT_DL3_H = 0xFF;
1864
+            bluecell_Prevdatastatus.ATT_DL3_L = 0xFF;
1819
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1865
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1820
         }
1866
         }
1821
         bluecell_Currdatastatus.ATT_DL3_PATH = data[BLUECELL_DATA];
1867
         bluecell_Currdatastatus.ATT_DL3_PATH = data[BLUECELL_DATA];
@@ -1828,8 +1874,8 @@ bool Bluecell_Operate(uint8_t* data){
1828
         }
1874
         }
1829
         else{
1875
         else{
1830
             HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_SET);//CLOCK
1876
             HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_SET);//CLOCK
1831
-            bluecell_Prevdatastatus.ATT_UL3_H = ~bluecell_Prevdatastatus.ATT_UL3_H;
1832
-            bluecell_Prevdatastatus.ATT_UL3_L = ~bluecell_Prevdatastatus.ATT_UL3_L;
1877
+            bluecell_Prevdatastatus.ATT_UL3_H = 0xFF;
1878
+            bluecell_Prevdatastatus.ATT_UL3_L =0xFF;
1833
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1879
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1834
         }
1880
         }
1835
         bluecell_Currdatastatus.ATT_UL3_PATH = data[BLUECELL_DATA];
1881
         bluecell_Currdatastatus.ATT_UL3_PATH = data[BLUECELL_DATA];
@@ -1853,8 +1899,8 @@ bool Bluecell_Operate(uint8_t* data){
1853
             bluecell_Currdatastatus.DLI_Shutdown_Retry_Count4 = 0;
1899
             bluecell_Currdatastatus.DLI_Shutdown_Retry_Count4 = 0;
1854
         }else{
1900
         }else{
1855
             HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_SET);//CLOCK    
1901
             HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_SET);//CLOCK    
1856
-            bluecell_Prevdatastatus.ATT_DL4_H = ~bluecell_Prevdatastatus.ATT_DL4_H;
1857
-            bluecell_Prevdatastatus.ATT_DL4_L = ~bluecell_Prevdatastatus.ATT_DL4_L;
1902
+            bluecell_Prevdatastatus.ATT_DL4_H =0xFF;
1903
+            bluecell_Prevdatastatus.ATT_DL4_L = 0xFF;
1858
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1904
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1859
 
1905
 
1860
         }
1906
         }
@@ -1868,8 +1914,8 @@ bool Bluecell_Operate(uint8_t* data){
1868
         }
1914
         }
1869
         else{
1915
         else{
1870
             HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_SET);//CLOCK
1916
             HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_SET);//CLOCK
1871
-            bluecell_Prevdatastatus.ATT_UL4_H = ~bluecell_Prevdatastatus.ATT_UL4_H;
1872
-            bluecell_Prevdatastatus.ATT_UL4_L = ~bluecell_Prevdatastatus.ATT_UL4_L;
1917
+            bluecell_Prevdatastatus.ATT_UL4_H = 0xFF;
1918
+            bluecell_Prevdatastatus.ATT_UL4_L = 0xFF;
1873
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1919
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1874
         }
1920
         }
1875
         bluecell_Currdatastatus.ATT_UL4_PATH = data[BLUECELL_DATA];
1921
         bluecell_Currdatastatus.ATT_UL4_PATH = data[BLUECELL_DATA];
@@ -1891,6 +1937,7 @@ bool Bluecell_Operate(uint8_t* data){
1891
     case ATT_TableGet:
1937
     case ATT_TableGet:
1892
         Bluecell_TableLoad(data, data[BLUECELL_DATA]);
1938
         Bluecell_TableLoad(data, data[BLUECELL_DATA]);
1893
         data[BLUECELL_TYPE] = ATT_TableGet;
1939
         data[BLUECELL_TYPE] = ATT_TableGet;
1940
+
1894
         data[data[BLUECELL_LENGTH] + 1] = ((CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH]) & 0xFF00) >> 8);
1941
         data[data[BLUECELL_LENGTH] + 1] = ((CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH]) & 0xFF00) >> 8);
1895
         data[data[BLUECELL_LENGTH] + 2] = CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH]) & 0x00FF;        
1942
         data[data[BLUECELL_LENGTH] + 2] = CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH]) & 0x00FF;        
1896
         data[data[BLUECELL_LENGTH] + 3] = 0xEB;
1943
         data[data[BLUECELL_LENGTH] + 3] = 0xEB;
@@ -1906,12 +1953,22 @@ bool Bluecell_Operate(uint8_t* data){
1906
 //        printf("\r\nuint8_t data : %x  data[BLUECELL_LENGTH] + 6 : %d\r\n",data[0],data[BLUECELL_LENGTH] + 6);
1953
 //        printf("\r\nuint8_t data : %x  data[BLUECELL_LENGTH] + 6 : %d\r\n",data[0],data[BLUECELL_LENGTH] + 6);
1907
         break;
1954
         break;
1908
     case Bluecell_StatusReq:
1955
     case Bluecell_StatusReq:
1956
+        if(Initialize == false){
1957
+            printf("Atten Init \r\n");
1958
+            Bluecell_DataInit();
1959
+            HAL_Delay(10);
1960
+            Bluecell_AttenInitialize();
1961
+            Initialize = true;
1962
+        }
1909
         DataStatusSet();
1963
         DataStatusSet();
1910
 #if 0 // PYJ.2020.05.28_BEGIN -- 
1964
 #if 0 // PYJ.2020.05.28_BEGIN -- 
1911
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,94);
1965
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,94);
1912
         Txdata[BLUECELL_LENGTH] = 94 - 3;//sizeof(BLUESTATUS_st) - 3;
1966
         Txdata[BLUECELL_LENGTH] = 94 - 3;//sizeof(BLUESTATUS_st) - 3;
1913
         Txdata[94 - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
1967
         Txdata[94 - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
1914
 #else        
1968
 #else        
1969
+//        printf("bluecell_Currdatastatus.ATT_UL4_H : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_H);
1970
+//        printf("bluecell_Currdatastatus.ATT_UL4_L : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_L);
1971
+
1915
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
1972
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
1916
         Txdata[BLUECELL_LENGTH] = sizeof(BLUESTATUS_st) - 3;//sizeof(BLUESTATUS_st) - 3;
1973
         Txdata[BLUECELL_LENGTH] = sizeof(BLUESTATUS_st) - 3;//sizeof(BLUESTATUS_st) - 3;
1917
 //        Txdata[sizeof(BLUESTATUS_st) - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
1974
 //        Txdata[sizeof(BLUESTATUS_st) - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
@@ -2193,14 +2250,14 @@ void DataStatusSet(void){
2193
         bluecell_Currdatastatus.bluecell_type = Bluecell_StatusReq;
2250
         bluecell_Currdatastatus.bluecell_type = Bluecell_StatusReq;
2194
         bluecell_Currdatastatus.bluecell_length = 94 - 3;
2251
         bluecell_Currdatastatus.bluecell_length = 94 - 3;
2195
         bluecell_Currdatastatus.bluecell_crcindex = 94 - 2 + 1;
2252
         bluecell_Currdatastatus.bluecell_crcindex = 94 - 2 + 1;
2196
-        bluecell_Currdatastatus.ATT_DL1_PATH = HAL_GPIO_ReadPin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin);//CLOCK;        
2197
-        bluecell_Currdatastatus.ATT_DL2_PATH = HAL_GPIO_ReadPin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin);//CLOCK;
2198
-        bluecell_Currdatastatus.ATT_DL3_PATH = HAL_GPIO_ReadPin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin);//CLOCK;
2199
-        bluecell_Currdatastatus.ATT_DL4_PATH = HAL_GPIO_ReadPin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin);//CLOCK;
2200
-        bluecell_Currdatastatus.ATT_UL1_PATH = HAL_GPIO_ReadPin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin);//CLOCK;
2201
-        bluecell_Currdatastatus.ATT_UL2_PATH = HAL_GPIO_ReadPin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin);//CLOCK;
2202
-        bluecell_Currdatastatus.ATT_UL3_PATH = HAL_GPIO_ReadPin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin);//CLOCK;
2203
-        bluecell_Currdatastatus.ATT_UL4_PATH = HAL_GPIO_ReadPin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin);//CLOCK;
2253
+//        bluecell_Currdatastatus.ATT_DL1_PATH = HAL_GPIO_ReadPin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin);//CLOCK;        
2254
+//        bluecell_Currdatastatus.ATT_DL2_PATH = HAL_GPIO_ReadPin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin);//CLOCK;
2255
+//        bluecell_Currdatastatus.ATT_DL3_PATH = HAL_GPIO_ReadPin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin);//CLOCK;
2256
+//        bluecell_Currdatastatus.ATT_DL4_PATH = HAL_GPIO_ReadPin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin);//CLOCK;
2257
+//        bluecell_Currdatastatus.ATT_UL1_PATH = HAL_GPIO_ReadPin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin);//CLOCK;
2258
+//        bluecell_Currdatastatus.ATT_UL2_PATH = HAL_GPIO_ReadPin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin);//CLOCK;
2259
+//        bluecell_Currdatastatus.ATT_UL3_PATH = HAL_GPIO_ReadPin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin);//CLOCK;
2260
+//        bluecell_Currdatastatus.ATT_UL4_PATH = HAL_GPIO_ReadPin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin);//CLOCK;
2204
         bluecell_Currdatastatus.bluecell_etx = 0xeb;
2261
         bluecell_Currdatastatus.bluecell_etx = 0xeb;
2205
              
2262
              
2206
         
2263
         
@@ -2221,6 +2278,21 @@ typedef enum{
2221
  MBIC_SBM      ,
2278
  MBIC_SBM      ,
2222
  MBIC_KDDI     ,
2279
  MBIC_KDDI     ,
2223
 }MBIC_CardType_t;
2280
 }MBIC_CardType_t;
2281
+ typedef enum{
2282
+    BLUECELL_3_7G  =     0  ,              
2283
+    BLUECELL_3_8G     ,
2284
+    BLUECELL_3_9G     ,
2285
+    BLUECELL_4_0G     ,
2286
+    BLUECELL_4_1G     ,
2287
+    BLUECELL_4_6G     ,
2288
+    BLUECELL_SBM      ,
2289
+    BLUECELL_DCM      ,
2290
+    BLUECELL_KDDI     ,
2291
+    BLUECELL_4_7G     ,
2292
+    BLUECELL_4_8G     ,
2293
+    BLUECELL_4_9G     ,
2294
+    BLUECELL_5_0G     ,
2295
+ }Bluecell_CardType_t;
2224
 
2296
 
2225
  void Bluecell_DataInit(){
2297
  void Bluecell_DataInit(){
2226
 /*
2298
 /*
@@ -2232,23 +2304,24 @@ typedef enum{
2232
    bluecell_Currdatastatus.Type +=  HAL_GPIO_ReadPin(UNIT_ID2_GPIO_Port,UNIT_ID2_Pin) << 2;
2304
    bluecell_Currdatastatus.Type +=  HAL_GPIO_ReadPin(UNIT_ID2_GPIO_Port,UNIT_ID2_Pin) << 2;
2233
    bluecell_Currdatastatus.Type +=  HAL_GPIO_ReadPin(UNIT_ID3_GPIO_Port,UNIT_ID3_Pin) << 3;
2305
    bluecell_Currdatastatus.Type +=  HAL_GPIO_ReadPin(UNIT_ID3_GPIO_Port,UNIT_ID3_Pin) << 3;
2234
     switch(bluecell_Currdatastatus.Type){
2306
     switch(bluecell_Currdatastatus.Type){
2235
-     case MBIC_3_7G: bluecell_Currdatastatus.Carrier_ID = 0x01; break;
2236
-     case MBIC_3_8G: bluecell_Currdatastatus.Carrier_ID = 0x02; break;
2237
-     case MBIC_3_9G: bluecell_Currdatastatus.Carrier_ID = 0x04; break;
2238
-     case MBIC_4_0G: bluecell_Currdatastatus.Carrier_ID = 0x03; break;
2239
-     case MBIC_4_1G: bluecell_Currdatastatus.Carrier_ID = 0x02; break;
2240
-     case MBIC_4_6G: bluecell_Currdatastatus.Carrier_ID = 0x01; break;
2241
-     case MBIC_4_7G: bluecell_Currdatastatus.Carrier_ID = 0x00; break;
2242
-     case MBIC_4_8G: bluecell_Currdatastatus.Carrier_ID = 0x00; break;
2243
-     case MBIC_4_9G: bluecell_Currdatastatus.Carrier_ID = 0x00; break;
2244
-     case MBIC_5_0G: bluecell_Currdatastatus.Carrier_ID = 0x00; break;
2245
-     case MBIC_DCM : bluecell_Currdatastatus.Carrier_ID = 0x01; break;
2246
-     case MBIC_SBM : bluecell_Currdatastatus.Carrier_ID = 0x03; break;
2247
-     case MBIC_KDDI: bluecell_Currdatastatus.Carrier_ID = 0x02; break;
2307
+     case BLUECELL_3_7G: bluecell_Currdatastatus.Type = 0x80;bluecell_Currdatastatus.Carrier_ID = 0x01 ;printf("Type BLUECELL_3_7G  Ready....\r\n",bluecell_Currdatastatus.Type); break;
2308
+     case BLUECELL_3_8G: bluecell_Currdatastatus.Type = 0x81;bluecell_Currdatastatus.Carrier_ID = 0x02; printf("Type BLUECELL_3_8G  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2309
+     case BLUECELL_3_9G: bluecell_Currdatastatus.Type = 0x82;bluecell_Currdatastatus.Carrier_ID = 0x04;printf("Type BLUECELL_3_9G  Ready....\r\n",bluecell_Currdatastatus.Type); break;
2310
+     case BLUECELL_4_0G: bluecell_Currdatastatus.Type = 0x83;bluecell_Currdatastatus.Carrier_ID = 0x03; printf("Type BLUECELL_4_0G  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2311
+     case BLUECELL_4_1G: bluecell_Currdatastatus.Type = 0x84;bluecell_Currdatastatus.Carrier_ID = 0x02; printf("Type BLUECELL_4_1G  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2312
+     case BLUECELL_4_6G: bluecell_Currdatastatus.Type = 0x85;bluecell_Currdatastatus.Carrier_ID = 0x01; printf("Type BLUECELL_4_6G  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2313
+     case BLUECELL_4_7G: bluecell_Currdatastatus.Type = 0x86;bluecell_Currdatastatus.Carrier_ID = 0x00; printf("Type BLUECELL_4_7G  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2314
+     case BLUECELL_4_8G: bluecell_Currdatastatus.Type = 0x87;bluecell_Currdatastatus.Carrier_ID = 0x00; printf("Type BLUECELL_3_7G  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2315
+     case BLUECELL_4_9G: bluecell_Currdatastatus.Type = 0x88;bluecell_Currdatastatus.Carrier_ID = 0x00; printf("Type BLUECELL_4_9G  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2316
+     case BLUECELL_5_0G: bluecell_Currdatastatus.Type = 0x89;bluecell_Currdatastatus.Carrier_ID = 0x00; printf("Type BLUECELL_5_0G  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2317
+     case BLUECELL_DCM : bluecell_Currdatastatus.Type = 0x8A;bluecell_Currdatastatus.Carrier_ID = 0x01;printf("Type BLUECELL_DCM  Ready....\r\n",bluecell_Currdatastatus.Type); break;
2318
+     case BLUECELL_SBM : bluecell_Currdatastatus.Type = 0x8B;bluecell_Currdatastatus.Carrier_ID = 0x03; printf("Type BLUECELL_SBM  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2319
+     case BLUECELL_KDDI: bluecell_Currdatastatus.Type = 0x8C;bluecell_Currdatastatus.Carrier_ID = 0x02;printf("Type BLUECELL_KDDI  Ready....\r\n",bluecell_Currdatastatus.Type); break;
2248
      default : printf("Type %x  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2320
      default : printf("Type %x  Ready....\r\n",bluecell_Currdatastatus.Type);break;
2249
     }
2321
     }
2250
 
2322
 
2251
 
2323
 
2324
+  printf("Type %x  Ready....\r\n",bluecell_Currdatastatus.Type);
2252
 
2325
 
2253
   //  printf("bluecell_Currdatastatus.Type : %02x \r\n",bluecell_Currdatastatus.Type);
2326
   //  printf("bluecell_Currdatastatus.Type : %02x \r\n",bluecell_Currdatastatus.Type);
2254
 #if 1 // PYJ.2020.06.17_BEGIN -- 
2327
 #if 1 // PYJ.2020.06.17_BEGIN -- 
@@ -2263,7 +2336,8 @@ typedef enum{
2263
     HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,bluecell_Currdatastatus.ATT_UL3_PATH);   
2336
     HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,bluecell_Currdatastatus.ATT_UL3_PATH);   
2264
     HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,bluecell_Currdatastatus.ATT_UL4_PATH);   
2337
     HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,bluecell_Currdatastatus.ATT_UL4_PATH);   
2265
 #endif // PYJ.2020.06.17_END -- 
2338
 #endif // PYJ.2020.06.17_END -- 
2266
-
2339
+    
2340
+    HAL_Delay(10);
2267
 
2341
 
2268
     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2342
     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2269
     if(bluecell_Currdatastatus.Selftest1==0){
2343
     if(bluecell_Currdatastatus.Selftest1==0){
@@ -2496,7 +2570,7 @@ uint32_t MBIC_DataSend(uint8_t* data){
2496
     data[MBIC_PAYLOADSTART + i++] = 1; // LENGTH
2570
     data[MBIC_PAYLOADSTART + i++] = 1; // LENGTH
2497
     Length += 1;
2571
     Length += 1;
2498
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.Type;
2572
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.Type;
2499
-
2573
+    printf(" bluecell_Currdatastatus.Type : %x \r\n", bluecell_Currdatastatus.Type);
2500
      /*PCB_Version*/
2574
      /*PCB_Version*/
2501
     data[MBIC_PAYLOADSTART + i++] = MBIC_AID;
2575
     data[MBIC_PAYLOADSTART + i++] = MBIC_AID;
2502
     data[MBIC_PAYLOADSTART + i++] = PCB_Version;
2576
     data[MBIC_PAYLOADSTART + i++] = PCB_Version;
@@ -3071,7 +3145,6 @@ uint32_t MBIC_DataSend(uint8_t* data){
3071
     return Length;
3145
     return Length;
3072
 
3146
 
3073
 }
3147
 }
3074
-
3075
 bool MBIC_Operate(uint8_t* data){
3148
 bool MBIC_Operate(uint8_t* data){
3076
 	uint8_t datatype = data[MBIC_PAYLOADSTART + 1];
3149
 	uint8_t datatype = data[MBIC_PAYLOADSTART + 1];
3077
    // uint8_t Length = (data[MBIC_PROT_SUB_DATA_INDEX + 2]);
3150
    // uint8_t Length = (data[MBIC_PROT_SUB_DATA_INDEX + 2]);
@@ -3119,6 +3192,11 @@ bool MBIC_Operate(uint8_t* data){
3119
     data[MBIC_ERRRESPONSE_0] = MBIC_ERRRESPONSE;
3192
     data[MBIC_ERRRESPONSE_0] = MBIC_ERRRESPONSE;
3120
 
3193
 
3121
     if(cmd == MBIC_GET){
3194
     if(cmd == MBIC_GET){
3195
+        if(Initialize == false){
3196
+            Bluecell_DataInit();
3197
+            Bluecell_AttenInitialize();
3198
+            Initialize = true;
3199
+        }
3122
         data[MBIC_CMD_0] = 0x80;//MBIC_ERRRESPONSE;
3200
         data[MBIC_CMD_0] = 0x80;//MBIC_ERRRESPONSE;
3123
         Length = MBIC_DataSend(data);
3201
         Length = MBIC_DataSend(data);
3124
     }
3202
     }
@@ -3189,8 +3267,8 @@ bool MBIC_Operate(uint8_t* data){
3189
                     HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_RESET);//CLOCK        
3267
                     HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_RESET);//CLOCK        
3190
                 }
3268
                 }
3191
                 else{
3269
                 else{
3192
-                    bluecell_Prevdatastatus.ATT_DL1_H = ~bluecell_Prevdatastatus.ATT_DL1_H;
3193
-                    bluecell_Prevdatastatus.ATT_DL1_L = ~bluecell_Prevdatastatus.ATT_DL1_L;
3270
+                    bluecell_Prevdatastatus.ATT_DL1_H = 0xFF;
3271
+                    bluecell_Prevdatastatus.ATT_DL1_L =0xFF;
3194
                     HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_SET);//CLOCK
3272
                     HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_SET);//CLOCK
3195
                 }                
3273
                 }                
3196
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
3274
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
@@ -3201,8 +3279,8 @@ bool MBIC_Operate(uint8_t* data){
3201
                    HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_RESET);//CLOCK        
3279
                    HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_RESET);//CLOCK        
3202
                }
3280
                }
3203
                else{
3281
                else{
3204
-                    bluecell_Prevdatastatus.ATT_DL2_H = ~bluecell_Prevdatastatus.ATT_DL2_H;
3205
-                    bluecell_Prevdatastatus.ATT_DL2_L = ~bluecell_Prevdatastatus.ATT_DL2_L;
3282
+                    bluecell_Prevdatastatus.ATT_DL2_H = 0xFF;
3283
+                    bluecell_Prevdatastatus.ATT_DL2_L = 0xFF;
3206
                    HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_SET);//CLOCK
3284
                    HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_SET);//CLOCK
3207
                }
3285
                }
3208
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
3286
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
@@ -3214,8 +3292,8 @@ bool MBIC_Operate(uint8_t* data){
3214
                     HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_RESET);//CLOCK        
3292
                     HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_RESET);//CLOCK        
3215
                 }
3293
                 }
3216
                 else{
3294
                 else{
3217
-                    bluecell_Prevdatastatus.ATT_DL3_H = ~bluecell_Prevdatastatus.ATT_DL3_H;
3218
-                    bluecell_Prevdatastatus.ATT_DL3_L = ~bluecell_Prevdatastatus.ATT_DL3_L;
3295
+                    bluecell_Prevdatastatus.ATT_DL3_H = 0xFF;
3296
+                    bluecell_Prevdatastatus.ATT_DL3_L = 0xFF;
3219
                     HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_SET);//CLOCK
3297
                     HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_SET);//CLOCK
3220
                 }
3298
                 }
3221
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
3299
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
@@ -3227,8 +3305,8 @@ bool MBIC_Operate(uint8_t* data){
3227
                     HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_RESET);//CLOCK        
3305
                     HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_RESET);//CLOCK        
3228
                 }
3306
                 }
3229
                 else{
3307
                 else{
3230
-                    bluecell_Prevdatastatus.ATT_DL4_H = ~bluecell_Prevdatastatus.ATT_DL4_H;
3231
-                    bluecell_Prevdatastatus.ATT_DL4_L = ~bluecell_Prevdatastatus.ATT_DL4_L;
3308
+                    bluecell_Prevdatastatus.ATT_DL4_H =0xFF;
3309
+                    bluecell_Prevdatastatus.ATT_DL4_L = 0xFF;
3232
                     HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_SET);//CLOCK
3310
                     HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_SET);//CLOCK
3233
                 }
3311
                 }
3234
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
3312
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
@@ -3336,8 +3414,8 @@ bool MBIC_Operate(uint8_t* data){
3336
                     HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_RESET);//CLOCK        
3414
                     HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_RESET);//CLOCK        
3337
                 }
3415
                 }
3338
                 else{
3416
                 else{
3339
-                    bluecell_Prevdatastatus.ATT_UL1_H = ~bluecell_Prevdatastatus.ATT_UL1_H;
3340
-                    bluecell_Prevdatastatus.ATT_UL1_L = ~bluecell_Prevdatastatus.ATT_UL1_L;
3417
+                    bluecell_Prevdatastatus.ATT_UL1_H = 0xFF;
3418
+                    bluecell_Prevdatastatus.ATT_UL1_L = 0xFF;
3341
                     HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_SET);//CLOCK
3419
                     HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_SET);//CLOCK
3342
                 }
3420
                 }
3343
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
3421
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
@@ -3349,8 +3427,8 @@ bool MBIC_Operate(uint8_t* data){
3349
                     HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_RESET);//CLOCK        
3427
                     HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_RESET);//CLOCK        
3350
                 }
3428
                 }
3351
                 else{
3429
                 else{
3352
-                    bluecell_Prevdatastatus.ATT_UL2_H = ~bluecell_Prevdatastatus.ATT_UL2_H;
3353
-                    bluecell_Prevdatastatus.ATT_UL2_L = ~bluecell_Prevdatastatus.ATT_UL2_L;
3430
+                    bluecell_Prevdatastatus.ATT_UL2_H = 0xFF;
3431
+                    bluecell_Prevdatastatus.ATT_UL2_L = 0xFF;
3354
                     HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_SET);//CLOCK
3432
                     HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_SET);//CLOCK
3355
                 }
3433
                 }
3356
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
3434
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
@@ -3363,8 +3441,8 @@ bool MBIC_Operate(uint8_t* data){
3363
                     HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_RESET);//CLOCK        
3441
                     HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_RESET);//CLOCK        
3364
                 }
3442
                 }
3365
                 else{
3443
                 else{
3366
-                    bluecell_Prevdatastatus.ATT_UL3_H = ~bluecell_Prevdatastatus.ATT_UL3_H;
3367
-                    bluecell_Prevdatastatus.ATT_UL3_L = ~bluecell_Prevdatastatus.ATT_UL3_L;
3444
+                    bluecell_Prevdatastatus.ATT_UL3_H = 0xFF;
3445
+                    bluecell_Prevdatastatus.ATT_UL3_L =0xFF;
3368
                     HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_SET);//CLOCK
3446
                     HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_SET);//CLOCK
3369
                 }
3447
                 }
3370
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
3448
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
@@ -3377,8 +3455,8 @@ bool MBIC_Operate(uint8_t* data){
3377
                     HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_RESET);//CLOCK        
3455
                     HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_RESET);//CLOCK        
3378
                 }
3456
                 }
3379
                 else{
3457
                 else{
3380
-                    bluecell_Prevdatastatus.ATT_UL4_H = ~bluecell_Prevdatastatus.ATT_UL4_H;
3381
-                    bluecell_Prevdatastatus.ATT_UL4_L = ~bluecell_Prevdatastatus.ATT_UL4_L;
3458
+                    bluecell_Prevdatastatus.ATT_UL4_H = 0xFF;
3459
+                    bluecell_Prevdatastatus.ATT_UL4_L = 0xFF;
3382
                     HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_SET);//CLOCK
3460
                     HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_SET);//CLOCK
3383
                 }
3461
                 }
3384
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
3462
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
@@ -5078,9 +5156,9 @@ void DLI_ShutdownAlarmCheck(){
5078
     double temp = 0;
5156
     double temp = 0;
5079
     double ret = 0;
5157
     double ret = 0;
5080
     int8_t ResdBm[4] = {0,};
5158
     int8_t ResdBm[4] = {0,};
5159
+    /*DLI Shutdown On*/
5081
     if(bluecell_Currdatastatus.DLI_Shutdown_ON_OFF == true){    
5160
     if(bluecell_Currdatastatus.DLI_Shutdown_ON_OFF == true){    
5082
-       if(ADC_Alarm_DL_Shutdown_Set[DET_Alarm_DL1_Shutdown_Index] == true
5083
-                &&DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL1_Shutdown_Index] >= MBIC_ON_SHUTDOWN_MAINTAIN_SEC)
5161
+       if(DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL1_Shutdown_Index] >= MBIC_ON_SHUTDOWN_MAINTAIN_SEC)
5084
               {
5162
               {
5085
                
5163
                
5086
                    if(bluecell_Currdatastatus.DLI_Shutdown_Retry_Count1 >= RETRYCNT_MAX){
5164
                    if(bluecell_Currdatastatus.DLI_Shutdown_Retry_Count1 >= RETRYCNT_MAX){
@@ -5097,8 +5175,8 @@ void DLI_ShutdownAlarmCheck(){
5097
                        if(DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL1_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5175
                        if(DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL1_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5098
                            /*Path Recovery*/
5176
                            /*Path Recovery*/
5099
                            HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_SET);//CLOCK
5177
                            HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_SET);//CLOCK
5100
-                           bluecell_Prevdatastatus.ATT_DL1_H = ~bluecell_Prevdatastatus.ATT_DL1_H;
5101
-                           bluecell_Prevdatastatus.ATT_DL1_L = ~bluecell_Prevdatastatus.ATT_DL1_L;
5178
+                           bluecell_Prevdatastatus.ATT_DL1_H = 0xFF;
5179
+                           bluecell_Prevdatastatus.ATT_DL1_L =0xFF;
5102
                            bluecell_Currdatastatus.ATT_DL1_PATH = true;
5180
                            bluecell_Currdatastatus.ATT_DL1_PATH = true;
5103
                            CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5181
                            CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5104
                            DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL1_Shutdown_Index] = 0;
5182
                            DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL1_Shutdown_Index] = 0;
@@ -5116,6 +5194,7 @@ void DLI_ShutdownAlarmCheck(){
5116
                    }
5194
                    }
5117
                } 
5195
                } 
5118
                
5196
                
5197
+#if 0 // PYJ.2020.06.19_BEGIN -- 
5119
                if(ADC_Alarm_DL_Shutdown_Set[DET_Alarm_DL2_Shutdown_Index] == true
5198
                if(ADC_Alarm_DL_Shutdown_Set[DET_Alarm_DL2_Shutdown_Index] == true
5120
                 &&DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL2_Shutdown_Index] >= MBIC_ON_SHUTDOWN_MAINTAIN_SEC)
5199
                 &&DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL2_Shutdown_Index] >= MBIC_ON_SHUTDOWN_MAINTAIN_SEC)
5121
               {
5200
               {
@@ -5134,8 +5213,8 @@ void DLI_ShutdownAlarmCheck(){
5134
                        if(DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL2_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5213
                        if(DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL2_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5135
                            /*Path Recovery*/
5214
                            /*Path Recovery*/
5136
                            HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_SET);//CLOCK
5215
                            HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_SET);//CLOCK
5137
-                           bluecell_Prevdatastatus.ATT_DL2_H = ~bluecell_Prevdatastatus.ATT_DL2_H;
5138
-                           bluecell_Prevdatastatus.ATT_DL2_L = ~bluecell_Prevdatastatus.ATT_DL2_L;
5216
+                           bluecell_Prevdatastatus.ATT_DL2_H = 0xFF;
5217
+                           bluecell_Prevdatastatus.ATT_DL2_L = 0xFF;
5139
                            bluecell_Currdatastatus.ATT_DL2_PATH = true;
5218
                            bluecell_Currdatastatus.ATT_DL2_PATH = true;
5140
                            CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5219
                            CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5141
                            DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL2_Shutdown_Index] = 0;
5220
                            DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL2_Shutdown_Index] = 0;
@@ -5171,8 +5250,8 @@ void DLI_ShutdownAlarmCheck(){
5171
                        if(DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL3_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5250
                        if(DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL3_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5172
                            /*Path Recovery*/
5251
                            /*Path Recovery*/
5173
                            HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_SET);//CLOCK
5252
                            HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_SET);//CLOCK
5174
-                           bluecell_Prevdatastatus.ATT_DL3_H = ~bluecell_Prevdatastatus.ATT_DL3_H;
5175
-                           bluecell_Prevdatastatus.ATT_DL3_L = ~bluecell_Prevdatastatus.ATT_DL3_L;
5253
+                           bluecell_Prevdatastatus.ATT_DL3_H = 0xFF;
5254
+                           bluecell_Prevdatastatus.ATT_DL3_L = 0xFF;
5176
                            bluecell_Currdatastatus.ATT_DL3_PATH = true;
5255
                            bluecell_Currdatastatus.ATT_DL3_PATH = true;
5177
                            CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5256
                            CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5178
                            DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL3_Shutdown_Index] = 0;
5257
                            DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL3_Shutdown_Index] = 0;
@@ -5209,8 +5288,8 @@ void DLI_ShutdownAlarmCheck(){
5209
                        if(DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL4_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5288
                        if(DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL4_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5210
                            /*Path Recovery*/
5289
                            /*Path Recovery*/
5211
                            HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_SET);//CLOCK
5290
                            HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_SET);//CLOCK
5212
-                           bluecell_Prevdatastatus.ATT_DL4_H = ~bluecell_Prevdatastatus.ATT_DL4_H;
5213
-                           bluecell_Prevdatastatus.ATT_DL4_L = ~bluecell_Prevdatastatus.ATT_DL4_L;
5291
+                           bluecell_Prevdatastatus.ATT_DL4_H =0xFF;
5292
+                           bluecell_Prevdatastatus.ATT_DL4_L = 0xFF;
5214
                            bluecell_Currdatastatus.ATT_DL4_PATH = true;
5293
                            bluecell_Currdatastatus.ATT_DL4_PATH = true;
5215
                            CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5294
                            CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5216
                            DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL4_Shutdown_Index] = 0;
5295
                            DET_DL_Shutdown_On_AlarmTimerCnt[DET_Alarm_DL4_Shutdown_Index] = 0;
@@ -5227,6 +5306,7 @@ void DLI_ShutdownAlarmCheck(){
5227
                        bluecell_Currdatastatus.DLI_Shutdown_Alarm4       = false;            
5306
                        bluecell_Currdatastatus.DLI_Shutdown_Alarm4       = false;            
5228
                    }
5307
                    }
5229
                }         
5308
                }         
5309
+#endif // PYJ.2020.06.19_END -- 
5230
    }
5310
    }
5231
     else{
5311
     else{
5232
         bluecell_Currdatastatus.ALARM_DLI_SHTUTDOWN = 0;
5312
         bluecell_Currdatastatus.ALARM_DLI_SHTUTDOWN = 0;
@@ -5259,16 +5339,14 @@ void ULO_ShutdownAlarmCheck(){
5259
 //        }
5339
 //        }
5260
         
5340
         
5261
     if(bluecell_Currdatastatus.ULO_Shutdown_ON_OFF == true){
5341
     if(bluecell_Currdatastatus.ULO_Shutdown_ON_OFF == true){
5262
-
5263
-        if(ADC_Alarm_UL_Shutdown_Set[DET_Alarm_UL1_Shutdown_Index] == true
5264
-         &&DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL1_Shutdown_Index] >= MBIC_ON_SHUTDOWN_MAINTAIN_SEC)
5342
+       if(DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL1_Shutdown_Index] >= MBIC_ON_SHUTDOWN_MAINTAIN_SEC)
5265
        {
5343
        {
5266
         
5344
         
5267
             if(bluecell_Currdatastatus.ULO_Shutdown_Retry_Count1 >= RETRYCNT_MAX){
5345
             if(bluecell_Currdatastatus.ULO_Shutdown_Retry_Count1 >= RETRYCNT_MAX){
5268
                 bluecell_Currdatastatus.ALARM_ULO_SHTUTDOWN |= ALARM_ULO_SHUTDOWN_P1;
5346
                 bluecell_Currdatastatus.ALARM_ULO_SHTUTDOWN |= ALARM_ULO_SHUTDOWN_P1;
5269
                 bluecell_Currdatastatus.ULO_Shutdown_Alarm1       = true;
5347
                 bluecell_Currdatastatus.ULO_Shutdown_Alarm1       = true;
5270
-                HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_RESET);//CLOCK            
5271
                 bluecell_Currdatastatus.ATT_UL1_PATH = false;
5348
                 bluecell_Currdatastatus.ATT_UL1_PATH = false;
5349
+                HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,bluecell_Currdatastatus.ATT_UL1_PATH);//CLOCK            
5272
             }else{
5350
             }else{
5273
                 if(HAL_GPIO_ReadPin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin) == GPIO_PIN_SET)
5351
                 if(HAL_GPIO_ReadPin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin) == GPIO_PIN_SET)
5274
                 {//CLOCK;        
5352
                 {//CLOCK;        
@@ -5278,8 +5356,8 @@ void ULO_ShutdownAlarmCheck(){
5278
                 if(DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL1_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5356
                 if(DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL1_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5279
                     /*Path Recovery*/
5357
                     /*Path Recovery*/
5280
                     HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_SET);//CLOCK
5358
                     HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_SET);//CLOCK
5281
-                    bluecell_Prevdatastatus.ATT_UL1_H = ~bluecell_Prevdatastatus.ATT_UL1_H;
5282
-                    bluecell_Prevdatastatus.ATT_UL1_L = ~bluecell_Prevdatastatus.ATT_UL1_L;
5359
+                    bluecell_Prevdatastatus.ATT_UL1_H = 0xFF;
5360
+                    bluecell_Prevdatastatus.ATT_UL1_L = 0xFF;
5283
                     bluecell_Currdatastatus.ATT_UL1_PATH = true;
5361
                     bluecell_Currdatastatus.ATT_UL1_PATH = true;
5284
                     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5362
                     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5285
                     DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL1_Shutdown_Index] = 0;
5363
                     DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL1_Shutdown_Index] = 0;
@@ -5297,6 +5375,7 @@ void ULO_ShutdownAlarmCheck(){
5297
             }
5375
             }
5298
         } 
5376
         } 
5299
         
5377
         
5378
+#if 0 // PYJ.2020.06.19_BEGIN -- 
5300
         if(ADC_Alarm_UL_Shutdown_Set[DET_Alarm_UL2_Shutdown_Index] == true
5379
         if(ADC_Alarm_UL_Shutdown_Set[DET_Alarm_UL2_Shutdown_Index] == true
5301
          &&DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL2_Shutdown_Index] >= MBIC_ON_SHUTDOWN_MAINTAIN_SEC)
5380
          &&DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL2_Shutdown_Index] >= MBIC_ON_SHUTDOWN_MAINTAIN_SEC)
5302
        {
5381
        {
@@ -5315,8 +5394,8 @@ void ULO_ShutdownAlarmCheck(){
5315
                 if(DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL2_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5394
                 if(DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL2_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5316
                     /*Path Recovery*/
5395
                     /*Path Recovery*/
5317
                     HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_SET);//CLOCK
5396
                     HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_SET);//CLOCK
5318
-                    bluecell_Prevdatastatus.ATT_UL2_H = ~bluecell_Prevdatastatus.ATT_UL2_H;
5319
-                    bluecell_Prevdatastatus.ATT_UL2_L = ~bluecell_Prevdatastatus.ATT_UL2_L;
5397
+                    bluecell_Prevdatastatus.ATT_UL2_H = 0xFF;
5398
+                    bluecell_Prevdatastatus.ATT_UL2_L = 0xFF;
5320
                     bluecell_Currdatastatus.ATT_UL2_PATH = true;
5399
                     bluecell_Currdatastatus.ATT_UL2_PATH = true;
5321
                     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5400
                     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5322
                     DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL2_Shutdown_Index] = 0;
5401
                     DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL2_Shutdown_Index] = 0;
@@ -5352,8 +5431,8 @@ void ULO_ShutdownAlarmCheck(){
5352
                 if(DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL3_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5431
                 if(DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL3_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5353
                     /*Path Recovery*/
5432
                     /*Path Recovery*/
5354
                     HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_SET);//CLOCK
5433
                     HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_SET);//CLOCK
5355
-                    bluecell_Prevdatastatus.ATT_UL3_H = ~bluecell_Prevdatastatus.ATT_UL3_H;
5356
-                    bluecell_Prevdatastatus.ATT_UL3_L = ~bluecell_Prevdatastatus.ATT_UL3_L;
5434
+                    bluecell_Prevdatastatus.ATT_UL3_H = 0xFF;
5435
+                    bluecell_Prevdatastatus.ATT_UL3_L =0xFF;
5357
                     bluecell_Currdatastatus.ATT_UL3_PATH = true;
5436
                     bluecell_Currdatastatus.ATT_UL3_PATH = true;
5358
                     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5437
                     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5359
                     DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL3_Shutdown_Index] = 0;
5438
                     DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL3_Shutdown_Index] = 0;
@@ -5390,8 +5469,8 @@ void ULO_ShutdownAlarmCheck(){
5390
                 if(DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL4_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5469
                 if(DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL4_Shutdown_Index] >= MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC){
5391
                     /*Path Recovery*/
5470
                     /*Path Recovery*/
5392
                     HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_SET);//CLOCK
5471
                     HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_SET);//CLOCK
5393
-                    bluecell_Prevdatastatus.ATT_UL4_H = ~bluecell_Prevdatastatus.ATT_UL4_H;
5394
-                    bluecell_Prevdatastatus.ATT_UL4_L = ~bluecell_Prevdatastatus.ATT_UL4_L;
5472
+                    bluecell_Prevdatastatus.ATT_UL4_H = 0xFF;
5473
+                    bluecell_Prevdatastatus.ATT_UL4_L = 0xFF;
5395
                     bluecell_Currdatastatus.ATT_UL4_PATH = true;
5474
                     bluecell_Currdatastatus.ATT_UL4_PATH = true;
5396
                     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5475
                     CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5397
                     DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL4_Shutdown_Index] = 0;
5476
                     DET_UL_Shutdown_On_AlarmTimerCnt[DET_Alarm_UL4_Shutdown_Index] = 0;
@@ -5408,6 +5487,7 @@ void ULO_ShutdownAlarmCheck(){
5408
                 bluecell_Currdatastatus.ULO_Shutdown_Alarm4       = false;            
5487
                 bluecell_Currdatastatus.ULO_Shutdown_Alarm4       = false;            
5409
             }
5488
             }
5410
         }         
5489
         }         
5490
+#endif // PYJ.2020.06.19_END -- 
5411
 
5491
 
5412
     }
5492
     }
5413
     else{
5493
     else{
@@ -5600,6 +5680,28 @@ void Alarm_Check(){
5600
     DLI_ShutdownAlarmCheck();
5680
     DLI_ShutdownAlarmCheck();
5601
     DLI_LevelAlarmCheck();
5681
     DLI_LevelAlarmCheck();
5602
     ULO_LevelAlarmCheck();
5682
     ULO_LevelAlarmCheck();
5683
+}
5684
+#if 0 // PYJ.2020.06.19_BEGIN -- 
5685
+void MBIC_ShutDown_Check(){
5686
+    
5687
+    /*
5688
+        - Timer Cnt Init 
5689
+        - Shutdown inc
5690
+        - Path Off 
5691
+        
5692
+    */
5693
+    if(ShutdownCnt_Get(MBIC_Shutdown_DL1) > MBIC_ON_SHUTDOWN_MAINTAIN_SEC){
5694
+        bluecell_Currdatastatus.DLI_Shutdown_Retry_Count1++;
5695
+        bluecell_Currdatastatus.ATT_DL1_PATH = true;
5696
+    }
5697
+    ShutdownCnt_Get(MBIC_Shutdown_DL2);
5698
+    ShutdownCnt_Get(MBIC_Shutdown_DL3);
5699
+    ShutdownCnt_Get(MBIC_Shutdown_DL4);
5700
+
5701
+    ShutdownCnt_Get(MBIC_Shutdown_UL1);
5702
+    ShutdownCnt_Get(MBIC_Shutdown_UL2);
5703
+    ShutdownCnt_Get(MBIC_Shutdown_UL3);
5704
+    ShutdownCnt_Get(MBIC_Shutdown_UL4);
5603
     
5705
     
5604
-
5605
 }
5706
 }
5707
+#endif // PYJ.2020.06.19_END -- 

+ 43 - 8
Bluecell_Src/PE43711.c

@@ -15,7 +15,7 @@ void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
15
 
15
 
16
 ALL_PE43711_st ALL_ATT;
16
 ALL_PE43711_st ALL_ATT;
17
 
17
 
18
-PE43711_st ATT_DL1 ={
18
+volatile PE43711_st ATT_DL1 ={
19
     ATT_CLOCK1_GPIO_Port,
19
     ATT_CLOCK1_GPIO_Port,
20
     ATT_CLOCK1_Pin,
20
     ATT_CLOCK1_Pin,
21
     ATT_DATA1_GPIO_Port,
21
     ATT_DATA1_GPIO_Port,
@@ -23,7 +23,7 @@ PE43711_st ATT_DL1 ={
23
     ATT_EN_DL1_GPIO_Port,
23
     ATT_EN_DL1_GPIO_Port,
24
     ATT_EN_DL1_Pin,
24
     ATT_EN_DL1_Pin,
25
 }; 
25
 }; 
26
-PE43711_st ATT_UL1 ={
26
+volatile PE43711_st ATT_UL1 ={
27
     ATT_CLOCK1_GPIO_Port,
27
     ATT_CLOCK1_GPIO_Port,
28
     ATT_CLOCK1_Pin,
28
     ATT_CLOCK1_Pin,
29
     ATT_DATA1_GPIO_Port,
29
     ATT_DATA1_GPIO_Port,
@@ -31,7 +31,7 @@ PE43711_st ATT_UL1 ={
31
     ATT_EN_UL1_GPIO_Port,
31
     ATT_EN_UL1_GPIO_Port,
32
     ATT_EN_UL1_Pin,
32
     ATT_EN_UL1_Pin,
33
 }; 
33
 }; 
34
-PE43711_st ATT_DL2 ={
34
+volatile PE43711_st ATT_DL2 ={
35
     ATT_CLOCK2_GPIO_Port,
35
     ATT_CLOCK2_GPIO_Port,
36
     ATT_CLOCK2_Pin,
36
     ATT_CLOCK2_Pin,
37
     ATT_DATA2_GPIO_Port,
37
     ATT_DATA2_GPIO_Port,
@@ -39,14 +39,15 @@ PE43711_st ATT_DL2 ={
39
     ATT_EN_DL2_GPIO_Port,
39
     ATT_EN_DL2_GPIO_Port,
40
     ATT_EN_DL2_Pin,
40
     ATT_EN_DL2_Pin,
41
 }; 
41
 }; 
42
-PE43711_st ATT_UL2 ={
42
+volatile PE43711_st ATT_UL2 ={
43
     ATT_CLOCK2_GPIO_Port,
43
     ATT_CLOCK2_GPIO_Port,
44
     ATT_CLOCK2_Pin,
44
     ATT_CLOCK2_Pin,
45
     ATT_DATA2_GPIO_Port,
45
     ATT_DATA2_GPIO_Port,
46
     ATT_DATA2_Pin,
46
     ATT_DATA2_Pin,
47
     ATT_EN_UL2_GPIO_Port,
47
     ATT_EN_UL2_GPIO_Port,
48
     ATT_EN_UL2_Pin,
48
     ATT_EN_UL2_Pin,
49
-}; PE43711_st ATT_DL3 ={
49
+};
50
+volatile PE43711_st ATT_DL3 ={
50
     ATT_CLOCK3_GPIO_Port,
51
     ATT_CLOCK3_GPIO_Port,
51
     ATT_CLOCK3_Pin,
52
     ATT_CLOCK3_Pin,
52
     ATT_DATA3_GPIO_Port,
53
     ATT_DATA3_GPIO_Port,
@@ -54,14 +55,15 @@ PE43711_st ATT_UL2 ={
54
     ATT_EN_DL3_GPIO_Port,
55
     ATT_EN_DL3_GPIO_Port,
55
     ATT_EN_DL3_Pin,
56
     ATT_EN_DL3_Pin,
56
 }; 
57
 }; 
57
-PE43711_st ATT_UL3 ={
58
+volatile PE43711_st ATT_UL3 ={
58
     ATT_CLOCK3_GPIO_Port,
59
     ATT_CLOCK3_GPIO_Port,
59
     ATT_CLOCK3_Pin,
60
     ATT_CLOCK3_Pin,
60
     ATT_DATA3_GPIO_Port,
61
     ATT_DATA3_GPIO_Port,
61
     ATT_DATA3_Pin,
62
     ATT_DATA3_Pin,
62
     ATT_EN_UL3_GPIO_Port,
63
     ATT_EN_UL3_GPIO_Port,
63
     ATT_EN_UL3_Pin,
64
     ATT_EN_UL3_Pin,
64
-}; PE43711_st ATT_DL4 ={
65
+}; 
66
+    volatile PE43711_st ATT_DL4 ={
65
     ATT_CLOCK4_GPIO_Port,
67
     ATT_CLOCK4_GPIO_Port,
66
     ATT_CLOCK4_Pin,
68
     ATT_CLOCK4_Pin,
67
     ATT_DATA4_GPIO_Port,
69
     ATT_DATA4_GPIO_Port,
@@ -69,7 +71,7 @@ PE43711_st ATT_UL3 ={
69
     ATT_EN_DL4_GPIO_Port,
71
     ATT_EN_DL4_GPIO_Port,
70
     ATT_EN_DL4_Pin,
72
     ATT_EN_DL4_Pin,
71
 }; 
73
 }; 
72
-PE43711_st ATT_UL4 ={
74
+volatile PE43711_st ATT_UL4 ={
73
     ATT_CLOCK4_GPIO_Port,
75
     ATT_CLOCK4_GPIO_Port,
74
     ATT_CLOCK4_Pin,
76
     ATT_CLOCK4_Pin,
75
     ATT_DATA4_GPIO_Port,
77
     ATT_DATA4_GPIO_Port,
@@ -194,3 +196,36 @@ void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data){
194
     Pol_Delay_us(10);
196
     Pol_Delay_us(10);
195
     HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
197
     HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
196
 }
198
 }
199
+
200
+
201
+void PE43711_UL4_atten_ctrl(uint8_t data){
202
+    uint8_t i = 0;
203
+    uint8_t temp = 0;
204
+    //data = 4 * data; // ATTEN ERROR 수정 
205
+    temp = (uint8_t)data;
206
+    
207
+    HAL_GPIO_WritePin(ATT_EN_UL4_GPIO_Port,ATT_EN_UL4_Pin,GPIO_PIN_RESET);
208
+    Pol_Delay_us(10);
209
+    for(i = 0; i < 8; i++){
210
+        if((uint8_t)temp & 0x01){
211
+           HAL_GPIO_WritePin(ATT_DATA4_GPIO_Port,ATT_DATA4_Pin,GPIO_PIN_SET);//DATA
212
+        }
213
+           else{
214
+           HAL_GPIO_WritePin(ATT_DATA4_GPIO_Port,ATT_DATA4_Pin,GPIO_PIN_RESET);//DATA
215
+           }
216
+
217
+		HAL_GPIO_WritePin(ATT_CLOCK4_GPIO_Port,ATT_CLOCK4_Pin,GPIO_PIN_SET);//CLOCK
218
+		Pol_Delay_us(10);
219
+		HAL_GPIO_WritePin(ATT_CLOCK4_GPIO_Port,ATT_CLOCK4_Pin,GPIO_PIN_RESET);//CLOCK
220
+		Pol_Delay_us(10);
221
+		temp >>= 1;
222
+    }
223
+    
224
+	HAL_GPIO_WritePin(ATT_CLOCK4_GPIO_Port,ATT_CLOCK4_Pin,GPIO_PIN_RESET);//CLOCK
225
+    HAL_GPIO_WritePin(ATT_DATA4_GPIO_Port,ATT_DATA4_Pin,GPIO_PIN_RESET);//DATA
226
+    Pol_Delay_us(10);
227
+    HAL_GPIO_WritePin(ATT_EN_UL4_GPIO_Port,ATT_EN_UL4_Pin,GPIO_PIN_SET);//LE
228
+    Pol_Delay_us(10);
229
+    HAL_GPIO_WritePin(ATT_EN_UL4_GPIO_Port,ATT_EN_UL4_Pin,GPIO_PIN_RESET);
230
+}
231
+

+ 2 - 2
Bluecell_Src/eeprom.c

@@ -168,7 +168,7 @@ HAL_StatusTypeDef EEPROM_M24C08_write(uint8_t devid,uint16_t Address,uint8_t* da
168
     if(sizeremain > 0){
168
     if(sizeremain > 0){
169
 //         printf("Remain Data Write Start ");
169
 //         printf("Remain Data Write Start ");
170
         for(int i = 0; i < sizeremain; i++){
170
         for(int i = 0; i < sizeremain; i++){
171
-            ret = HAL_I2C_Mem_Write(&hi2c2, devid  ,((Address + addrees_inc + i)& 0xFFFF) ,  I2C_MEMADD_SIZE_16BIT, &data[addrees_inc + i], 1, 1024);
171
+            ret = HAL_I2C_Mem_Write(&hi2c2, devid  ,((Address + addrees_inc + i)& 0xFFFF) ,  I2C_MEMADD_SIZE_16BIT, &data[addrees_inc + i], 1, 0xFFFF);
172
          //       EEPROM24XX_Save( Address,data, size);
172
          //       EEPROM24XX_Save( Address,data, size);
173
          if(ret == HAL_ERROR)
173
          if(ret == HAL_ERROR)
174
              printf("Write ERR\r\n");
174
              printf("Write ERR\r\n");
@@ -191,7 +191,7 @@ HAL_StatusTypeDef EEPROM_M24C08_Zerowrite(uint8_t devid,uint16_t Address){
191
 
191
 
192
     for(int i = 0 ; i < 128; i++ ){
192
     for(int i = 0 ; i < 128; i++ ){
193
          addrees_inc = i * MAXEEPROM_LENG;
193
          addrees_inc = i * MAXEEPROM_LENG;
194
-         ret = HAL_I2C_Mem_Write(&hi2c2, devid  ,((Address + addrees_inc) & 0xFFFF) ,  I2C_MEMADD_SIZE_16BIT, &data[0], MAXEEPROM_LENG, 1024);
194
+         ret = HAL_I2C_Mem_Write(&hi2c2, devid  ,((Address + addrees_inc) & 0xFFFF) ,  I2C_MEMADD_SIZE_16BIT, &data[0], MAXEEPROM_LENG, 0xFFFF);
195
          if(ret == HAL_ERROR)
195
          if(ret == HAL_ERROR)
196
              printf("Write ERR\r\n");
196
              printf("Write ERR\r\n");
197
          else
197
          else

+ 3 - 3
Bluecell_Src/uart.c

@@ -53,7 +53,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
53
     if (pQueue->data >= QUEUE_BUFFER_LENGTH)
53
     if (pQueue->data >= QUEUE_BUFFER_LENGTH)
54
         GetDataFromUartQueue(huart);
54
         GetDataFromUartQueue(huart);
55
     HAL_UART_Receive_DMA(&hTerminal, pQueue->Buffer + pQueue->head, 1);
55
     HAL_UART_Receive_DMA(&hTerminal, pQueue->Buffer + pQueue->head, 1);
56
-    HAL_UART_Receive_DMA(&hTest, pQueue->Buffer + pQueue->head, 1);
56
+  //  HAL_UART_Receive_DMA(&hTest, pQueue->Buffer + pQueue->head, 1);
57
    // Set_UartRcv(true);
57
    // Set_UartRcv(true);
58
 }
58
 }
59
 
59
 
@@ -98,6 +98,7 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
98
         //RF_Ctrl_Main(&uart_buf[Header]);
98
         //RF_Ctrl_Main(&uart_buf[Header]);
99
 //        HAL_UART_Transmit(dst, &temp_buf[BLUECELL_HEADER00], 11, 3000);
99
 //        HAL_UART_Transmit(dst, &temp_buf[BLUECELL_HEADER00], 11, 3000);
100
 #if 1 // PYJ.2019.07.15_BEGIN --
100
 #if 1 // PYJ.2019.07.15_BEGIN --
101
+            printf("\r\n[RX]");
101
             for(int i = 0; i < cnt; i++){
102
             for(int i = 0; i < cnt; i++){
102
                 printf("%02x ",uart_buf[i]);
103
                 printf("%02x ",uart_buf[i]);
103
             }
104
             }
@@ -144,8 +145,7 @@ void Uart1_Data_Send(uint8_t* data,uint16_t size){
144
     printf("\r\n [TX] : ");
145
     printf("\r\n [TX] : ");
145
     for(int i = 0; i< size; i++)
146
     for(int i = 0; i< size; i++)
146
         printf(" %02x ",data[i]);
147
         printf(" %02x ",data[i]);
147
-    printf("END\r\n");
148
-//    printf("\r\n\tCOUNT : %d",size);
148
+    printf("\r\n\tCOUNT : %d \r\n",size);
149
 //    printf("\r\n");
149
 //    printf("\r\n");
150
     
150
     
151
 }
151
 }

+ 1 - 1
STM32F103ZET_JDASMBIC.elf.launch

@@ -53,5 +53,5 @@
53
 </listAttribute>
53
 </listAttribute>
54
 <stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;&#13;&#10;"/>
54
 <stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;&#13;&#10;"/>
55
 <stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
55
 <stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
56
-<stringAttribute key="saved_expressions&lt;seperator&gt;Unknown" value="uart_buf,data"/>
56
+<stringAttribute key="saved_expressions&lt;seperator&gt;Unknown" value="uart_buf"/>
57
 </launchConfiguration>
57
 </launchConfiguration>

+ 70 - 22
Src/main.c

@@ -75,6 +75,8 @@ volatile uint32_t LDTimerCnt = 0;
75
 
75
 
76
 volatile uint32_t ALCTimerCnt = 0;
76
 volatile uint32_t ALCTimerCnt = 0;
77
 volatile uint32_t AGCTimerCnt = 0;
77
 volatile uint32_t AGCTimerCnt = 0;
78
+volatile uint32_t MBIC_ShutdownCnt[MBIC_Shutdown_MaxIndex] ={ 0,};
79
+
78
 
80
 
79
 volatile uint32_t AGC_On_AlarmTimerCnt[AGC_Alarm_DL_Index_MAX] = {0,};
81
 volatile uint32_t AGC_On_AlarmTimerCnt[AGC_Alarm_DL_Index_MAX] = {0,};
80
 volatile uint32_t AGC_Off_AlarmTimerCnt[AGC_Alarm_DL_Index_MAX] = {0,};
82
 volatile uint32_t AGC_Off_AlarmTimerCnt[AGC_Alarm_DL_Index_MAX] = {0,};
@@ -113,6 +115,8 @@ extern bool ADC_Alarm_UL_Set[DET_Alarm_UL_Index_MAX];
113
 extern uint8_t ALC_AlarmSet[ALC_Alarm_UL_Index_MAX];
115
 extern uint8_t ALC_AlarmSet[ALC_Alarm_UL_Index_MAX];
114
 extern bool AGC_AlarmSet[AGC_Alarm_DL_Index_MAX];
116
 extern bool AGC_AlarmSet[AGC_Alarm_DL_Index_MAX];
115
 extern bool ADC_Alarm_UL_Shutdown_Set[DET_Alarm_UL_Shutdown_Index_MAX];
117
 extern bool ADC_Alarm_UL_Shutdown_Set[DET_Alarm_UL_Shutdown_Index_MAX];
118
+extern bool ADC_Alarm_DL_Shutdown_Set[DET_Alarm_DL_Shutdown_Index_MAX];
119
+
116
 /* USER CODE END PV */
120
 /* USER CODE END PV */
117
 
121
 
118
 /* Private function prototypes -----------------------------------------------*/
122
 /* Private function prototypes -----------------------------------------------*/
@@ -135,6 +139,13 @@ extern void DET_LevelAlarmCheck();
135
 
139
 
136
 /* Private user code ---------------------------------------------------------*/
140
 /* Private user code ---------------------------------------------------------*/
137
 /* USER CODE BEGIN 0 */
141
 /* USER CODE BEGIN 0 */
142
+uint32_t ShutdownCnt_Get(uint8_t index){
143
+    return MBIC_ShutdownCnt[index];
144
+}
145
+void ShutdownCnt_Set(uint8_t index,uint8_t val){
146
+    MBIC_ShutdownCnt[index] = val;
147
+}
148
+
138
 void Pol_Delay_us(volatile uint32_t microseconds)
149
 void Pol_Delay_us(volatile uint32_t microseconds)
139
 {
150
 {
140
   /* Go to number of cycles for system */
151
   /* Go to number of cycles for system */
@@ -354,18 +365,13 @@ int main(void)
354
   HAL_ADC_Start_DMA(&hadc1, (uint16_t*)ADC1value, 4);
365
   HAL_ADC_Start_DMA(&hadc1, (uint16_t*)ADC1value, 4);
355
   HAL_TIM_Base_Start_IT(&htim6);
366
   HAL_TIM_Base_Start_IT(&htim6);
356
 
367
 
368
+
369
+
357
   setbuf(stdout, NULL);
370
   setbuf(stdout, NULL);
358
   PE43711_PinInit();
371
   PE43711_PinInit();
359
   EEPROM_M24C08_Init();
372
   EEPROM_M24C08_Init();
360
-  Bluecell_DataInit();
361
-  Bluecell_AttenInitialize();
362
-#if 1 // PYJ.2020.05.06_BEGIN -- 
363
-    printf("****************************************\r\n");
364
-    printf("MBIC Project\r\n");
365
-    printf("Build at %s %s\r\n", __DATE__, __TIME__);
366
-    printf("Copyright (c) 2020. BLUECELL\r\n");
367
-    printf("****************************************\r\n");
368
-#endif // PYJ.2020.05.06_END --   
373
+
374
+
369
 //  MBIC_APIFLASH_test();
375
 //  MBIC_APIFLASH_test();
370
   //Flash_InitRead();
376
   //Flash_InitRead();
371
 
377
 
@@ -392,6 +398,15 @@ int main(void)
392
 //    uint16_t rrrrrr = 0;
398
 //    uint16_t rrrrrr = 0;
393
 //  rrrrrr = ((CRC16_Generate(&retdate[0], 10)));  
399
 //  rrrrrr = ((CRC16_Generate(&retdate[0], 10)));  
394
 //  printf("CRC : %x \r\n",rrrrrr);
400
 //  printf("CRC : %x \r\n",rrrrrr);
401
+//  Bluecell_DataInit();
402
+//  Bluecell_AttenInitialize();
403
+#if 1 // PYJ.2020.05.06_BEGIN -- 
404
+      printf("****************************************\r\n");
405
+      printf("MBIC Project\r\n");
406
+      printf("Build at %s %s\r\n", __DATE__, __TIME__);
407
+      printf("Copyright (c) 2020. BLUECELL\r\n");
408
+      printf("****************************************\r\n");
409
+#endif // PYJ.2020.05.06_END --   
395
 
410
 
396
   while (1)
411
   while (1)
397
   {
412
   {
@@ -875,18 +890,6 @@ static void MX_GPIO_Init(void)
875
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
890
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
876
   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
891
   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
877
 
892
 
878
-  /*Configure GPIO pins : UNIT_ID0_Pin UNIT_ID1_Pin UNIT_ID2_Pin */
879
-  GPIO_InitStruct.Pin = UNIT_ID0_Pin|UNIT_ID1_Pin|UNIT_ID2_Pin;
880
-  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
881
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
882
-  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
883
-
884
-  /*Configure GPIO pin : UNIT_ID3_Pin */
885
-  GPIO_InitStruct.Pin = UNIT_ID3_Pin;
886
-  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
887
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
888
-  HAL_GPIO_Init(UNIT_ID3_GPIO_Port, &GPIO_InitStruct);
889
-
890
 }
893
 }
891
 
894
 
892
 /* USER CODE BEGIN 4 */
895
 /* USER CODE BEGIN 4 */
@@ -1238,8 +1241,53 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
1238
     }
1241
     }
1239
       /*********************DL LEVEL HIGH END***************************/
1242
       /*********************DL LEVEL HIGH END***************************/
1240
 
1243
 
1244
+#if 0 // PYJ.2020.06.19_BEGIN -- 
1245
+    if(ADC_Alarm_DL_Shutdown_Set[DET_Alarm_DL1_Shutdown_Index] == true){
1246
+        MBIC_ShutdownCnt[MBIC_Shutdown_DL1]++;
1247
+    }else{
1248
+        MBIC_ShutdownCnt[MBIC_Shutdown_DL1] = 0;        
1249
+    }
1250
+    if(ADC_Alarm_DL_Shutdown_Set[DET_Alarm_DL2_Shutdown_Index] == true){
1251
+        MBIC_ShutdownCnt[MBIC_Shutdown_DL2]++;
1252
+    }else{
1253
+        MBIC_ShutdownCnt[MBIC_Shutdown_DL2] = 0;        
1254
+    }
1255
+    if(ADC_Alarm_DL_Shutdown_Set[DET_Alarm_DL3_Shutdown_Index] == true){
1256
+        MBIC_ShutdownCnt[MBIC_Shutdown_DL3]++;
1257
+    }else{
1258
+        MBIC_ShutdownCnt[MBIC_Shutdown_DL3] = 0;        
1259
+    }
1260
+    if(ADC_Alarm_DL_Shutdown_Set[DET_Alarm_DL4_Shutdown_Index] == true){
1261
+        MBIC_ShutdownCnt[MBIC_Shutdown_DL4]++;
1262
+    }else{
1263
+        MBIC_ShutdownCnt[MBIC_Shutdown_DL4] = 0;        
1264
+    }
1265
+
1266
+    if(ADC_Alarm_UL_Shutdown_Set[DET_Alarm_UL1_Shutdown_Index] == true){
1267
+        MBIC_ShutdownCnt[MBIC_Shutdown_UL1]++;
1268
+    }else{
1269
+        MBIC_ShutdownCnt[MBIC_Shutdown_UL1] = 0;        
1270
+    }
1271
+    if(ADC_Alarm_UL_Shutdown_Set[DET_Alarm_UL2_Shutdown_Index] == true){
1272
+        MBIC_ShutdownCnt[MBIC_Shutdown_UL2]++;
1273
+    }else{
1274
+        MBIC_ShutdownCnt[MBIC_Shutdown_UL2] = 0;        
1275
+    }
1276
+    if(ADC_Alarm_UL_Shutdown_Set[DET_Alarm_UL3_Shutdown_Index] == true){
1277
+        MBIC_ShutdownCnt[MBIC_Shutdown_UL3]++;
1278
+    }else{
1279
+        MBIC_ShutdownCnt[MBIC_Shutdown_UL3] = 0;        
1280
+    }
1281
+    if(ADC_Alarm_UL_Shutdown_Set[DET_Alarm_UL4_Shutdown_Index] == true){
1282
+        MBIC_ShutdownCnt[MBIC_Shutdown_UL4]++;
1283
+    }else{
1284
+        MBIC_ShutdownCnt[MBIC_Shutdown_UL4] = 0;        
1285
+    }
1286
+#endif // PYJ.2020.06.19_END -- 
1287
+
1288
+
1289
+    /*3 Sec Time Cnt */
1241
     
1290
     
1242
-      /*3 Sec Time Cnt */
1243
       if(AlarmTimerOnSet == true){
1291
       if(AlarmTimerOnSet == true){
1244
         if(AlarmTimerOnCnt == 0xFFFFFFFF)
1292
         if(AlarmTimerOnCnt == 0xFFFFFFFF)
1245
             AlarmTimerOnCnt = MBIC_ON_MAINTAIN_SEC;
1293
             AlarmTimerOnCnt = MBIC_ON_MAINTAIN_SEC;