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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-19 08:44:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-19 08:44:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-19 08:44:05       82 阅读
  4. Python语言-面向对象

    2024-06-19 08:44:05       91 阅读

热门阅读

  1. 基于单片机的直流电机调速系统设计探讨

    2024-06-19 08:44:05       30 阅读
  2. clean code-代码整洁之道 阅读笔记(第九章)

    2024-06-19 08:44:05       33 阅读
  3. 编程电脑怎么接网线:详细步骤与注意事项

    2024-06-19 08:44:05       29 阅读
  4. Linux入门学习指南(二)

    2024-06-19 08:44:05       32 阅读
  5. 重构与优化-优化函数调用(5)

    2024-06-19 08:44:05       33 阅读
  6. 5.卷积神经网络

    2024-06-19 08:44:05       29 阅读
  7. 医疗图像的校准

    2024-06-19 08:44:05       28 阅读