更新:

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

View File

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

View File

@ -111,7 +111,7 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = ADS1220_DRDY_Pin; GPIO_InitStruct.Pin = ADS1220_DRDY_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 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); HAL_GPIO_Init(ADS1220_DRDY_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */

File diff suppressed because one or more lines are too long

View File

@ -285,16 +285,6 @@
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>data_1220</ItemText> <ItemText>data_1220</ItemText>
</Ww> </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> </WatchWindow1>
<WatchWindow2> <WatchWindow2>
<Ww> <Ww>
@ -317,7 +307,7 @@
<DebugFlag> <DebugFlag>
<trace>0</trace> <trace>0</trace>
<periodic>1</periodic> <periodic>1</periodic>
<aLwin>0</aLwin> <aLwin>1</aLwin>
<aCover>0</aCover> <aCover>0</aCover>
<aSer1>0</aSer1> <aSer1>0</aSer1>
<aSer2>0</aSer2> <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.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.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 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_Label=ADS1220_DRDY
PA0-WKUP.GPIO_PuPd=GPIO_PULLUP
PA0-WKUP.Locked=true PA0-WKUP.Locked=true
PA0-WKUP.Signal=GPIO_Input PA0-WKUP.Signal=GPIO_Input
PA1.GPIOParameters=GPIO_Label PA1.GPIOParameters=GPIO_Label