加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 一、前言
    • ※ 总  结 ※
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

如何通过单片机串口输出模拟量?

02/04 11:20
2148
阅读需 5 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

如果在电子线路设计中,碰到一个情况,那就是,单片机没有DAC资源,也没有多余的 PWM 端口可以使用。只剩下一个 串口还能用。那么如何通过该端口输出模拟电压呢?

利用单片机的端口,输出一个占空比可以调节的方波信号,经过RC低通滤波器,去除其中的交流分量之后,便可以输出方波信号中的直流信号。那么就剩下一个问题了,如何应用 UART 输出一个高电平占空比可以改变的方波信号呢?

单片机的串口发送一个字节的信号波形中,包括一个bit 的起始位,一个bit 的停止位。它们分别是0 和 1,这是无法改变的。中间八个bit的数据位是可以改变的。比如发送0x44,其中就会包含有两位高电平。这样就有了8个可以被控制的高低电平的数据位。那么这就可以实现 3bit 位的 DAC输出了。如果想实现 8bit 的 DAC输出。则需要 256个可以被控制的数据位。这样只要将连续32个发送字节合在一起,变可以形成256位可以控制高低电平的信号波形。从而实现 8bit 的 DAC 输出了。下面通过单片机测试一下这种串口输出模拟量的性能。

二、测试电路

设计基于STM32F103的测试电路板。这颗芯片我手边有很多,所以选择它进行实验。利用它的 串口2 进行测试。串口1用于程序的下载。使用RC低通滤波器对 TXD2信号进行滤波。实际上 RXD2 是没有使用的。另外,还将两路ADC引导端口。这样,可以利用ADC对外边送入的信号进行采集之后,再从 TXD2 送出,验证一下对音频信号的采集与合成的功能。布置单面测试电路板。其中包括一个飞线,使用 0 欧姆电阻进行跳线

▲ 图1.2.1 测试电路原理图

▲ 图1.2.2 PCB版图

  一分钟之后获得了两块测试PCB电路板,其中有一块有点过腐蚀。使用另外一块比较正常的进行测试。

焊接电路。放置在面包板上进行测试。面包板直接给测试电路提供 3.3V的工作电源。程序通过探针夹子进行下载。

三、软件测试

设置单片机的 UART2 的基本参数。输出波特率为 1MHz。这样可以提高输出信号的更新率。通过示波器可以测量到输出信号 每一位的时间 为1微秒,对应 1MHz的波特率。启动DMA输出模式,UART2 便可以通过DMA持续发送内存中 32 个字节内容。

D:zhuoqingwindowARMIARSTM32Test2024Test1CoreSrcmain.c

将32个字节设置为0,输出的电压波形,经过滤波之后测得的直流电压为 0.326V。其中看到的脉冲是每个字节的停止位对应的高电平脉冲。设置32个字节都为 0xff,看到的低脉冲是每个字节的起始位。读取的滤波后的直流电压为 2.9V。设置32个字节为 0x55。此时出现正负交替的脉冲波形,滤波之后的直流电压为 1.61V。

下面分别设置32个字节中,高电平位数从0变化到255,测量滤波之后的输出直流电压。可以看到随着位数的增加,输出直流电压线性上升。由于串口发送字节存在着起始位和停止位,所以对应的直流信号不是从零开始,最高电平也不是输出信号的最高值。

▲ 图1.3.1 设置32字节中高电平位数与滤波之后的直流电压

  设置输出DMA中的32个字节的 1 的位数按照正弦波变化,串口信号滤波之后输出完美的正弦波形。设置输出数据递增,滤波后的波形呈现锯齿波形。在下降沿出现缓变,这是因为输出RC低通滤波引起的。这是输出高低电平的情况,RC低通滤波在上升和下降沿都引起缓变。

※ 总  结 ※

本文测试了利用单片机串口输出PWM波形,然后通过低通滤波形成直流电压。利用这种方式,的确可以在特殊的情况下,给单片机产生一个DAC的端口。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
FKFSREIHM0.032768-T3 1 Fox Electronics Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, SMD, 4 PIN

ECAD模型

下载ECAD模型
$1.07 查看
DSC1123CI5-125.0000 1 Microchip Technology Inc CRYSTAL OSCILLATOR, CLOCK, 125MHz, LVDS OUTPUT
$4.68 查看
CB3LV-5I-25M0000 1 CTS Corporation HCMOS/TTL Output Clock Oscillator, 1.5MHz Min, 160MHz Max, 25MHz Nom, GREEN, CERAMIC PACKAGE-4
$1.5 查看

相关推荐

电子产业图谱

公众号TsinghuaJoking主笔。清华大学自动化系教师,研究兴趣范围包括自动控制、智能信息处理、嵌入式电子系统等。全国大学生智能汽车竞赛秘书处主任,技术组组长,网称“卓大大”。