上位机图像处理和嵌入式模块部署(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部分也有一些模拟电路的。

相关推荐
2CM_Embed3 小时前
Altium Designer 原理图与 PCB 快速相互定位:Cross Probe 交叉探针
嵌入式硬件·pcb·altium designer·c2000
恒锐丰-罗生4 小时前
宽压大电流同步降压优选|CN3906 DC-DC 电源芯片,车载 / 工控 / IoT 全能供电方案
嵌入式硬件·硬件工程
happygrilclh7 小时前
STM32,串口单字节中断接受,每次上电后,会收到一个0x00的解决办法。
单片机·嵌入式硬件
智闲电子设计8 小时前
STM32 独立看门狗 IWDG 实战:系统跑飞,它来兜底复位
stm32·单片机·嵌入式硬件
zcmodeltech9 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
程序员与背包客_CoderZ10 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
嵌入式阿蔡11 小时前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
天空'之城12 小时前
单片机基础核心知识点汇总(三)
单片机·嵌入式硬件
嵌入式阿蔡12 小时前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
恒锐丰科技韩生13 小时前
率能 SS8847E|2.7~15V 双通道 H 桥电机驱动 ETSSOP16 散热封装 家电 / 打印 / 舞台灯光专用
嵌入式硬件·硬件工程