更新:

1、SIG16132驱动修正,电阻采集的激励源与4-20mA回采产生了冲突;
2、HART连接模式切换,补充了Vout的控制;
This commit is contained in:
吴俊潮 2025-08-05 16:41:30 +08:00
parent 46e04391a7
commit 5c2f009625
7 changed files with 22300 additions and 22297 deletions

View File

@ -12,6 +12,9 @@
#define HART_250OHM_ENABLE HAL_GPIO_WritePin(RP_EN_GPIO_Port, RP_EN_Pin, GPIO_PIN_RESET) #define HART_250OHM_ENABLE HAL_GPIO_WritePin(RP_EN_GPIO_Port, RP_EN_Pin, GPIO_PIN_RESET)
#define HART_250OHM_DISABLE HAL_GPIO_WritePin(RP_EN_GPIO_Port, RP_EN_Pin, GPIO_PIN_SET) #define HART_250OHM_DISABLE HAL_GPIO_WritePin(RP_EN_GPIO_Port, RP_EN_Pin, GPIO_PIN_SET)
#define HART_VOUT_ENABLE HAL_GPIO_WritePin(Vout_EN_GPIO_Port, Vout_EN_Pin, GPIO_PIN_SET)
#define HART_VOUT_DISABLE HAL_GPIO_WritePin(Vout_EN_GPIO_Port, Vout_EN_Pin, GPIO_PIN_RESET)
void hart_send(UART_HandleTypeDef *huart, uint8_t *data); void hart_send(UART_HandleTypeDef *huart, uint8_t *data);
void hart_communicate(st_scom *scom); void hart_communicate(st_scom *scom);

View File

@ -637,7 +637,7 @@ void fun_get_sig16132_ch(uint8_t channel, float32 *data)
delay_nus(100); // RESET SIG24130 delay_nus(100); // RESET SIG24130
SIG24130_SetRefMux(2); // 内部2.5V参考 SIG24130_SetRefMux(2); // 内部2.5V参考
SIG24130_SetInputMux(0, 1); // 差分输入in0+ in1- SIG24130_SetInputMux(0, 1); // 差分输入in0+ in1-
SIG24130_SetIDAC(6, 7, 6, 0); // 1mA IDAC0 IDAC1 pair 0 SIG24130_SetIDAC(6, 6, 6, 0); // 1mA IDAC0 IDAC1 pair 0
SIG24130_CSn_LOW; SIG24130_CSn_LOW;
delay_nus(2); // DOUT/DRDYn signal can only be available at the pin while CSn pin is low, otherwise it is tri-state. delay_nus(2); // DOUT/DRDYn signal can only be available at the pin while CSn pin is low, otherwise it is tri-state.
//*data = SIG16130_RetrievalData(1, 0); //*data = SIG16130_RetrievalData(1, 0);
@ -699,8 +699,8 @@ void fun_get_sig16132_ch(uint8_t channel, float32 *data)
// *data = temp1; // *data = temp1;
//voltage(mv), 500uA //voltage(mv), 500uA + 500uA
*data = voltage * 1000.0f/ 0.5f; *data = voltage * 1000.0f/ 1.0f;
mux_signal.pv_calibrated = calibrate_res_ohm_in(*data); mux_signal.pv_calibrated = calibrate_res_ohm_in(*data);
} }
} }

View File

@ -238,6 +238,7 @@ void start_task_hart(void const * argument)
case HART_LISTEN: case HART_LISTEN:
{ {
HART_24V_DISABLE; HART_24V_DISABLE;
HART_VOUT_DISABLE;
HART_250OHM_DISABLE; HART_250OHM_DISABLE;
} }
break; break;
@ -245,6 +246,8 @@ void start_task_hart(void const * argument)
case HART_INTERNAL_24V: case HART_INTERNAL_24V:
{ {
HART_24V_ENABLE; HART_24V_ENABLE;
HART_VOUT_ENABLE;
HART_250OHM_DISABLE; HART_250OHM_DISABLE;
} }
break; break;
@ -252,7 +255,9 @@ void start_task_hart(void const * argument)
case HART_INTERNAL_250OHM: case HART_INTERNAL_250OHM:
{ {
HART_250OHM_ENABLE; HART_250OHM_ENABLE;
HART_24V_DISABLE; HART_24V_DISABLE;
HART_VOUT_DISABLE;
} }
break; break;

View File

@ -151,19 +151,12 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pins : PDPin PDPin */
GPIO_InitStruct.Pin = DAC8552_SYNC_Pin; GPIO_InitStruct.Pin = DAC8552_SYNC_Pin|HART_RST_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(DAC8552_SYNC_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = HART_RST_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(HART_RST_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = HART_OCD_Pin; GPIO_InitStruct.Pin = HART_OCD_Pin;

View File

@ -150,7 +150,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key> <Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U53FF6B064884525650271587 -O2254 -SF5000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2 -WK0</Name> <Name>-U6&amp;3166F0CB&amp;0&amp;1 -O2254 -SF5000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2 -WK0</Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint/>

File diff suppressed because it is too large Load Diff

View File

@ -258,8 +258,9 @@ PA0-WKUP.Signal=GPIO_Input
PA1.GPIOParameters=GPIO_Label PA1.GPIOParameters=GPIO_Label
PA1.GPIO_Label=CV_ADC PA1.GPIO_Label=CV_ADC
PA1.Signal=ADCx_IN1 PA1.Signal=ADCx_IN1
PA10.GPIOParameters=GPIO_Label PA10.GPIOParameters=GPIO_PuPd,GPIO_Label
PA10.GPIO_Label=HART_RX PA10.GPIO_Label=HART_RX
PA10.GPIO_PuPd=GPIO_NOPULL
PA10.Mode=Asynchronous PA10.Mode=Asynchronous
PA10.Signal=USART1_RX PA10.Signal=USART1_RX
PA11.GPIOParameters=GPIO_Label PA11.GPIOParameters=GPIO_Label
@ -475,13 +476,14 @@ PD1.Locked=true
PD1.Signal=GPIO_Output PD1.Signal=GPIO_Output
PD10.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PD10.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PD10.GPIO_Label=HART_RST PD10.GPIO_Label=HART_RST
PD10.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD PD10.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
PD10.GPIO_PuPd=GPIO_PULLUP PD10.GPIO_PuPd=GPIO_PULLUP
PD10.Locked=true PD10.Locked=true
PD10.PinState=GPIO_PIN_SET PD10.PinState=GPIO_PIN_SET
PD10.Signal=GPIO_Output PD10.Signal=GPIO_Output
PD11.GPIOParameters=GPIO_Label PD11.GPIOParameters=GPIO_PuPd,GPIO_Label
PD11.GPIO_Label=HART_OCD PD11.GPIO_Label=HART_OCD
PD11.GPIO_PuPd=GPIO_NOPULL
PD11.Locked=true PD11.Locked=true
PD11.Signal=GPIO_Input PD11.Signal=GPIO_Input
PD12.GPIOParameters=GPIO_Speed,GPIO_Label PD12.GPIOParameters=GPIO_Speed,GPIO_Label