Explorar el Código

Merge branch 'master' of https://gowone.dy.takin.cc/liyuezong/SmartPDCode

liyuezong hace 1 año
padre
commit
3dfbcdbc14

+ 6 - 2
truing_control/PDU-AC_ADA_NEW_6/hardware/eeprom/eeprom.c

@@ -83,6 +83,7 @@ void eeprom_init(void)
 	board->check_threshold = check_threshold;
 	board->read_eeprom_page = eeprom_auto_page_read;
 	board->write_eeprom_page = eeprom_auto_page_write;
+	
 }
 
 
@@ -137,6 +138,7 @@ static void iic_stop_signal(void)
 	IIC_SDA_CLR;
 	DelayNus(4);
 	IIC_SCL_SET;
+	DelayNus(4);
 	IIC_SDA_SET;
 	DelayNus(4);
 }
@@ -446,9 +448,9 @@ static uint8_t eeprom_page_read(uint16_t addr,uint8_t *data,uint16_t lenth)
 	}
 	
 	iic_stop_signal();
-	
 	return 0;
 failed:
+	iic_stop_signal();
 	return 1;	
 }
 
@@ -486,6 +488,7 @@ static uint8_t eeprom_write_page(uint16_t addr,uint8_t *data,uint16_t chuank)
 	
 	return 0;
 failed:
+	iic_stop_signal();
 	return 1;
 }
 
@@ -536,4 +539,5 @@ static void eeprom_auto_page_read(uint16_t addr,uint8_t *data,uint16_t lenth)
         p += chunk;
         remaining -= chunk;
     }
-}
+}
+

+ 2 - 2
truing_control/PDU-AC_ADA_NEW_6/user/board_cfg.h

@@ -55,8 +55,8 @@
 #define   PRJ_3_4                   0
 #define   PRJ_3_2                   0
 #define 	PRJ_DC_8									0
-#define   PRJ_6_NEW                 0
-#define   PRJ_3_NEW                 1
+#define   PRJ_6_NEW                 1
+#define   PRJ_3_NEW                 0
 #define 	PRJ_5_NEW									0
 #define 	PRJ_4_SELF_LOCK       	  0
 #define   PRJ_4_BASE                0

+ 4 - 4
truing_control/PDU-AC_ADA_NEW_6/user/main.c

@@ -44,8 +44,8 @@ static void app_init(META_DATA_S *meta);
 
 int main(){
 	
+	ac_board.md_data.r_data.dev_chn =  ACSingCurrid << 8 | RelaySlaveChaNum;
 	InitSysTick();
-
 	led_init();
 	lock_init();
 	detection_init();
@@ -53,19 +53,19 @@ int main(){
 	relay_init();
 	haddr_init();
 	eeprom_init();
+	read_config_from_eeprom();
 	electricity_init();
 	time_init();
 	query_init();
-
+	
 	//device
-	read_config_from_eeprom();
 	
 	fwdgt_Init();
 	eMBInit(MB_RTU, ac_board.haddr, 0, 115200, MB_PAR_NONE);
 	eMBEnable();
 	
 	
-	ac_board.md_data.r_data.dev_chn =   ACSingCurrid << 8 | RelaySlaveChaNum;
+	
 	ac_board.md_data.r_data.info.channels = RelaySlaveChaNum;
 	strcpy((char*)&(ac_board.md_data.r_data.info.date),__DATE__);
 	strcat((char*)&(ac_board.md_data.r_data.info.date)," ");

+ 3 - 8
truing_control/PDU-AC_ADA_OLD8/common/common.c

@@ -27,12 +27,12 @@ void read_config_from_eeprom(void)
 	{
 		uint16_t device = 0;
 		board->read_eeprom(EEPROM_DEVICES_ADDR,(uint8_t *)&device,EEPROM_DEVICES_LENTH);
+
 		if(device != board->md_data.r_data.dev_chn)
 		{
 			//default write eeprom
 			board->write_eeprom_page(EEPROM_DEVICES_ADDR,(uint8_t *)&board->md_data.r_data.dev_chn,EEPROM_DEVICES_LENTH);
 			board->write_eeprom_page(EEPROM_STATUS_ADDR,(uint8_t *)&board->relay_staging_staus[0],2*RelaySlaveChaNum);
-			board->feed_dog();
 			for(uint8_t i = 0; i < RelaySlaveChaNum;i++)
 			{
 				board->md_data.rw_data.open.delay_open[i]  	= (1+i) * 1000;
@@ -43,8 +43,6 @@ void read_config_from_eeprom(void)
 			iic_data chache={0};
 			for(uint8_t i = 0 ; i < MAX_ROW;i++){
 				board->write_eeprom_page(EEPROM_CONSUMER_ADDR +(CONSUM_PAGE*i),(uint8_t*)&chache.data[0],CONSUM_PAGE);
-				board->feed_dog();
-				DelayNms(7);
 			}
 		}
 		{
@@ -61,7 +59,6 @@ void read_config_from_eeprom(void)
 					}
 				}
 			}
-			board->feed_dog();
 			board->read_eeprom_page(EEPROM_OTHER_ADDR,(uint8_t *)&board->md_data.rw_data.open.delay_open[0],sizeof(ac_rw_data_t));
 
 			for(uint8_t i = 0 ; i < RelaySlaveChaNum;i++)
@@ -72,7 +69,6 @@ void read_config_from_eeprom(void)
 			iic_data chache={0};
 			for(uint8_t i = 0 ; i < MAX_ROW;i++)
 			{
-				board->feed_dog();
 				board->read_eeprom_page(EEPROM_CONSUMER_ADDR + (CONSUM_PAGE*i),(uint8_t*)&chache,sizeof(iic_data));
 				if(board->con_da.index > chache.iic_con.recode_index1)
 				{
@@ -84,7 +80,6 @@ void read_config_from_eeprom(void)
 				}
 			}	
 			board->read_eeprom_page(EEPROM_CONSUMER_ADDR +(CONSUM_PAGE*(board->con_da.row)),(uint8_t*)&chache,sizeof(iic_data));
-			board->feed_dog();
 			for(uint16_t i = 0 ; i < RelaySlaveChaNum;i++)
 			{
 					board->ele_restore[i] = chache.iic_con.iic_consumer[i];
@@ -101,11 +96,11 @@ void read_config_from_eeprom(void)
 				iic_data chache1={0};
 				board->con_da.index = 0;
 				for(uint8_t i = 0 ; i < MAX_ROW;i++){
-					board->feed_dog();
 					board->write_eeprom_page(EEPROM_CONSUMER_ADDR +(CONSUM_PAGE*i),(uint8_t*)&chache1,CONSUM_PAGE);
 					DelayNms(7);
 				}
 			}
+			//read chn ctrl
 		}
 	}
 }
@@ -124,7 +119,7 @@ void set_relay_sta_async(async_data *data)
 			{
 				w_eeprom_data_t da = {0};
 				da.lenth =2;
-				memcpy(&da.data,&data->status,2);
+				memcpy((void*)&da.data,(void*)&data->status,2);
 				da.start_addr = (EEPROM_STATUS_ADDR+(data->channel*2));
 				board->q_cache.en_queue(&da);
 			}

+ 53 - 20
truing_control/PDU-AC_ADA_OLD8/hardware/eeprom/eeprom.c

@@ -57,8 +57,8 @@ static void         eeprom_write(uint16_t w_addr,uint8_t *data,uint16_t lenth);
 static void         eeprom_read(uint16_t r_addr,uint8_t *data,uint16_t lenth);
 static void 				check_threshold(uint8_t in_out,uint8_t channel);
 
-static void 				eeprom_page_read(uint16_t addr,uint8_t *data,uint16_t lenth);
-static void         eeprom_write_page(uint16_t addr,uint8_t *data,uint16_t chuank);
+static uint8_t 				eeprom_page_read(uint16_t addr,uint8_t *data,uint16_t lenth);
+static uint8_t         eeprom_write_page(uint16_t addr,uint8_t *data,uint16_t chuank);
 static void 				eeprom_auto_page_write(uint16_t addr,uint8_t *data,uint16_t lenth);
 static void 				eeprom_auto_page_read(uint16_t addr,uint8_t *data,uint16_t lenth);
 static inline void iic_set_sda_input()
@@ -83,6 +83,7 @@ void eeprom_init(void)
 	board->check_threshold = check_threshold;
 	board->read_eeprom_page = eeprom_auto_page_read;
 	board->write_eeprom_page = eeprom_auto_page_write;
+	
 }
 
 
@@ -137,6 +138,7 @@ static void iic_stop_signal(void)
 	IIC_SDA_CLR;
 	DelayNus(4);
 	IIC_SCL_SET;
+	DelayNus(4);
 	IIC_SDA_SET;
 	DelayNus(4);
 }
@@ -407,28 +409,32 @@ static void check_threshold(uint8_t in_out,uint8_t channel)
 		}
 	}
 }
-static void eeprom_page_read(uint16_t addr,uint8_t *data,uint16_t lenth)
+static uint8_t eeprom_page_read(uint16_t addr,uint8_t *data,uint16_t lenth)
 {
    if(lenth == 0 || lenth > PAGE_SIZE || ((addr % PAGE_SIZE) + lenth > PAGE_SIZE))
    {
-      return;
+      return 1;
    }
 	iic_start_signal();
 	if(USER_DEFINE_EEPROM_TYPE > AT24C16)
 	{
 		iic_send_byte(0XA0);
-		iic_wait_ack();
+	if(iic_wait_ack())
+		goto failed;
 		iic_send_byte(addr >> 8);
 	}else
 	{
 		iic_send_byte(0XA0 + ((addr / 256) << 1));
 	}
-	iic_wait_ack();
+	if(iic_wait_ack())
+		goto failed;
 	iic_send_byte(addr % 256);
-	iic_wait_ack();
+	if(iic_wait_ack())
+		goto failed;
 	iic_start_signal();
 	iic_send_byte(0XA1);
-	iic_wait_ack();
+	if(iic_wait_ack())
+		goto failed;
 	
 	for(int i = 0; i < lenth;i++)
 	{
@@ -442,35 +448,50 @@ static void eeprom_page_read(uint16_t addr,uint8_t *data,uint16_t lenth)
 	}
 	
 	iic_stop_signal();
+	
+	return 0;
+failed:
+	iic_stop_signal();
+	return 1;	
 }
 
-static void eeprom_write_page(uint16_t addr,uint8_t *data,uint16_t chuank)
+static uint8_t eeprom_write_page(uint16_t addr,uint8_t *data,uint16_t chuank)
 {
 	  if(chuank == 0 || chuank > PAGE_SIZE || ((addr % PAGE_SIZE) + chuank > PAGE_SIZE))
     {
-        return;
+        return 1;
     }
 
 	iic_start_signal();
 	if(USER_DEFINE_EEPROM_TYPE > AT24C16)
 	{
 		iic_send_byte(0XA0);
-		iic_wait_ack();
+		if(iic_wait_ack())
+			goto failed;
 		iic_send_byte(addr >> 8);
 	}else
 	{
 		iic_send_byte(0XA0 + ((addr / 256) << 1));
 	}
-	iic_wait_ack();
+	if(iic_wait_ack())
+		goto failed;
 	iic_send_byte(addr % 256);
-	iic_wait_ack();	
+	if(iic_wait_ack())
+		goto failed;
 	for(uint16_t i = 0; i < chuank;i++)
 	{
 		iic_send_byte(data[i]);
-		iic_wait_ack();
+		if(iic_wait_ack())
+			goto failed;
 	}
 	iic_stop_signal();
 	DelayNms(7);
+	
+	return 0;
+failed:
+	iic_stop_signal();
+	return 1;
+	
 }
 
 
@@ -480,12 +501,19 @@ static void eeprom_auto_page_write(uint16_t addr,uint8_t *data,uint16_t lenth)
 {
     uint16_t remaining = lenth;
     uint8_t *p = data;
+		uint8_t count = 5;
     
     while(remaining > 0)
     {
         uint8_t chunk = PAGE_SIZE - (addr % PAGE_SIZE);
         if(chunk > remaining) chunk = remaining;
-        eeprom_write_page(addr, p,chunk);
+				do{
+					if(!eeprom_write_page(addr, p,chunk))
+					{
+						break;
+					}
+				}while(count--);
+
         addr += chunk;
         p += chunk;
         remaining -= chunk;
@@ -497,16 +525,21 @@ static void eeprom_auto_page_read(uint16_t addr,uint8_t *data,uint16_t lenth)
 {
     uint16_t remaining = lenth;
     uint8_t *p = data;
-    
+    uint8_t count = 5;
+	
     while(remaining > 0)
     {
         uint8_t chunk = PAGE_SIZE - (addr % PAGE_SIZE);
         if(chunk > remaining) chunk = remaining;
-        
-        eeprom_page_read(addr, p, chunk);
-         
+				do{
+					if(!eeprom_page_read(addr, p, chunk))
+					{
+						break;
+					}
+				}while(count--);          
         addr += chunk;
         p += chunk;
         remaining -= chunk;
     }
-}
+}
+

+ 46 - 13
truing_control/PDU-AC_ADA_OLD8/hardware/hlw8110/Hlw8110.c

@@ -369,26 +369,59 @@ unsigned char Judge_CheckSum_HLW8110_Calfactor(void)
 
 void Init_HLW8110(void)
 {
-	Uart_HLW8110_WriteREG_EN();
-	DelayNms(10);
+
 	
 //电流通道A设置命令,指定当前用于计算视在功率、功率因数、相角、瞬时有功功率、瞬时视在功率和有功功率过载的信号指示 的通道为通道A	
-	Uart_HLW8110_Set_Channel_A();			
-	DelayNms(10);
-	Uart_Write_HLW8110_Reg(REG_SYSCON_ADDR,2,0x0a04);	//开启A通道,关闭B通道,电压通道PGA = 1,电流通道PGA = 16
-	DelayNms(10);
-	
+	for(int i = 0 ; i < 3 ;i++)
+	{
+		Uart_HLW8110_WriteREG_EN();
+		DelayNms(10);
+		Uart_HLW8110_Set_Channel_A();			
+		DelayNms(10);
+		Uart_Write_HLW8110_Reg(REG_SYSCON_ADDR,2,0x0a04);	//开启A通道,关闭B通道,电压通道PGA = 1,电流通道PGA = 16
+		DelayNms(10);
+		
 
-	Uart_Write_HLW8110_Reg(REG_EMUCON_ADDR,2,0x0001);	//1,使能PFA 脉冲输出和有功电能寄存器累加;
+		Uart_Write_HLW8110_Reg(REG_EMUCON_ADDR,2,0x0001);	//1,使能PFA 脉冲输出和有功电能寄存器累加;
 //	Uart_Write_HLW8110_Reg(REG_EMUCON_ADDR,2,0x0018);	//正向和负向过零点均发生变化,ZXD0 = 1,ZXD1 = 1
-	Uart_Write_HLW8110_Reg(REG_EMUCON2_ADDR,2,0x0065);	//0x0001是EMUCON2的默认值,waveEn = 1,zxEn = 1,A通道电量寄存器,读后不清0,EPA_CB = 1;打开功率因素检测
-	DelayNms(10);
+		Uart_Write_HLW8110_Reg(REG_EMUCON2_ADDR,2,0x0065);	//0x0001是EMUCON2的默认值,waveEn = 1,zxEn = 1,A通道电量寄存器,读后不清0,EPA_CB = 1;打开功率因素检测
+		DelayNms(10);
 
 	
-	Uart_HLW8110_WriteREG_DIS();
+		Uart_HLW8110_WriteREG_DIS();
+		B_Read_Error = 0;
+		Check_WriteReg_Success();
+		if (B_Read_Error == 1)
+		{
+			DelayNms(50);
+		}else
+		{
+			break;
+		}
+	}
 //	DelayNms(3);	
   //读取地址是0x6F至0x77的寄存器,验证系数是否正确
-  Judge_CheckSum_HLW8110_Calfactor();	
+ // Judge_CheckSum_HLW8110_Calfactor();	
+	uint8_t d  = 0;
+	for(int i = 0;i < 3;i++)
+	{
+		d = Judge_CheckSum_HLW8110_Calfactor();
+		if(d)
+		{
+			break;
+		}
+	}
+	if(d == 0)
+	{
+		U16_RMSIAC_RegData		=	0xcad1;
+		U16_RMSIBC_RegData		=	0xcacf;
+		U16_RMSUC_RegData			=	0xa4c3;
+		U16_PowerPAC_RegData	=	0xab47;
+		U16_PowerPBC_RegData	=	0xab49;
+		U16_PowerSC_RegData		=	0xab41;
+		U16_EnergyAC_RegData	=	0xe9cc;
+		U16_EnergyBC_RegData	=	0xe9ce;		
+	}
 }
 
 
@@ -725,7 +758,7 @@ void Read_HLW8110_Angle(void)
 
 void Calculate_HLW8110_MeterData(void)
 {	
-	Check_WriteReg_Success();
+	//Check_WriteReg_Success();
 	
 	Read_HLW8110_IA();
 	Read_HLW8110_U();

+ 106 - 142
truing_control/PDU-AC_ADA_OLD8/prj/JLinkLog.txt

@@ -1,142 +1,106 @@
-T48FBC 000:328.509   SEGGER J-Link V7.96c Log File
-T48FBC 000:328.632   DLL Compiled: Apr  2 2024 12:30:42
-T48FBC 000:328.638   Logging started @ 2025-06-25 06:07
-T48FBC 000:328.643   Process: D:\Keil_v5\UV4\UV4.exe
-T48FBC 000:328.649 - 328.647ms
-T48FBC 000:328.658 JLINK_SetWarnOutHandler(...)
-T48FBC 000:328.663 - 0.006ms
-T48FBC 000:328.670 JLINK_OpenEx(...)
-T48FBC 000:331.556   Firmware: J-Link V9 compiled May  7 2021 16:26:12
-T48FBC 000:333.334   Firmware: J-Link V9 compiled May  7 2021 16:26:12
-T48FBC 000:333.548   Decompressing FW timestamp took 165 us
-T48FBC 000:341.256   Hardware: V9.50
-T48FBC 000:341.280   S/N: 69545260
-T48FBC 000:341.289   OEM: SEGGER
-T48FBC 000:341.299   Feature(s): JFlash, GDB, RDI, FlashBP, FlashDL
-T48FBC 000:343.143   Bootloader: (Could not read)
-T48FBC 000:346.332   TELNET listener socket opened on port 19021
-T48FBC 000:346.487   WEBSRV WEBSRV_Init(): Starting webserver thread(s)
-T48FBC 000:347.533   WEBSRV Webserver running on local port 19080
-T48FBC 000:347.653   Looking for J-Link GUI Server exe at: D:\Keil_v5\ARM\Segger\JLinkGUIServer.exe
-T48FBC 000:347.760   Looking for J-Link GUI Server exe at: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkGUIServer.exe
-T48FBC 000:347.803   Forking J-Link GUI Server: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkGUIServer.exe
-T48FBC 000:533.586   J-Link GUI Server info: "J-Link GUI server V7.96c "
-T48FBC 000:559.475 - 230.798ms returns "O.K."
-T48FBC 000:559.503 JLINK_GetEmuCaps()
-T48FBC 000:559.509 - 0.004ms returns 0xB9FF7BBF
-T48FBC 000:559.515 JLINK_TIF_GetAvailable(...)
-T48FBC 000:560.034 - 0.518ms
-T48FBC 000:560.052 JLINK_SetErrorOutHandler(...)
-T48FBC 000:560.057 - 0.004ms
-T48FBC 000:560.075 JLINK_ExecCommand("ProjectFile = "C:\Users\Gowon\Desktop\PDU-AC_ADA_OLD8\prj\JLinkSettings.ini"", ...). 
-T48FBC 000:569.436   Ref file found at: D:\Keil_v5\ARM\Segger\JLinkDevices.ref
-T48FBC 000:569.516   REF file references invalid XML file: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkDevices.xml
-T48FBC 000:570.335 - 10.261ms returns 0x00
-T48FBC 000:570.364 JLINK_ExecCommand("Device = GD32E230C8", ...). 
-T48FBC 000:570.476   Flash bank @ 0x1FFFF800: SFL: Parsing sectorization info from ELF file
-T48FBC 000:570.484     FlashDevice.SectorInfo[0]: .SectorSize = 0x00000010, .SectorStartAddr = 0x00000000
-T48FBC 000:570.503   Device "GD32E230C8" selected.
-T48FBC 000:570.835 - 0.464ms returns 0x00
-T48FBC 000:570.845 JLINK_ExecCommand("DisableConnectionTimeout", ...). 
-T48FBC 000:570.852 - 0.001ms returns 0x01
-T48FBC 000:570.858 JLINK_GetHardwareVersion()
-T48FBC 000:570.865 - 0.004ms returns 95000
-T48FBC 000:570.870 JLINK_GetDLLVersion()
-T48FBC 000:570.873 - 0.003ms returns 79603
-T48FBC 000:570.878 JLINK_GetOEMString(...)
-T48FBC 000:570.883 JLINK_GetFirmwareString(...)
-T48FBC 000:570.887 - 0.004ms
-T48FBC 000:570.895 JLINK_GetDLLVersion()
-T48FBC 000:570.898 - 0.003ms returns 79603
-T48FBC 000:570.903 JLINK_GetCompileDateTime()
-T48FBC 000:570.906 - 0.003ms
-T48FBC 000:570.912 JLINK_GetFirmwareString(...)
-T48FBC 000:570.916 - 0.004ms
-T48FBC 000:570.921 JLINK_GetHardwareVersion()
-T48FBC 000:570.925 - 0.003ms returns 95000
-T48FBC 000:570.930 JLINK_GetSN()
-T48FBC 000:570.933 - 0.003ms returns 69545260
-T48FBC 000:570.938 JLINK_GetOEMString(...)
-T48FBC 000:570.946 JLINK_TIF_Select(JLINKARM_TIF_SWD)
-T48FBC 000:572.980 - 2.033ms returns 0x00
-T48FBC 000:573.003 JLINK_HasError()
-T48FBC 000:573.020 JLINK_SetSpeed(5000)
-T48FBC 000:573.474 - 0.456ms
-T48FBC 000:573.884 JLINK_HasError()
-T48FBC 000:573.897 JLINK_SetResetType(JLINKARM_RESET_TYPE_NORMAL)
-T48FBC 000:573.902 - 0.005ms returns JLINKARM_RESET_TYPE_NORMAL
-T48FBC 000:573.907 JLINK_Reset()
-T48FBC 000:574.430   InitTarget() start
-T48FBC 000:574.446    J-Link Script File: Executing InitTarget()
-T48FBC 000:577.942   DAP initialized successfully.
-T48FBC 000:579.100   Secured GD32 device detected.
-For debugger connection the device needs to be unsecured.
-Note: Unsecuring will erase the entire device and set the option bytes to default values.
-T48FBC 000:579.111   Executing default behavior previously saved in the registry.
-T48FBC 000:579.173   Device will be unsecured now.
-T48FBC 000:589.737     Erasing of option byte 0 area failed.
-T48FBC 000:589.757   InitTarget() end - Took 15.3ms
-T48FBC 000:589.770   Connect failed. Resetting via Reset pin and trying again.
-T48FBC 000:652.009   InitTarget() start
-T48FBC 000:652.036    J-Link Script File: Executing InitTarget()
-T48FBC 000:654.806   DAP initialized successfully.
-T48FBC 000:655.837   Secured GD32 device detected.
-For debugger connection the device needs to be unsecured.
-Note: Unsecuring will erase the entire device and set the option bytes to default values.
-T48FBC 000:655.847   Executing default behavior previously saved in the registry.
-T48FBC 000:655.853   Device will be unsecured now.
-T48FBC 000:666.356     Erasing of option byte 0 area failed.
-T48FBC 000:666.383   InitTarget() end - Took 14.3ms
-T48FBC 000:666.391 - 92.483ms
-T48FBC 000:666.428 JLINK_GetId()
-T48FBC 000:666.968   InitTarget() start
-T48FBC 000:666.990    J-Link Script File: Executing InitTarget()
-T48FBC 000:669.591   DAP initialized successfully.
-T48FBC 000:670.688   Secured GD32 device detected.
-For debugger connection the device needs to be unsecured.
-Note: Unsecuring will erase the entire device and set the option bytes to default values.
-T48FBC 000:670.695   Executing default behavior previously saved in the registry.
-T48FBC 000:670.701   Device will be unsecured now.
-T48FBC 000:681.351     Erasing of option byte 0 area failed.
-T48FBC 000:681.384   InitTarget() end - Took 14.3ms
-T48FBC 000:681.396   Connect failed. Resetting via Reset pin and trying again.
-T48FBC 000:743.909   InitTarget() start
-T48FBC 000:743.934    J-Link Script File: Executing InitTarget()
-T48FBC 000:746.582   DAP initialized successfully.
-T48FBC 000:747.764   Secured GD32 device detected.
-For debugger connection the device needs to be unsecured.
-Note: Unsecuring will erase the entire device and set the option bytes to default values.
-T48FBC 000:747.779   Executing default behavior previously saved in the registry.
-T48FBC 000:747.788   Device will be unsecured now.
-T48FBC 000:758.608     Erasing of option byte 0 area failed.
-T48FBC 000:758.635   InitTarget() end - Took 14.6ms
-T48FBC 000:758.647 - 92.218ms returns 0x00000000
-T48FBC 000:758.665 JLINK_GetId()
-T48FBC 000:759.159   InitTarget() start
-T48FBC 000:759.166    J-Link Script File: Executing InitTarget()
-T48FBC 000:761.707   DAP initialized successfully.
-T48FBC 000:763.231   Secured GD32 device detected.
-For debugger connection the device needs to be unsecured.
-Note: Unsecuring will erase the entire device and set the option bytes to default values.
-T48FBC 000:763.252   Executing default behavior previously saved in the registry.
-T48FBC 000:763.263   Device will be unsecured now.
-T48FBC 000:773.867     Erasing of option byte 0 area failed.
-T48FBC 000:773.901   InitTarget() end - Took 14.7ms
-T48FBC 000:773.914   Connect failed. Resetting via Reset pin and trying again.
-T48FBC 000:836.158   InitTarget() start
-T48FBC 000:836.187    J-Link Script File: Executing InitTarget()
-T48FBC 000:839.081   DAP initialized successfully.
-T48FBC 000:840.374   Secured GD32 device detected.
-For debugger connection the device needs to be unsecured.
-Note: Unsecuring will erase the entire device and set the option bytes to default values.
-T48FBC 000:840.392   Executing default behavior previously saved in the registry.
-T48FBC 000:840.402   Device will be unsecured now.
-T48FBC 000:850.737     Erasing of option byte 0 area failed.
-T48FBC 000:850.768   InitTarget() end - Took 14.5ms
-T48FBC 000:850.778 - 92.112ms returns 0x00000000
-T48FBC 000:867.917 JLINK_GetFirmwareString(...)
-T48FBC 000:867.961 - 0.045ms
-T48FBC 015:284.750 JLINK_Close()
-T48FBC 015:297.080 - 12.328ms
-T48FBC 015:297.106   
-T48FBC 015:297.110   Closed
+T1E2CC 000:296.522   SEGGER J-Link V7.96c Log File
+T1E2CC 000:296.731   DLL Compiled: Apr  2 2024 12:30:42
+T1E2CC 000:296.739   Logging started @ 2025-07-05 03:45
+T1E2CC 000:296.746   Process: D:\Keil_v5\UV4\UV4.exe
+T1E2CC 000:296.758 - 296.752ms
+T1E2CC 000:296.771 JLINK_SetWarnOutHandler(...)
+T1E2CC 000:296.778 - 0.009ms
+T1E2CC 000:296.791 JLINK_OpenEx(...)
+T1E2CC 000:300.689   Firmware: J-Link V9 compiled May  7 2021 16:26:12
+T1E2CC 000:302.354   Firmware: J-Link V9 compiled May  7 2021 16:26:12
+T1E2CC 000:302.469   Decompressing FW timestamp took 92 us
+T1E2CC 000:309.981   Hardware: V9.50
+T1E2CC 000:310.000   S/N: 69545260
+T1E2CC 000:310.005   OEM: SEGGER
+T1E2CC 000:310.011   Feature(s): JFlash, GDB, RDI, FlashBP, FlashDL
+T1E2CC 000:311.532   Bootloader: (Could not read)
+T1E2CC 000:313.178   TELNET listener socket opened on port 19021
+T1E2CC 000:313.355   WEBSRV WEBSRV_Init(): Starting webserver thread(s)
+T1E2CC 000:313.566   WEBSRV Webserver running on local port 19080
+T1E2CC 000:313.763   Looking for J-Link GUI Server exe at: D:\Keil_v5\ARM\Segger\JLinkGUIServer.exe
+T1E2CC 000:313.881   Looking for J-Link GUI Server exe at: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkGUIServer.exe
+T1E2CC 000:313.941   Forking J-Link GUI Server: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkGUIServer.exe
+T1E2CC 000:425.324   J-Link GUI Server info: "J-Link GUI server V7.96c "
+T1E2CC 000:438.790 - 141.973ms returns "O.K."
+T1E2CC 000:438.834 JLINK_GetEmuCaps()
+T1E2CC 000:438.845 - 0.008ms returns 0xB9FF7BBF
+T1E2CC 000:438.857 JLINK_TIF_GetAvailable(...)
+T1E2CC 000:439.260 - 0.403ms
+T1E2CC 000:439.275 JLINK_SetErrorOutHandler(...)
+T1E2CC 000:439.281 - 0.006ms
+T1E2CC 000:439.317 JLINK_ExecCommand("ProjectFile = "C:\Users\Gowon\Desktop\PDU-AC_ADA_OLD8\prj\JLinkSettings.ini"", ...). 
+T1E2CC 000:449.171   Ref file found at: D:\Keil_v5\ARM\Segger\JLinkDevices.ref
+T1E2CC 000:449.272   REF file references invalid XML file: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkDevices.xml
+T1E2CC 000:450.216 - 10.901ms returns 0x00
+T1E2CC 000:450.241 JLINK_ExecCommand("Device = GD32E230C8", ...). 
+T1E2CC 000:450.365   Flash bank @ 0x1FFFF800: SFL: Parsing sectorization info from ELF file
+T1E2CC 000:450.372     FlashDevice.SectorInfo[0]: .SectorSize = 0x00000010, .SectorStartAddr = 0x00000000
+T1E2CC 000:450.404   Device "GD32E230C8" selected.
+T1E2CC 000:450.886 - 0.638ms returns 0x00
+T1E2CC 000:450.902 JLINK_ExecCommand("DisableConnectionTimeout", ...). 
+T1E2CC 000:450.913 - 0.002ms returns 0x01
+T1E2CC 000:450.922 JLINK_GetHardwareVersion()
+T1E2CC 000:450.934 - 0.007ms returns 95000
+T1E2CC 000:450.942 JLINK_GetDLLVersion()
+T1E2CC 000:450.949 - 0.006ms returns 79603
+T1E2CC 000:450.956 JLINK_GetOEMString(...)
+T1E2CC 000:450.965 JLINK_GetFirmwareString(...)
+T1E2CC 000:450.972 - 0.006ms
+T1E2CC 000:450.983 JLINK_GetDLLVersion()
+T1E2CC 000:450.990 - 0.006ms returns 79603
+T1E2CC 000:450.998 JLINK_GetCompileDateTime()
+T1E2CC 000:451.004 - 0.006ms
+T1E2CC 000:451.014 JLINK_GetFirmwareString(...)
+T1E2CC 000:451.020 - 0.006ms
+T1E2CC 000:451.029 JLINK_GetHardwareVersion()
+T1E2CC 000:451.036 - 0.006ms returns 95000
+T1E2CC 000:451.044 JLINK_GetSN()
+T1E2CC 000:451.051 - 0.006ms returns 69545260
+T1E2CC 000:451.060 JLINK_GetOEMString(...)
+T1E2CC 000:451.080 JLINK_TIF_Select(JLINKARM_TIF_SWD)
+T1E2CC 000:453.068 - 1.987ms returns 0x00
+T1E2CC 000:453.088 JLINK_HasError()
+T1E2CC 000:453.109 JLINK_SetSpeed(5000)
+T1E2CC 000:453.575 - 0.467ms
+T1E2CC 000:454.074 JLINK_HasError()
+T1E2CC 000:454.094 JLINK_SetResetType(JLINKARM_RESET_TYPE_NORMAL)
+T1E2CC 000:454.102 - 0.007ms returns JLINKARM_RESET_TYPE_NORMAL
+T1E2CC 000:454.110 JLINK_Reset()
+T1E2CC 000:454.716   InitTarget() start
+T1E2CC 000:454.729    J-Link Script File: Executing InitTarget()
+T1E2CC 000:557.187   Error: Failed to initialized DAP.
+T1E2CC 000:557.217   InitTarget() end - Took 102ms
+T1E2CC 000:557.239   Connect failed. Resetting via Reset pin and trying again.
+T1E2CC 000:619.453   InitTarget() start
+T1E2CC 000:619.485    J-Link Script File: Executing InitTarget()
+T1E2CC 000:621.556   Error: Failed to initialized DAP.
+T1E2CC 000:621.583   InitTarget() end - Took 2.09ms
+T1E2CC 000:621.594 - 167.483ms
+T1E2CC 000:621.614 JLINK_GetId()
+T1E2CC 000:621.996   InitTarget() start
+T1E2CC 000:622.007    J-Link Script File: Executing InitTarget()
+T1E2CC 000:623.911   Error: Failed to initialized DAP.
+T1E2CC 000:623.933   InitTarget() end - Took 1.92ms
+T1E2CC 000:623.944   Connect failed. Resetting via Reset pin and trying again.
+T1E2CC 000:686.010   InitTarget() start
+T1E2CC 000:686.054    J-Link Script File: Executing InitTarget()
+T1E2CC 000:688.067   Error: Failed to initialized DAP.
+T1E2CC 000:688.095   InitTarget() end - Took 2.03ms
+T1E2CC 000:688.107 - 66.491ms returns 0x00000000
+T1E2CC 000:688.135 JLINK_GetId()
+T1E2CC 000:688.555   InitTarget() start
+T1E2CC 000:688.562    J-Link Script File: Executing InitTarget()
+T1E2CC 000:690.572   Error: Failed to initialized DAP.
+T1E2CC 000:690.588   InitTarget() end - Took 2.02ms
+T1E2CC 000:690.595   Connect failed. Resetting via Reset pin and trying again.
+T1E2CC 000:752.997   InitTarget() start
+T1E2CC 000:753.038    J-Link Script File: Executing InitTarget()
+T1E2CC 000:754.939   Error: Failed to initialized DAP.
+T1E2CC 000:754.959   InitTarget() end - Took 1.92ms
+T1E2CC 000:754.969 - 66.834ms returns 0x00000000
+T1E2CC 000:766.259 JLINK_GetFirmwareString(...)
+T1E2CC 000:766.301 - 0.041ms
+T1E2CC 012:487.846 JLINK_Close()
+T1E2CC 012:497.751 - 9.904ms
+T1E2CC 012:497.781   
+T1E2CC 012:497.785   Closed

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 38 - 38
truing_control/PDU-AC_ADA_OLD8/prj/ctrl_board.uvguix.Gowon


+ 1 - 1
truing_control/PDU-AC_ADA_OLD8/prj/ctrl_board.uvoptx

@@ -135,7 +135,7 @@
         <SetRegEntry>
           <Number>0</Number>
           <Key>JL2CM3</Key>
-          <Name>-U69545260 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0GD32E23x.FLM -FS08004000 -FL0C000 -FP0($$Device:GD32E230C8$Flash\GD32E23x.FLM)</Name>
+          <Name>-U69545260 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0GD32E23x.FLM -FS08000000 -FL010000 -FP0($$Device:GD32E230C8$Flash\GD32E23x.FLM)</Name>
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>

+ 2 - 2
truing_control/PDU-AC_ADA_OLD8/prj/ctrl_board.uvprojx

@@ -275,8 +275,8 @@
               </OCR_RVCT3>
               <OCR_RVCT4>
                 <Type>1</Type>
-                <StartAddress>0x8004000</StartAddress>
-                <Size>0xc000</Size>
+                <StartAddress>0x8000000</StartAddress>
+                <Size>0x10000</Size>
               </OCR_RVCT4>
               <OCR_RVCT5>
                 <Type>1</Type>

+ 1 - 1
truing_control/PDU-AC_ADA_OLD8/user/board_cfg.h

@@ -15,7 +15,7 @@
 
 
 
-#define OPEN_WATCH_DOG  0
+#define OPEN_WATCH_DOG  1
 
 #define  POWER_DC           0
 #define  POWER_AC           1

+ 34 - 32
truing_control/PDU-AC_ADA_OLD8/user/main.c

@@ -43,28 +43,31 @@ static void break_2_boot_upgreade(void);
 
 
 int main(){
-	app_init(&meta_data);
-	//InitSysTick();
-	fwdgt_Init();
+	
+	ac_board.md_data.r_data.dev_chn =  ACSingCurrid << 8 | RelaySlaveChaNum;
+	InitSysTick();
 	led_init();
 	lock_init();
 	detection_init();
+	key_init();
 	relay_init();
 	haddr_init();
 	eeprom_init();
-	time_init();
+	read_config_from_eeprom();
 	electricity_init();
+	time_init();
 	query_init();
+	
+	//device
+	
+	fwdgt_Init();
 	eMBInit(MB_RTU, ac_board.haddr, 0, 115200, MB_PAR_NONE);
 	eMBEnable();
-	ac_board.feed_dog();
-	//device
-	ac_board.md_data.r_data.dev_chn =   ACSingCurrid << 8 | RelaySlaveChaNum;
-	//
+	
+	
+	
 	ac_board.md_data.r_data.info.channels = RelaySlaveChaNum;
-	read_config_from_eeprom();
-	ac_board.feed_dog();
-	strcpy((char*)&(ac_board.md_data.r_data.info.date),(char *)__DATE__);
+	strcpy((char*)&(ac_board.md_data.r_data.info.date),__DATE__);
 	strcat((char*)&(ac_board.md_data.r_data.info.date)," ");
 	strcat((char*)&(ac_board.md_data.r_data.info.date),__TIME__);
 	strcpy((char*)&(ac_board.md_data.r_data.info.ver),VERSION);
@@ -83,6 +86,7 @@ int main(){
 			ac_board.handle_status[i] = ac_board.relay_staging_staus[i];
 			ac_board.relay_staging_staus[i] = 0;
 		}
+		ac_board.handle_input_pt[0] = 0;
 	}
 #if SURPPORT_2_PT		
 		if((ac_board.md_data.r_data.detection & 0x2) == 0)
@@ -112,13 +116,11 @@ int main(){
 			ac_board.clear_flag = 0;
 			reset_config_for_eeprom();
 		}
-		if(ac_board.break_uboot)
-		{
-			break_2_boot_upgreade();
-		}
 	}
+	return 0;
 }
 
+static uint16_t _count = 0;
 
 static void task_query(void)
 {
@@ -189,24 +191,24 @@ static void task_10s(void)
 
 	}
 }
-static void break_2_boot_upgreade(void)
-{
-	meta_data.errno = 0;
-	meta_data.operation_flag = 1;
-	meta_data.recent_running_time = (uint32_t) ac_board.md_data.r_data.info.runing_time;
-	flash_erase_meta();
-	flash_write_meta(&meta_data);
-	__disable_irq();
-	//__set_FAULTMASK(1);
-	NVIC_SystemReset();
-}
+//static void break_2_boot_upgreade(void)
+//{
+//	meta_data.errno = 0;
+//	meta_data.operation_flag = 1;
+//	meta_data.recent_running_time = (uint32_t) ac_board.md_data.r_data.info.runing_time;
+//	flash_erase_meta();
+//	flash_write_meta(&meta_data);
+//	__disable_irq();
+//	//__set_FAULTMASK(1);
+//	NVIC_SystemReset();
+//}
 
-static void app_init(META_DATA_S *meta)
-{
-	nvic_vector_table_set(NVIC_VECTTAB_FLASH,0x08004000 - NVIC_VECTTAB_FLASH);
-	flash_get_meta_data(meta);
-	__enable_irq();
-}
+//static void app_init(META_DATA_S *meta)
+//{
+//	nvic_vector_table_set(NVIC_VECTTAB_FLASH,0x08004000 - NVIC_VECTTAB_FLASH);
+//	flash_get_meta_data(meta);
+//	__enable_irq();
+//}
 
 static void relay_ctrl(void)
 {