STM32H7 ADC最大速率

STM32H7 ADC最大速率

硬件限制

封装

在手册 AN5354 中说明了不同封装、不同分辨率的最大速率是不一致的;

image-20250326155948081

  • BGA封装的ADC的速度要快于LQFP封装的速度的;

    分辨位数越高、转换时间越长,所以ADC的最大采样速率也就最低;

ADC通道模式

image-20250326163136831 image-20250326162836002
  • STM32H7的ADC有三种类型Slow、Fast、Direct;

    这取决于引脚和ADC采样电容之间存在的电阻的阻值,阻值越小,给电容充电的时间越短,采样速率更快;

image-20250326164330071
  • ADC123的通道[0:5] 是 fast channels , [6:19] slow channels;
image-20250326170013229
  • 以H750为例,数据手册中说明了不同通道类型的ADC的最大采样速率是不同的;

设备的类型

image-20250326174332620
  • V版硬件芯片对ADC主频的强制二分频

测试

使用 V版本STM32H750VBT6ADC1_IN3 测试

使用定时器触发DMA采样

根据手册得到ADC的最大采样速率为 1.9M

CubeMx配置

ADC

时钟配置

image-20250327095758844

ADC具体配置
image-20250327095939435 image-20250327100031624 image-20250327100044719

使用TIM4触发DMA采样

ADC 时钟源

TIM

image-20250327100133907

代码

采样1000次后拉高测试引脚的电平,设置标志位,在主循环中将adc采样二点数据打印出来后再次开启采样

// 数据定义
#define ADC_BUF_SIZE  1000
uint16_t ADC_BUF[2 * ADC_BUF_SIZE + 20];
uint8_t flag = 0;

// 中断回调
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
{
	HAL_GPIO_WritePin(TP_GPIO_Port, TP_Pin, GPIO_PIN_SET);
	HAL_TIM_PWM_Stop(&htim4, TIM_CHANNEL_1);
	HAL_ADC_Stop_DMA(&hadc1);
	flag = 1;
}



// 开启pwm输出和ADC采样
	HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);
	HAL_ADC_Start_DMA(&hadc1, (uint32_t *)ADC_BUF, ADC_BUF_SIZE);
	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		
		if(flag)
		{
			flag = 0;
			for (int i = 0; i < ADC_BUF_SIZE; i++)
			{
				printf("%d\r\n",ADC_BUF[i]);
			}
			
			memset(ADC_BUF, 0, sizeof(ADC_BUF));
			__HAL_TIM_SetCounter(&htim4, 0);             
			HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);
			HAL_ADC_Start_DMA(&hadc1, (uint32_t *)ADC_BUF, ADC_BUF_SIZE);
			HAL_GPIO_WritePin(TP_GPIO_Port, TP_Pin, GPIO_PIN_RESET);
			
			
		}
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

结果

image-20250327111423323
  • Tim的PWM输出是1.9M

    ADC采样1000个点使用的时间为526.332uS,采样频率为1.9M;

image-20250327112339760
  • 能后正确采样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值