更新:

1、通道切换&继电器选择验证完毕,能够正确切换至各个通道;
2、电阻采集驱动配置调整,目前采集得到的电阻值与万用表的相差不大;
3、热电偶和热电阻能够读到稳定的数据,但是换算结果异常;
This commit is contained in:
吴俊潮 2025-07-24 19:15:54 +08:00
parent 87978c8da2
commit 2de39a3a96
4 changed files with 11767 additions and 15336 deletions

View File

@ -392,49 +392,69 @@ void mux_channel_switch(CHANNEL cha)
{
case CH0_OUT_VOL_V:
{
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
//关闭 RELAY_1 RELAY_2 RELAY_3
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//SW0, 000
HC138_A2_SET(GPIO_PIN_RESET);
HC138_A1_SET(GPIO_PIN_RESET);
HC138_A0_SET(GPIO_PIN_RESET);
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
}
break;
case CH1_OUT_VOL_MV:
{
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
//关闭 RELAY_1 RELAY_2 RELAY_3
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//SW1, 001
HC138_A2_SET(GPIO_PIN_RESET);
HC138_A1_SET(GPIO_PIN_RESET);
HC138_A0_SET(GPIO_PIN_SET);
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
}
break;
case CH2_OUT_CUR:
{
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
//关闭 RELAY_1 RELAY_2 RELAY_3
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//SW2, 010
HC138_A2_SET(GPIO_PIN_RESET);
HC138_A1_SET(GPIO_PIN_SET);
HC138_A0_SET(GPIO_PIN_RESET);
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
}
break;
case CH3_OUT_FRE:
{
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
//关闭 RELAY_1 RELAY_2 RELAY_3
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//SW3, 011
HC138_A2_SET(GPIO_PIN_RESET);
HC138_A1_SET(GPIO_PIN_SET);
HC138_A0_SET(GPIO_PIN_SET);
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
}
break;
@ -444,11 +464,11 @@ void mux_channel_switch(CHANNEL cha)
HC138_G1_SET(GPIO_PIN_RESET);
//关闭 RELAY_2 和 RELAY_3
RELAY_2_SET(GPIO_PIN_SET);
RELAY_3_SET(GPIO_PIN_SET);
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//打开RELAY_1
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_1_SET(GPIO_PIN_SET);
}
break;
@ -458,49 +478,69 @@ void mux_channel_switch(CHANNEL cha)
case CH6_IN_VOL:
{
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
//关闭 RELAY_1 RELAY_2 RELAY_3
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//SW4, 100
HC138_A2_SET(GPIO_PIN_SET);
HC138_A1_SET(GPIO_PIN_RESET);
HC138_A0_SET(GPIO_PIN_RESET);
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
}
break;
case CH7_IN_MVOL:
{
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
//关闭 RELAY_1 RELAY_2 RELAY_3
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//SW5, 101
HC138_A2_SET(GPIO_PIN_SET);
HC138_A1_SET(GPIO_PIN_RESET);
HC138_A0_SET(GPIO_PIN_SET);
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
}
break;
case CH8_IN_CUR:
{
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
//关闭 RELAY_1 RELAY_2 RELAY_3
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//SW6, 110
HC138_A2_SET(GPIO_PIN_SET);
HC138_A1_SET(GPIO_PIN_SET);
HC138_A0_SET(GPIO_PIN_RESET);
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
}
break;
case CH9_IN_FRE:
{
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
//关闭 RELAY_1 RELAY_2 RELAY_3
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//SW7, 111
HC138_A2_SET(GPIO_PIN_SET);
HC138_A1_SET(GPIO_PIN_SET);
HC138_A0_SET(GPIO_PIN_SET);
//高电平使能拉低指定通道低电平关闭8路通道全部拉高
HC138_G1_SET(GPIO_PIN_SET);
}
break;
@ -510,11 +550,11 @@ void mux_channel_switch(CHANNEL cha)
HC138_G1_SET(GPIO_PIN_RESET);
//关闭 RELAY_1 和 RELAY_3
RELAY_1_SET(GPIO_PIN_SET);
RELAY_3_SET(GPIO_PIN_SET);
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_RESET);
//打开RELAY_2
RELAY_2_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_SET);
}
break;
@ -524,11 +564,11 @@ void mux_channel_switch(CHANNEL cha)
HC138_G1_SET(GPIO_PIN_RESET);
//关闭 RELAY_1 和 RELAY_2
RELAY_1_SET(GPIO_PIN_SET);
RELAY_2_SET(GPIO_PIN_SET);
RELAY_1_SET(GPIO_PIN_RESET);
RELAY_2_SET(GPIO_PIN_RESET);
//打开RELAY_1
RELAY_3_SET(GPIO_PIN_RESET);
RELAY_3_SET(GPIO_PIN_SET);
}
break;

View File

@ -637,7 +637,7 @@ void fun_get_sig16132_ch(uint8_t channel, float32 *data)
delay_nus(100); // RESET SIG24130
SIG24130_SetRefMux(2); // 内部2.5V参考
SIG24130_SetInputMux(0, 1); // 差分输入in0+ in1-
SIG24130_SetIDAC(6, 6, 6, 0); // 1mA IDAC0 IDAC1 pair 0
SIG24130_SetIDAC(6, 7, 6, 0); // 1mA IDAC0 IDAC1 pair 0
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.
//*data = SIG16130_RetrievalData(1, 0);
@ -698,6 +698,8 @@ void fun_get_sig16132_ch(uint8_t channel, float32 *data)
// float32 temp2 = (-A - sqrt(A * A - 4 * B * (1 - Rt / R0))) / (2 * B);
// *data = temp1;
//voltage(mv), 500uA
*data = voltage * 1000.0f/ 0.5f;
mux_signal.pv_calibrated = calibrate_res_ohm_in(*data);
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff