更新:

1、ADS1220采集正常,正负电压都很准(信号发生器mv);
2、ADS1220的DRDY脚不能悬空,上拉后问题解决;
This commit is contained in:
吴俊潮 2025-07-28 11:37:38 +08:00
parent d715fad4de
commit f2a2e82330
8 changed files with 25558 additions and 21919 deletions

View File

@ -280,6 +280,8 @@ static void ads1220_get_conversion_data(float32 *conversionData)
{
data_1220 ^= 0x00FFFFFF;
data_1220 += 1;
data_1220 *= -1;
}
//mv
@ -345,7 +347,7 @@ void ads1220_operation(uint8_t channel, float32 *data_pv)
ADS1220_OP_MODE_NORMAL, // 工作模式选择
ADS1220_CONVERSION_SINGLE_SHOT, // 转换模式*
ADS1220_DATA_RATE_45SPS, // 数据速率*
ADS1220_GAIN_8, // 增益配置*
ADS1220_GAIN_1, // 增益配置*
ADS1220_PGA_BYPASS, // 禁止/启用可编程增益放大器
ADS1220_IDAC1_DISABLED, // 选择IDAC1将路由到的通道
ADS1220_IDAC2_DISABLED, // 选择IDAC2将路由到的通道

View File

@ -10,24 +10,25 @@ BOOL dac7811_spi_init_flag = FALSE;
void fun_dac7811_spi1_init()
{
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_16BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi1.Init.CRCPolynomial = 10;
if (HAL_SPI_Init(&hspi1) != HAL_OK)
{
Error_Handler();
}
// hspi1.Instance = SPI1;
// hspi1.Init.Mode = SPI_MODE_MASTER;
// hspi1.Init.Direction = SPI_DIRECTION_2LINES;
// hspi1.Init.DataSize = SPI_DATASIZE_16BIT;
// hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
// hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
// hspi1.Init.NSS = SPI_NSS_SOFT;
// hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
// hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
// hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
// hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
// hspi1.Init.CRCPolynomial = 10;
// if (HAL_SPI_Init(&hspi1) != HAL_OK)
// {
// Error_Handler();
// }
MX_SPI1_Init();
ADS1220_CS(GPIO_PIN_SET);
//DAC7811_CS(GPIO_PIN_SET);
DAC7811_CS(GPIO_PIN_RESET);
}
void fun_dac7811_operate(float32 *data_sv)
@ -70,9 +71,9 @@ void fun_dac7811_operate(float32 *data_sv)
}
else
{
//DAC7811_CS(GPIO_PIN_RESET);
DAC7811_CS(GPIO_PIN_RESET);
HAL_SPI_Transmit(&hspi1, (uint8_t *)(&reg_data), 1, 1000);
//DAC7811_CS(GPIO_PIN_SET);
DAC7811_CS(GPIO_PIN_SET);
}
}

View File

@ -280,7 +280,8 @@ void mux_signal_switch(st_mux_signal *mux_signal)
break;
case CH4_OUT_RES:
if(mux_set_flag) fun_dac7811_operate(&mux_signal->data_sv); //设定
//if(mux_set_flag) fun_dac7811_operate(&mux_signal->data_sv); //设定
fun_dac7811_operate(&mux_signal->data_sv);
break;
case CH5_EMPTY:

View File

@ -111,7 +111,7 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = ADS1220_DRDY_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(ADS1220_DRDY_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */

File diff suppressed because one or more lines are too long

View File

@ -285,16 +285,6 @@
<WinNumber>1</WinNumber>
<ItemText>data_1220</ItemText>
</Ww>
<Ww>
<count>26</count>
<WinNumber>1</WinNumber>
<ItemText>ads1220spi_status_watch</ItemText>
</Ww>
<Ww>
<count>27</count>
<WinNumber>1</WinNumber>
<ItemText>RcvData</ItemText>
</Ww>
</WatchWindow1>
<WatchWindow2>
<Ww>
@ -317,7 +307,7 @@
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>0</aLwin>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>

File diff suppressed because it is too large Load Diff

View File

@ -247,8 +247,9 @@ NVIC.USART2_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART3_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART6_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
PA0-WKUP.GPIOParameters=GPIO_Label
PA0-WKUP.GPIOParameters=GPIO_PuPd,GPIO_Label
PA0-WKUP.GPIO_Label=ADS1220_DRDY
PA0-WKUP.GPIO_PuPd=GPIO_PULLUP
PA0-WKUP.Locked=true
PA0-WKUP.Signal=GPIO_Input
PA1.GPIOParameters=GPIO_Label