[经验] 数字信号处理_DSP教学实验箱:2-19 数模转换实验(SPI总线输出电压值)

创龙教仪   2023-8-24 10:57 楼主

52 2-19 数模转换实验(SPI总线输出电压值)

 

实验目的

本节视频的目的是掌握SPI总线的使用,了解AD5724的芯片特性和使用,并实现基于AD5724输出电压值。

实验原理

硬件原理图

找到DAC,可查看DAC的相关控制引脚

 

wKgaomTmxMeAL924AAUxtaUQRbQ906.png

 

SPI

SPI是串行外设接口(Serial Peripheral Interface),是一种高速、全双工、同步的通信总线,在芯片的引脚上占用三根线(一对一通信)、四根线或五根线。一般是四线。

SPI 通常用于器件与外部设备之间的通信. 典型应用包括通过外部 I/O 或外设扩展移位寄存器,显示驱动器以及模拟-数字转换器等。

 

wKgZomTmxNOAUA68AATnzxSZEPg091.png

 

SPI功能框图

.左侧连接外部设备,右侧连接CPU

 

wKgZomTmxN2AX2sRAAbECnteWgs977.png

 

SPI数据传输

SPI接口实际上是两个简单的移位寄存器,在主器件产生的使能信号和移位脉冲下,按位传输。上升沿发送,下降沿接收。或下降沿发送,上升沿接收。

 

wKgZomTmxOWAb6LgAAPzVXae-_Y608.png

 

D/A转换

D/A转换,即数模转换,是指将输入的二进制数字量转换成模拟量,以直流电压或直流电流的形式输出。D/A转换器实质上是一个译码器(解码器)。D/A转换器一般是由数码缓冲寄存器、模拟电子开关、参考电压和求和电路等组成。

AD5724芯片

TL6748-PlusTEB实验箱上的DA输出是基于 ADI AD5724 芯片进行设计的,具体特性如下:

12 位;

4 通道;

SPI 串行读取方式;

软件可调输出范围:0+5V、0+10V、0~+10.8V、±5V、±10V、±10.8V。

 

wKgaomTmxPOAavVLAAi_qMs8V84973.png

 

程序流程设计

程序流程设计中首先要进行外设使能配置,接着初始化UART2串口,配置管脚为SPI管脚,然后初始化SPI和DAC,最后DAC输出电压值并在UART2窗口终端打印数值。

 

wKgZomTmxP6AGrJbAAMz4C6bJEM767.png

 

方向配置源码

管脚方向配置

使用StarterWare 库函数将 GPIO 口配置为输出模式。相关函数通过“gpio.h”文件引用。

StarterWare API 接口

GPIODirModeSet(SOC_GPIO_0_REGS, 1, GPIO_DIR_OUTPUT);

将GPIO配置为输出的函数源码和函数使用说明可以查看gpio.c。其中,第一个参是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的方向。

操作现象

实验设备

 

wKgZomTmxR6AQ5P9AAh071GbXl8628.png

 

硬件连接

(1)使用RS232交叉串口母母线和USB转RS232串口线连接实验板的UART2和电脑的USB口。

(2)连接仿真器和电脑的USB接口,

(3)将拨码开关拨到DEBUG模式01111,

(4)连接实验箱电源,拨动电源开关上电。

 

wKgaomTmxS-AYLy5AAqNxSMH1DM416.png

 

软件操作

设置串口调试工具

(1)先在设备管理器查看串口的端口号;

(2)再设置串口调试工具,波特率设置为115200。

 

wKgaomTmxTqAcvo6AAqNxQVKjSQ812.png

 

设置好串口调试工具后,在CCS里进行相关操作。

(1)导入工程,选择Demo文件夹下的对应工程

(2)编译工程

(3)将CCS连接实验箱并加载程序

(4)点击运行程序

(5)串口调试终端会打印从 TL5724 模块相应的输出寄存器回读数据。

(6)经过转换运算,可得出:通道A电压=3V;通道B电压=5V;通道C电压=7V;通道D电压=10V。

(7)TDAC四个通道输出恒定电压,相应的LED被点亮,输出电压越高LED的亮度越亮。

(8)将万用表的测试头正极接触DAC的各个通道依次测量电压值,地接触实验板上的GND测试点。可以看到使用万用表读出的数据与计算值在误差允许范围内是一致的。

(9)实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

 

wKgZomTmxUSAJ5T3AAqNxZPT8Bo855.png

 

DAC电压计算方法

由于TL5724为4通道12位DAC,所以采用以上数据的前3位。

CHA=0x4cc=1228

CHB=0x7ff=2047

CHC=0xb32=2866

CHD=0xfff=4095

在这里以通道A为例,通道A取前三位,即为0x4cc,转换为十进制数值为1228。

 

wKgaomTmxVKAGWNYAAHFAEo3CfI816.png

 

再经过转换公式

V:输出电压

N:数值(终端显示输出寄存器回读有效数据)

R:量程(本程序默认为10)

 

wKgaomTmxVqAd94kAAE0y5ZAHuI888.png

 

CON40(通道A)电压=1228/4095*10=3

CON39(通道B)电压=2047/4095*10=5

CON38(通道C)电压=2866/4095*10=7

CON37(通道D)电压=4095/4095*10=10

计算可得出通道A的输出电压为3V,和程序设置的输出电压一致。

回复评论 (1)

学到了,谢谢

点赞  2023-12-1 13:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复