赞
踩
STM32F373中的16位ADC
前面制作的 STM32F373的测试电路板, 由于没有吧 16bit 高精度 ADC 管脚引出, 所以下面重新制板, 用来测试 F373的 16bit 的ADC的性能。
在前面实验电路板的基础上, 将原来输出的排针连接到高精度 16bit ADC的管脚。 重新布线, 下面通过一分钟制板方法制作测试电路板。
▲ 图1.2.1 测试电路板
▲ 图1.2.2 PCB版图
一分钟之后, 得到了实验电路板, 电路板制作的非常完美。 经过焊接和清洗, 下面对电路板进行调试。
将测试电路放置在面包板上, 提供工作电源5V, 电路板上3.3V稳压之后, 给单片机提供工作电源。
利用电位器, 给 SDADC1的输入通道4 提供不同的电压, , 单片机将采集到的数值显示在OLED屏幕上。 可以看到采集到的数值在变化。 为了获得 ADC 的输入范围, 下面利用 DH1766可编程电压源, 设定输入电压。 记录采集到的数值以及对应的电压。
首先测试 Single Ended 模式, 参考电压为外部输入 的 3.3V。 ADC转换电压范围是 0 到 1.65V, 最大值为 0x7fff。 设置转换模式为 Single Ended Zeor Referebce, 电压转换范围 可以达到 参考电压的范围, 转换结果从 -0x8000 到 0x7fff。
▲ 图1.3.1 输入电压与转换结果
▲ 图1.3.2 设置为Single-End zero Reference 测量的结果
通过软件设置, 在DMA中断中, 在 LED 管脚输出一个脉冲, 通过测量脉冲, 可以知道 ADC的转换速率。 大概为 11kHz。 设置转换模式为快速模式, 再次测量, 可以看到转换速度达到了33kHz 左右了。
HAL_SDADC_Start_DMA(&hsdadc1, (uint32_t *)g_nSDADCBuffer, SDADC_CHANNEL * SDADC_BUFFER);
__HAL_DMA_DISABLE_IT(&hdma_sdadc1, DMA_IT_HT);
调整系统时间, 设置 Sigma Delta ADC的时钟为 6MHz, 达到了该模块最大的工作时钟频率。 重新测量 ADC的速度, 可以看到此时, 它达到了 50kHz 左右。
本文对 STM32F373中的16位的ADC进行了测试。 ADC可以输出 16比特的二进制互补转换结果。 转换速度最大可以达到 50kHz。
■ 相关文献链接:
● 相关图表链接:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。