完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
SDADC为 Sigma-delta AD转换器。Sigma-delta 转换器又称过采样转换器,它包含两个基本电路:调制器和数字滤波器。 在调制器中,输入信号被加至数模转换器 (DAC)输出的负反馈信号。通过集成电路之后, 信号的差值到达比较器的输入 (1 位 ADC),在此与参考电压比较 (比较器作为 1 位量化器 工作)。比较器的输入信号 (1 位 ADC)控制着 1 位转换器,到达数字滤波器的输入。数字 滤波器降低流速,将 1 位的流转换为 16 位的字。使用的滤波器拓扑确保了低通的阶为 Sinc3。
SDADC总体框架如下所示,可以看出以下特性: (1)。时钟6M或1.5M,最小500kHz (2)。可编程增益:x0.5、 x1、 x2、 x4、 x8、 x16 及 x32 (3)。可选参考电压:VDDSD、 1.22 V、 1.8 V 及 VREF (4)。可设置偏移量offset SDADC有三种输入模式:(1)差分模式,(2)单端偏移模式,(3)单端零参考模式 在差分模式中,SDADC 转换的是 SDADCx_AINyP 和 SDADCx_AINyM 的差值。结果可能是 正值或负值,取决于5个输入电压更高。SDADC 无法测量负电压,并且每个通道的输入电压都必须在器件的电气极限之内。 输入范围为 [-Vref/(2*gain), + Vref/(2*gain)],转换值范围为 [-32767, +32767]。 在单端偏移模式中,通过将负输入内部连至 0 V 进行转换,负输入的相应引脚(SDADCx_AINyM) 可用作其它用处。要测量的信号施加于正输入 SDADCx_AINyP。此工作模式与差分模式类 似,只是输出数据范围仅为 0 到 +32767,而不是 –32767 到 +32767,因此有一半的动态范 围损失,导致 SNR 下降。 单端零参考模式中,信号施加于正输入 SDADCx_AINyP,负输入设为信号参考 (一般为 0 V)。此模式将一半标 度的输入共模注入 ADC,以此保持了与差分模式一样的动态范围 (-32767 到 +32767)。在 此模式中,注入的共模取决于增益变化。 以差分模式的SDADC的通道6,配合DMA采集为例: static void MX_SDADC1_Init(void) { SDADC_ConfParamTypeDef ConfParamStruct = {0}; hsdadc1.Instance = SDADC1; hsdadc1.Init.IdleLowPowerMode = SDADC_LOWPOWER_NONE; hsdadc1.Init.FastConversionMode = SDADC_FAST_CONV_ENABLE; hsdadc1.Init.SlowClockMode = SDADC_SLOW_CLOCK_DISABLE; hsdadc1.Init.ReferenceVoltage = SDADC_VREF_VDDA; if (HAL_SDADC_Init(&hsdadc1) != HAL_OK) { Error_Handler(); } ConfParamStruct.InputMode = SDADC_INPUT_MODE_DIFF; ConfParamStruct.Gain = SDADC_GAIN_1; ConfParamStruct.CommonMode = SDADC_COMMON_MODE_VDDA; ConfParamStruct.Offset = 0; if(HAL_SDADC_PrepareChannelConfig(&hsdadc1, SDADC_CONF_INDEX_0, &ConfParamStruct) != HAL_OK) { Error_Handler(); } if(HAL_SDADC_AssociateChannelConfig(&hsdadc1,SDADC_CHANNEL_6, SDADC_CONF_INDEX_0) != HAL_OK) { Error_Handler(); } HAL_SDADC_CalibrationStart(&hsdadc1, SDADC_CALIBRATION_SEQ_1); if (HAL_SDADC_PollForCalibEvent(&hsdadc1, 50) != HAL_OK) { Error_Handler(); } if(HAL_SDADC_SelectRegularTrigger(&hsdadc1, SDADC_SOFTWARE_TRIGGER) != HAL_OK) { Error_Handler(); } if(HAL_SDADC_ConfigChannel(&hsdadc1,SDADC_CHANNEL_6,SDADC_CONTINUOUS_CONV_ON) != HAL_OK) { Error_Handler(); } HAL_SDADC_Start_DMA(&hsdadc1, (uint32_t *)sdadc1_sample_value, MAX_SAMPLE_COUNT); } void HAL_SDADC_MspInit(SDADC_HandleTypeDef* hsdadc) { GPIO_InitTypeDef GPIO_InitStruct = {0}; if(hsdadc-》Instance==SDADC1) { /* USER CODE BEGIN SDADC1_MspInit 0 */ /* USER CODE END SDADC1_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_SDADC1_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); /**SDADC1 GPIO Configuration PB0 ------》 SDADC1_AIN6P PB1 ------》 SDADC1_AIN6M */ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /* SDADC1 DMA Init */ /* SDADC1 Init */ hdma_sdadc1.Instance = DMA2_Channel3; hdma_sdadc1.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma_sdadc1.Init.PeriphInc = DMA_PINC_DISABLE; hdma_sdadc1.Init.MemInc = DMA_MINC_ENABLE; hdma_sdadc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; hdma_sdadc1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; hdma_sdadc1.Init.Mode = DMA_CIRCULAR; hdma_sdadc1.Init.Priority = DMA_PRIORITY_LOW; if (HAL_DMA_Init(&hdma_sdadc1) != HAL_OK) { Error_Handler(); } __HAL_LINKDMA(hsdadc,hdma,hdma_sdadc1); /* USER CODE BEGIN SDADC1_MspInit 1 */ /* USER CODE END SDADC1_MspInit 1 */ } } static void MX_DMA_Init(void) { /* DMA controller clock enable */ __HAL_RCC_DMA2_CLK_ENABLE(); /* DMA interrupt init */ /* DMA2_Channel3_IRQn interrupt configuration */ HAL_NVIC_SetPriority(DMA2_Channel3_IRQn, 0, 0); HAL_NVIC_EnableIRQ(DMA2_Channel3_IRQn); } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1632 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1559 浏览 1 评论
985 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1605 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
653浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
523浏览 3评论
539浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
508浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 13:56 , Processed in 0.951572 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号