上位机图像处理和嵌入式模块部署(h750 mcu和ad/da电路)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

大部分同学学习mcu的时候,都会把重点放在232、485、can、usb、eth这些常规的通信接口上面。还有一部分同学,可能会对lcd、camera这些有着丰富信息的外设感兴趣。但是,mcu真正和自然界打交道的部分,其实是ad/da功能。也就是说,mcu本身其实是通过ad/da ip和真实的物理世界打交道的。

当然,ad/da作为基本功能,从低端的stm32f103就开始支持,这一点大家注意下。

1、什么是ad/da

所谓的ad/da,就是模拟量转成数字量、数字量转成模拟量。真实的世界,是没有数字量的,但是mcu本身数据处理的时候,又是没有办法处理模拟量的,所以这就出现了ad/da这两个ip。ad多用于数据输入,da多用于数据输出。

2、ad/da的评判标准

通常来说,ad做起来会稍微难一点,我们评价ad的好坏,通常就是看它的转换精度和转换速度是多少。因为mcu上面的ad/da都是集成上去的,作为一般的工业控制问题不大。如果需要高精度、高速度的ad转换,那么就需要独立ad芯片的帮助了。

da的话,一般相对容易一点,代码量也少很多。

3、一般调试方法

通常情况下,一般先调试da,也就是我们通过da输出不同的电压。这样,mcu接一个示波器之后,就可以确认不同的电压数值了。da调试好了之后,就可以把da生成的电压,用短接线转到ad上面,此时可以通过上位机控制输出电压,结合mcu上面的打印,就知道ad有没有采样正确了。

4、电商开发板的测试方法

如果是开发板的话,测试ad的时候,可以把对应的pin脚先后接到3.3v、gnd上面,这个时候查看下,对应的打印是不是正确。接着测试da的时候,原来可能输出的是一个正弦波,手边没有示波器的话,比较麻烦,我们可以把正弦波转成常数,

复制代码
#if 0
const uint16_t Sine12bit[32] = {
	2048	, 2460	, 2856	, 3218	, 3532	, 3786	, 3969	, 4072	,
	4093	, 4031	, 3887	, 3668	, 3382	, 3042	, 2661	, 2255	, 
	1841	, 1435	, 1054	, 714	, 428	, 209	, 65	, 3		,
	24		, 127	, 310	, 564	, 878	, 1240	, 1636	, 2048
};
#else
uint16_t Sine12bit[32] = {0};
#endif

想要设置成什么电压,直接赋值即可,通过串口打印一下,

复制代码
	for (Idx = 0; Idx < 32; Idx++)
    {
		Sine12bit[Idx] = 4093;
	}

5、什么时候需要独立ad/da芯片

**mcu集成的ad/da虽然比较方便,但是在采样数量、精度和速度上面和专业的ad/da芯片还是有差距。**如果是需要在工业、车辆、医疗和军工能领域,希望对信号进行精确的采样和输出,最好还是使用专业的ad/da芯片。接口的话,一般就是spi接口。

6、数字电路、模拟电路layout分开

ad和da中有一部分是模拟电路,这和我们之前纯数字电路还是稍有不同的。实际layout实现的时候,模拟电源、模拟地和数字电源、数字地最好区分开来,不要相互串扰。

7、ad/da不一定同时使用

有的场景下,ad只是为了监测使用的,这种情况下,就不需要da部分了。比如说,我们需要mcu检测温度、湿度、压力、压强、有毒气体浓度等等,如果是这种情况的话,那么就不需要da部分,直接通过ad采样,接着通过232/485或者是eth,把数据送出去就可以了。

8、ad/da一般需要搭配集成运放电路

很多时候,da/ad采集的信号是有范围要求的,比如说输入、输出不能超过3.3v。**但是外部信号传递过来的时候,可能是-24v到24v,这种情况下,就需要把电压映射在0~3.3v之间。输出其实也是一样。**要做到这一点,就要把读书时候学到的运放电路用起来了。所以,我们看电路板的时候,除了电源部分有很多的模拟器件,在ad/da部分也有一些模拟电路的。

相关推荐
物联网嵌入式小冉学长9 小时前
10.C S编程错误分析
c语言·stm32·单片机·算法·嵌入式
蝈蝈(GuoGuo)1 天前
STM32103CBT6显示ST7789通过SPI方式显示柬埔寨文
stm32·单片机·嵌入式硬件
Ronin-Lotus1 天前
嵌入式硬件篇---常见电平标准
嵌入式硬件·fpga开发·常见的电平标准
大鼻噶喳1 天前
使用VSCode开发MCU,FreeRTOS进Hard_Fault调试
vscode·单片机
我命由我123451 天前
嵌入式 STM32 开发问题:烧录 STM32CubeMX 创建的 Keil 程序没有反应
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·嵌入式
麦德泽特1 天前
超高速总线CDCTL01A 芯片在机器人领域的应用解析
人工智能·嵌入式硬件·物联网·机器人·信息与通信
vicorv251 天前
电流传感器在汽车中的应用:从BMS电池管理到电机控制的工程解析
stm32·单片机·嵌入式硬件
JINX的诅咒1 天前
FPGA多通道卷积加速器:从零构建手写识别的硬件引擎
嵌入式硬件·fpga开发·cnn·开源
阿让啊2 天前
Notepad++如何列选
c语言·嵌入式硬件·notepad++
Archer-2 天前
解决STM32H7系列串口DMA发送一次卡死
stm32·单片机·嵌入式硬件