瀏覽代碼

ALC AGC 기능 추가 / USER 프로토콜 추가 //EEPROM 메모리 이름 변경

ALC AGC Table 추가
PYJ 5 年之前
父節點
當前提交
f8708c2ad9
共有 7 個文件被更改,包括 983 次插入318 次删除
  1. 53 16
      Bluecell_Inc/Bluecell_operate.h
  2. 3 1
      Bluecell_Inc/eeprom.h
  3. 893 288
      Bluecell_Src/Bluecell_operate.c
  4. 6 2
      Bluecell_Src/eeprom.c
  5. 4 2
      Inc/main.h
  6. 2 0
      STM32F103ZET_JDASMBIC.ioc
  7. 22 9
      Src/main.c

+ 53 - 16
Bluecell_Inc/Bluecell_operate.h

@@ -309,6 +309,7 @@ struct Alarm_UL {
309 309
 };
310 310
 enum DATATYPE
311 311
 {
312
+    BLUECELL_SOFTWARERESET = 0,
312 313
 	ATTSET  = 0x11,
313 314
 	ATT_DL1_PATH = 0x12,
314 315
 	ATT_UL1_PATH = 0x16,
@@ -334,6 +335,16 @@ enum DATATYPE
334 335
     ATT_TableGet = 0x71,
335 336
 	Bluecell_StatusReq = 0x77,
336 337
 	Bluecell_StatusSave = 0x78,
338
+    Bluecell_DL1_USER = 0x80,
339
+    Bluecell_DL2_USER = 0x81,
340
+    Bluecell_DL3_USER = 0x82,
341
+    Bluecell_DL4_USER = 0x83,    
342
+    Bluecell_UL1_USER = 0x84,
343
+    Bluecell_UL2_USER = 0x85,
344
+    Bluecell_UL3_USER = 0x86,
345
+    Bluecell_UL4_USER = 0x87,    
346
+    Bluecell_TEMP_USER = 0x88,    
347
+    
337 348
 };
338 349
 
339 350
 
@@ -435,6 +446,17 @@ typedef struct{
435 446
   uint16_t m24_dBm;
436 447
   uint16_t m25_dBm;
437 448
 }DET_DL;
449
+typedef struct{
450
+    uint8_t bluecell_User_DL1_H;  uint8_t bluecell_User_DL1_L;
451
+    uint8_t bluecell_User_DL2_H;  uint8_t bluecell_User_DL2_L;
452
+    uint8_t bluecell_User_DL3_H;  uint8_t bluecell_User_DL3_L;
453
+    uint8_t bluecell_User_DL4_H;  uint8_t bluecell_User_DL4_L;
454
+    uint8_t bluecell_User_UL1_H;  uint8_t bluecell_User_UL1_L;
455
+    uint8_t bluecell_User_UL2_H;  uint8_t bluecell_User_UL2_L;
456
+    uint8_t bluecell_User_UL3_H;  uint8_t bluecell_User_UL3_L;
457
+    uint8_t bluecell_User_UL4_H;  uint8_t bluecell_User_UL4_L;
458
+}USER_ATTEN_st;
459
+
438 460
 typedef struct{
439 461
     uint8_t bluecell_header;
440 462
     uint8_t bluecell_type;
@@ -494,22 +516,31 @@ typedef struct{
494 516
     uint8_t ATT_ALC3_ONOFF;
495 517
     uint8_t ATT_AGC4_ONOFF;
496 518
     uint8_t ATT_ALC4_ONOFF;
497
-    uint8_t ATT_ALC1_H;
498
-    uint8_t ATT_ALC1_L;
499
-    uint8_t ATT_ALC2_H;
500
-    uint8_t ATT_ALC2_L;
501
-    uint8_t ATT_ALC3_H;
502
-    uint8_t ATT_ALC3_L;
503
-    uint8_t ATT_ALC4_H;
504
-    uint8_t ATT_ALC4_L;
505
-    uint8_t ATT_AGC1_H;
506
-    uint8_t ATT_AGC1_L;
507
-    uint8_t ATT_AGC2_H;
508
-    uint8_t ATT_AGC2_L;
509
-    uint8_t ATT_AGC3_H;
510
-    uint8_t ATT_AGC3_L;
511
-    uint8_t ATT_AGC4_H;
512
-    uint8_t ATT_AGC4_L;
519
+    uint8_t ATT_ALC1_MAX_H;
520
+    uint8_t ATT_ALC1_MAX_L;
521
+    uint8_t ATT_ALC2_MAX_H;
522
+    uint8_t ATT_ALC2_MAX_L;
523
+    uint8_t ATT_ALC3_MAX_H;
524
+    uint8_t ATT_ALC3_MAX_L;
525
+    uint8_t ATT_ALC4_MAX_H;
526
+    uint8_t ATT_ALC4_MAX_L;
527
+    uint8_t ATT_ALC1_MIN_H;
528
+    uint8_t ATT_ALC1_MIN_L;
529
+    uint8_t ATT_ALC2_MIN_H;
530
+    uint8_t ATT_ALC2_MIN_L;
531
+    uint8_t ATT_ALC3_MIN_H;
532
+    uint8_t ATT_ALC3_MIN_L;
533
+    uint8_t ATT_ALC4_MIN_H;
534
+    uint8_t ATT_ALC4_MIN_L;
535
+    uint8_t bluecell_User_DL1_H;  uint8_t bluecell_User_DL1_L;
536
+    uint8_t bluecell_User_DL2_H;  uint8_t bluecell_User_DL2_L;
537
+    uint8_t bluecell_User_DL3_H;  uint8_t bluecell_User_DL3_L;
538
+    uint8_t bluecell_User_DL4_H;  uint8_t bluecell_User_DL4_L;
539
+    uint8_t bluecell_User_UL1_H;  uint8_t bluecell_User_UL1_L;
540
+    uint8_t bluecell_User_UL2_H;  uint8_t bluecell_User_UL2_L;
541
+    uint8_t bluecell_User_UL3_H;  uint8_t bluecell_User_UL3_L;
542
+    uint8_t bluecell_User_UL4_H;  uint8_t bluecell_User_UL4_L;
543
+    uint8_t bluecell_User_TEMP_H;  uint8_t bluecell_User_TEMP_L;
513 544
     uint8_t bluecell_crc;
514 545
     uint8_t bluecell_etx;
515 546
 
@@ -829,9 +860,15 @@ extern TEMP_TABLE_st Temp_UL3;
829 860
 extern TEMP_TABLE_st Temp_UL4;
830 861
 
831 862
 extern BLUESTATUS_st bluecell_Currdatastatus;
863
+extern USER_ATTEN_st bluecell_UserData;
864
+extern volatile uint32_t ALCTimerCnt;
865
+extern volatile uint32_t AGCTimerCnt;
832 866
 
833 867
 
834 868
 
835 869
 extern void Bluecell_DataInit();
870
+extern void ALC_Function();
871
+extern void AGC_Function();
872
+
836 873
 
837 874
 #endif /* BLUECELL_OPERATE_H_ */

+ 3 - 1
Bluecell_Inc/eeprom.h

@@ -14,7 +14,7 @@
14 14
 #define EEPROM_ATT_BASE					  0x0000
15 15
 
16 16
 #if 1 // PYJ.2020.04.25_BEGIN -- 
17
-#define EEPROM_WINDOW_STATUS_ADDRESDS	 ((EEPROM_ATT_BASE + (sizeof(BLUESTATUS_st) + 20)) & 0xFFFF) //96byte
17
+#define EEPROM_WINDOW_STATUS_ADDRESDS	 ((EEPROM_ATT_BASE + (sizeof(BLUESTATUS_st) + 2)) & 0xFFFF) //96byte
18 18
 #define EEPROM_ATT_DL1_TABLE_ADDRESDS	 (( EEPROM_WINDOW_STATUS_ADDRESDS  + (sizeof(ATT_TABLE_st))  )& 0xFFFF) //128
19 19
 #define EEPROM_ATT_DL2_TABLE_ADDRESDS	 (( EEPROM_ATT_DL1_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  ) & 0xFFFF) 
20 20
 #define EEPROM_ATT_DL3_TABLE_ADDRESDS	 (( EEPROM_ATT_DL2_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  ) & 0xFFFF)
@@ -39,6 +39,8 @@
39 39
 #define EEPROM_TEMP_UL2_TABLE_ADDRESDS	 (( EEPROM_TEMP_UL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
40 40
 #define EEPROM_TEMP_UL3_TABLE_ADDRESDS	 (( EEPROM_TEMP_UL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
41 41
 #define EEPROM_TEMP_UL4_TABLE_ADDRESDS	 (( EEPROM_TEMP_UL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
42
+#define EEPROM_USER_ATTEN_VALUE_ADDRESDS (( EEPROM_TEMP_UL4_TABLE_ADDRESDS +( sizeof(USER_ATTEN_st)+16))     & 0xFFFF)
43
+
42 44
 #else
43 45
 #define EEPROM_WINDOW_STATUS_ADDRESDS	 ((EEPROM_ATT_BASE + (sizeof(BLUESTATUS_st))) & 0xFFFF) //96byte
44 46
 #define EEPROM_ATT_DL1_TABLE_ADDRESDS	 (( EEPROM_WINDOW_STATUS_ADDRESDS  + (sizeof(ATT_TABLE_st))  )& 0xFFFF) //128

File diff suppressed because it is too large
+ 893 - 288
Bluecell_Src/Bluecell_operate.c


+ 6 - 2
Bluecell_Src/eeprom.c

@@ -30,8 +30,9 @@ bool		EEPROM24XX_Load(uint16_t Address,void *data,size_t size_of_data);
30 30
 
31 31
 
32 32
 void EEPROM_M24C08_Init(void){
33
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_BASE,&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st) );
34
+    
33 35
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_WINDOW_STATUS_ADDRESDS,&Att_DL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
34
-//    printf("%x\r\n",Att_DL1.Table_0_0_dBm_H);
35 36
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_DL1_TABLE_ADDRESDS,&Att_DL2.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
36 37
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_DL2_TABLE_ADDRESDS,&Att_DL3.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
37 38
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_DL3_TABLE_ADDRESDS,&Att_DL4.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
@@ -63,8 +64,11 @@ void EEPROM_M24C08_Init(void){
63 64
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL1_TABLE_ADDRESDS,&Temp_UL2.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
64 65
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL2_TABLE_ADDRESDS,&Temp_UL3.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
65 66
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL3_TABLE_ADDRESDS,&Temp_UL4.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
67
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_USER_ATTEN_VALUE_ADDRESDS,&bluecell_UserData.bluecell_User_DL1_H,sizeof(USER_ATTEN_st) );
68
+
66 69
 
67
-    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL4_TABLE_ADDRESDS,&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st) );
70
+
71
+    
68 72
 //    printf("bluecell_Currdatastatus.ATT_DL1_H : %x\r\n",bluecell_Currdatastatus.ATT_DL1_H);
69 73
 //    printf("bluecell_Currdatastatus.ATT_DL1_L : %x\r\n",bluecell_Currdatastatus.ATT_DL1_L);        
70 74
 //    

+ 4 - 2
Inc/main.h

@@ -60,8 +60,8 @@ extern volatile uint16_t ADC3value[5];
60 60
 extern volatile uint32_t ADC1_Average_value[4];
61 61
 extern volatile uint32_t ADC3_Average_value[5];
62 62
 
63
-extern uint8_t adc1cnt;
64
-extern uint8_t adc3cnt;
63
+extern uint16_t adc1cnt;
64
+extern uint16_t adc3cnt;
65 65
 
66 66
 extern ADC_HandleTypeDef hadc1;
67 67
 extern ADC_HandleTypeDef hadc3;
@@ -71,6 +71,8 @@ extern I2C_HandleTypeDef hi2c2;
71 71
 /* USER CODE END EFP */
72 72
 
73 73
 /* Private defines -----------------------------------------------------------*/
74
+#define LED_FAIL_Pin GPIO_PIN_3
75
+#define LED_FAIL_GPIO_Port GPIOE
74 76
 #define FAIL_MBIC_Pin GPIO_PIN_4
75 77
 #define FAIL_MBIC_GPIO_Port GPIOE
76 78
 #define BOOT_LED_Pin GPIO_PIN_15

+ 2 - 0
STM32F103ZET_JDASMBIC.ioc

@@ -309,6 +309,8 @@ PE15.GPIOParameters=GPIO_Label
309 309
 PE15.GPIO_Label=PATH_EN_UL4
310 310
 PE15.Locked=true
311 311
 PE15.Signal=GPIO_Output
312
+PE3.GPIOParameters=GPIO_Label
313
+PE3.GPIO_Label=LED_FAIL
312 314
 PE3.Locked=true
313 315
 PE3.Signal=GPIO_Output
314 316
 PE4.GPIOParameters=GPIO_Label

+ 22 - 9
Src/main.c

@@ -71,6 +71,10 @@ volatile uint32_t AdcTimerCnt = 0;
71 71
 volatile uint32_t LedTimerCnt = 0;
72 72
 volatile uint32_t UartRxTimerCnt = 0;
73 73
 volatile uint32_t LDTimerCnt = 0;
74
+volatile uint32_t ALCTimerCnt = 0;
75
+volatile uint32_t AGCTimerCnt = 0;
76
+
77
+
74 78
 /* USER CODE END PV */
75 79
 
76 80
 /* Private function prototypes -----------------------------------------------*/
@@ -106,8 +110,8 @@ int _write (int file, uint8_t *ptr, uint16_t len)
106 110
     HAL_UART_Transmit(&huart1, ptr, len,10);
107 111
     return len;
108 112
 }
109
-uint8_t adc1cnt = 0 ;
110
-uint8_t adc3cnt = 0 ;
113
+uint16_t adc1cnt = 0 ;
114
+uint16_t adc3cnt = 0 ;
111 115
 
112 116
 
113 117
 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
@@ -117,7 +121,7 @@ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
117 121
 
118 122
     if(hadc->Instance == hadc1.Instance)
119 123
     {
120
-        if(adc1cnt < 100){
124
+        if(adc1cnt < 500){
121 125
             for(int i = 0; i < 4; i++){
122 126
                 ADC1_Average_value[i] += ADC1value[i]  ;
123 127
             }
@@ -126,7 +130,7 @@ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
126 130
     }
127 131
     if(hadc->Instance == hadc3.Instance)
128 132
     {
129
-        if(adc3cnt < 100){
133
+        if(adc3cnt < 500){
130 134
             for(int i = 0; i < 5; i++){
131 135
                 ADC3_Average_value[i] += ADC3value[i]  ;
132 136
             }
@@ -211,7 +215,7 @@ uint8_t eepromtestarray1[EEPROM_WINDOW_STATUS_ADDRESDS];
211 215
 uint8_t eepromtestReadarray1[EEPROM_WINDOW_STATUS_ADDRESDS];
212 216
 #define TESTINDEX  sizeof(TEMP_TABLE_st) 
213 217
 void EEPROMTEST_J(){
214
-#if 1 // PYJ.2020.04.25_BEGIN -- 
218
+#if 0 // PYJ.2020.04.25_BEGIN -- 
215 219
       for(int i = 0; i< TESTINDEX; i++)
216 220
           eepromtestarray[i] = i;
217 221
       printf("Value %x\r\n",eepromtestarray[1]);
@@ -225,6 +229,11 @@ void EEPROMTEST_J(){
225 229
         for(int i = 0; i< TESTINDEX; i++)
226 230
             printf("%d ",eepromtestReadarray[i]);
227 231
                printf("\r\n");
232
+#else        
233
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_BASE,&eepromtestReadarray[0],sizeof(BLUESTATUS_st) );
234
+    for(int i = 0; i< sizeof(BLUESTATUS_st); i++)
235
+               printf("%d ",eepromtestReadarray[i]);
236
+
228 237
 #endif // PYJ.2020.04.25_END -- 
229 238
 
230 239
 
@@ -289,6 +298,7 @@ void eepromtest_j1(){
289 298
 }
290 299
 #endif // PYJ.2020.04.23_END -- 
291 300
 
301
+extern void ALC_Function();
292 302
 
293 303
 /* USER CODE END 0 */
294 304
 
@@ -369,6 +379,8 @@ int main(void)
369 379
     Boot_LED_Toggle();
370 380
     Uart_Check();
371 381
     ADC_Check();
382
+    ALC_Function();
383
+    AGC_Function();
372 384
     /* USER CODE END WHILE */
373 385
 
374 386
     /* USER CODE BEGIN 3 */
@@ -641,7 +653,6 @@ static void MX_I2C2_Init(void)
641 653
   hi2c2.Instance = I2C2;
642 654
   hi2c2.Init.ClockSpeed = 400000;
643 655
   hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2;
644
-  
645 656
   hi2c2.Init.OwnAddress1 = 0;
646 657
   hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
647 658
   hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
@@ -793,7 +804,7 @@ static void MX_GPIO_Init(void)
793 804
   __HAL_RCC_GPIOD_CLK_ENABLE();
794 805
 
795 806
   /*Configure GPIO pin Output Level */
796
-  HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3|FAIL_MBIC_Pin|ATT_CLOCK4_Pin|ATT_DATA4_Pin 
807
+  HAL_GPIO_WritePin(GPIOE, LED_FAIL_Pin|FAIL_MBIC_Pin|ATT_CLOCK4_Pin|ATT_DATA4_Pin 
797 808
                           |ATT_EN_DL4_Pin|ATT_EN_UL4_Pin|PATH_EN_DL4_Pin|PATH_EN_UL4_Pin, GPIO_PIN_RESET);
798 809
 
799 810
   /*Configure GPIO pin Output Level */
@@ -813,9 +824,9 @@ static void MX_GPIO_Init(void)
813 824
   HAL_GPIO_WritePin(GPIOD, PATH_EN_DL2_Pin|PATH_EN_UL2_Pin|LED_ACT_Pin|GPIO_PIN_15 
814 825
                           |ATT_CLOCK2_Pin|ATT_DATA2_Pin|ATT_EN_DL2_Pin|ATT_EN_UL2_Pin, GPIO_PIN_RESET);
815 826
 
816
-  /*Configure GPIO pins : PE3 FAIL_MBIC_Pin ATT_CLOCK4_Pin ATT_DATA4_Pin 
827
+  /*Configure GPIO pins : LED_FAIL_Pin FAIL_MBIC_Pin ATT_CLOCK4_Pin ATT_DATA4_Pin 
817 828
                            ATT_EN_DL4_Pin ATT_EN_UL4_Pin PATH_EN_DL4_Pin PATH_EN_UL4_Pin */
818
-  GPIO_InitStruct.Pin = GPIO_PIN_3|FAIL_MBIC_Pin|ATT_CLOCK4_Pin|ATT_DATA4_Pin 
829
+  GPIO_InitStruct.Pin = LED_FAIL_Pin|FAIL_MBIC_Pin|ATT_CLOCK4_Pin|ATT_DATA4_Pin 
819 830
                           |ATT_EN_DL4_Pin|ATT_EN_UL4_Pin|PATH_EN_DL4_Pin|PATH_EN_UL4_Pin;
820 831
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
821 832
   GPIO_InitStruct.Pull = GPIO_NOPULL;
@@ -888,6 +899,8 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
888 899
       LedTimerCnt++;
889 900
       AdcTimerCnt++;
890 901
       LDTimerCnt++;
902
+      ALCTimerCnt++;
903
+      AGCTimerCnt++;
891 904
   }
892 905
   /* USER CODE END Callback 1 */
893 906
 }