2023年12月21日发(作者:慕容安萱)
FPGA/CPLD开发套件实验教程
——
PERI2-4DI篇
实验七、数模转换-TLC5620 DAC
实验目的:
号。
在这一课里,我们来学习数模转换器TLC5620,通过FPGA/CPLD来驱动TLC5620,输出经过DA转换后的数字电压信实验原理:
(1)TLC5620 DA简介
TLC5620C是带有高阻抗缓冲输入的4通道8位电源输出数模转换器集合。这些转换器可以产生单调的、一至两倍于基准电压和接地电压差值的输出。通常情况下TLC5620的供电电压为一个5V电源。器件内集成上电复位功能,确保启动时的环境是可重复的。
对TLC5620C的数字控制是通过一根简单的3路串行总线实现的。该总线兼容CMOS,并易于向所有的微处理器和微控制器设备提供接口。11位的命令字包括8位数据位,2位DAC选择位和1位范围位,后者用来选择输出范围是1倍还是2倍。DAC寄存器采用双缓存,允许一整套新值被写入设备中。通过LDAC实现DAC输出值的同时更新。数字量的输入采用史密斯触发器,从而有效降低噪声。
TLC5620的特点与对应原理框图如下:
4通道8位电压输出D/A转换器
5V单电源
串行接口
高阻抗的基准输入
可编程实现1至2倍的输出范围
设备可同时进行更新
内置上电复位
低功耗
半缓冲输出
1
FPGA/CPLD开发套件实验教程 —— PERI2-4DI篇
(2)TLC5620 硬件接口
TLC5620引脚名称如图所示。
引脚
名称
CLK
序号
7 I
O
O
O
O
I
I
I
I
I
I
串行接口时钟。引脚出现下降沿时将输入的数字量转发到串行接口寄存器里
DAC A模拟信号输出
DAC B模拟信号输出
DAC C模拟信号输出
DAC D模拟信号输出
存放数字量的串行接口
地回路及参考终端
加载DAC。当引脚出现高电平时,即使有数字量被读入串行口也不会对DAC
的输出进行更新。只有当引脚从高电平变为低电平时,DAC输出才更新。
LOAD
REFA
REFB
8
2
3
串口加载控制。当LDAC是低电平,并且LOAD引脚出现下降沿时数字量被保
存到锁存器,随后输出端产生模拟电压。
输入到DAC A的参考电压。这个电压定义了输出模拟量的范围。
输入到DAC B的参考电压。这个电压定义了输出模拟量的范围。
2
输入/输出 描述
DACA 12
DACB 11
DACC 10
DACD 9
DATA
GND
LDAC
6
1
13
FPGA/CPLD开发套件实验教程 —— PERI2-4DI篇
REFC
REFD
VDD
TLC5620可方便地与FPGA/CPLD连接使用。与FPGA/CPLD的接口如图所示。
4
5
14
I
I
I
输入到DAC C的参考电压。这个电压定义了输出模拟量的范围。
输入到DAC D的参考电压。这个电压定义了输出模拟量的范围。
正极电源
其中VREF为2.5V基准源,四个通道都采用其作为基准源,输入5V电压与输出电压都经过滤波,保证精度。
(3)TLC5620 工作时序
TLC5620是串联型8位D/A转换器(DAC),它有4路独立的电压输出D/A 转换器,具备各自独立的基准源,其输出还可以编程为2倍或1倍,在控制TLC5620时,只要对该芯片的DATA、CLK、LDAC、LOAD端口控制即可,TLC5620控制字为11位,包括8位数字量,2位通道选择,1位增益选择。其中命令格式第1位、第2位分别为A1、A0,第3位为RNG,即可编程放大输出倍率,第4到11位为数据位,高位在前,低位在后。通道与输出关系如下
A1
0
0
1
1
A0
0
1
0
1
D/A输出
DCAA
DCAB
DCAC
DCAD
TLC5620中的每个DAC的核心是带有256个抽头的单电阻,每一个DAC的输出可配置增益输出放大器缓冲,上电时,DAC被复位且代码为0。每一通道输出电压的表达式为:
输出电压Vo=Vref*(CODE/256)*(1+RNG)
其中,CODE的范围为0~255,RNG位是串行控制字内的0或1。
管脚DATA为芯片串行数据输入端,CLK为芯片时钟,数据在每个时钟下降沿输入DATA端,数据输入过程中LOAD始终处于高电平,一旦数据输入完成,LOAD置低,则转换输出,实验中LDAC一直保持低电平,DACA、DACB、DACC、DACD为四路转换输出,REFA、REFB、REFC、REFD为其对应的参考电压。
TLC5620的时序图如图所示。
3
当LOAD为高电平时,数据在CLK每一下降沿由时钟同步送入DATA端口。如图(a)所示,一旦所有的数据位送入,LOAD变为脉冲低电平,以便把数据从串行输入寄存器传送到所选择的DAC。如果LDAC为低电平,则所选择的DAC输出电压更新且LOAD变为低电平。在图(b)中,串行编程期间内LDAC为高电平,新数值被LOAD的脉冲低电平打入第一级锁存器后,再由LDAC脉冲低电平传送到DAC输出。数据输入时最高有效位(MSB)在前。使用两个8时钟周期的数据传送示于图(c)和图(d)中。
实验结果:
此实验需要配合PERI1-8KD外设板共同完成,使用TLC5620 DA转换数码管上的数字电压。数码管1显示通道, 数码管2显示RNG值,数码管3和4显示CODE值。按键1切换通道,按键2改变增益RNG值(0或1),按键3改变电压CODE值,按键4控制启动一次转换。
4
具体实现:
程序实现了FPGA/CPLD控制TLC5620,使用TLC5620 DA转换数码管上的数字电压。程序模块图如下图所示,其中dac_test模块实现按键控制与数码管动态扫描, dac模块用于驱动TLC5620,其中设置了一个bit_count来控制时序,bit_count为0-1为等待接收数据阶段,2-24为发送数据阶段,此时产生dac_clk信号,将按键设置的数据按位发送出去。整个过程中ldac保持为低,即电压输出后不锁存,立即更新有效。详细实现参见程序代码与注释。
实验总结:
通过以上的讲解,相信各位已经掌握了FPGA使用HDL语言驱动TLC6520了吧,有了DA,就可以去做一个简易的信号发生器了。
5
课后作业:
在本节课的基础上,修改代码,使用TLC5620输出锯齿波。
6
2023年12月21日发(作者:慕容安萱)
FPGA/CPLD开发套件实验教程
——
PERI2-4DI篇
实验七、数模转换-TLC5620 DAC
实验目的:
号。
在这一课里,我们来学习数模转换器TLC5620,通过FPGA/CPLD来驱动TLC5620,输出经过DA转换后的数字电压信实验原理:
(1)TLC5620 DA简介
TLC5620C是带有高阻抗缓冲输入的4通道8位电源输出数模转换器集合。这些转换器可以产生单调的、一至两倍于基准电压和接地电压差值的输出。通常情况下TLC5620的供电电压为一个5V电源。器件内集成上电复位功能,确保启动时的环境是可重复的。
对TLC5620C的数字控制是通过一根简单的3路串行总线实现的。该总线兼容CMOS,并易于向所有的微处理器和微控制器设备提供接口。11位的命令字包括8位数据位,2位DAC选择位和1位范围位,后者用来选择输出范围是1倍还是2倍。DAC寄存器采用双缓存,允许一整套新值被写入设备中。通过LDAC实现DAC输出值的同时更新。数字量的输入采用史密斯触发器,从而有效降低噪声。
TLC5620的特点与对应原理框图如下:
4通道8位电压输出D/A转换器
5V单电源
串行接口
高阻抗的基准输入
可编程实现1至2倍的输出范围
设备可同时进行更新
内置上电复位
低功耗
半缓冲输出
1
FPGA/CPLD开发套件实验教程 —— PERI2-4DI篇
(2)TLC5620 硬件接口
TLC5620引脚名称如图所示。
引脚
名称
CLK
序号
7 I
O
O
O
O
I
I
I
I
I
I
串行接口时钟。引脚出现下降沿时将输入的数字量转发到串行接口寄存器里
DAC A模拟信号输出
DAC B模拟信号输出
DAC C模拟信号输出
DAC D模拟信号输出
存放数字量的串行接口
地回路及参考终端
加载DAC。当引脚出现高电平时,即使有数字量被读入串行口也不会对DAC
的输出进行更新。只有当引脚从高电平变为低电平时,DAC输出才更新。
LOAD
REFA
REFB
8
2
3
串口加载控制。当LDAC是低电平,并且LOAD引脚出现下降沿时数字量被保
存到锁存器,随后输出端产生模拟电压。
输入到DAC A的参考电压。这个电压定义了输出模拟量的范围。
输入到DAC B的参考电压。这个电压定义了输出模拟量的范围。
2
输入/输出 描述
DACA 12
DACB 11
DACC 10
DACD 9
DATA
GND
LDAC
6
1
13
FPGA/CPLD开发套件实验教程 —— PERI2-4DI篇
REFC
REFD
VDD
TLC5620可方便地与FPGA/CPLD连接使用。与FPGA/CPLD的接口如图所示。
4
5
14
I
I
I
输入到DAC C的参考电压。这个电压定义了输出模拟量的范围。
输入到DAC D的参考电压。这个电压定义了输出模拟量的范围。
正极电源
其中VREF为2.5V基准源,四个通道都采用其作为基准源,输入5V电压与输出电压都经过滤波,保证精度。
(3)TLC5620 工作时序
TLC5620是串联型8位D/A转换器(DAC),它有4路独立的电压输出D/A 转换器,具备各自独立的基准源,其输出还可以编程为2倍或1倍,在控制TLC5620时,只要对该芯片的DATA、CLK、LDAC、LOAD端口控制即可,TLC5620控制字为11位,包括8位数字量,2位通道选择,1位增益选择。其中命令格式第1位、第2位分别为A1、A0,第3位为RNG,即可编程放大输出倍率,第4到11位为数据位,高位在前,低位在后。通道与输出关系如下
A1
0
0
1
1
A0
0
1
0
1
D/A输出
DCAA
DCAB
DCAC
DCAD
TLC5620中的每个DAC的核心是带有256个抽头的单电阻,每一个DAC的输出可配置增益输出放大器缓冲,上电时,DAC被复位且代码为0。每一通道输出电压的表达式为:
输出电压Vo=Vref*(CODE/256)*(1+RNG)
其中,CODE的范围为0~255,RNG位是串行控制字内的0或1。
管脚DATA为芯片串行数据输入端,CLK为芯片时钟,数据在每个时钟下降沿输入DATA端,数据输入过程中LOAD始终处于高电平,一旦数据输入完成,LOAD置低,则转换输出,实验中LDAC一直保持低电平,DACA、DACB、DACC、DACD为四路转换输出,REFA、REFB、REFC、REFD为其对应的参考电压。
TLC5620的时序图如图所示。
3
当LOAD为高电平时,数据在CLK每一下降沿由时钟同步送入DATA端口。如图(a)所示,一旦所有的数据位送入,LOAD变为脉冲低电平,以便把数据从串行输入寄存器传送到所选择的DAC。如果LDAC为低电平,则所选择的DAC输出电压更新且LOAD变为低电平。在图(b)中,串行编程期间内LDAC为高电平,新数值被LOAD的脉冲低电平打入第一级锁存器后,再由LDAC脉冲低电平传送到DAC输出。数据输入时最高有效位(MSB)在前。使用两个8时钟周期的数据传送示于图(c)和图(d)中。
实验结果:
此实验需要配合PERI1-8KD外设板共同完成,使用TLC5620 DA转换数码管上的数字电压。数码管1显示通道, 数码管2显示RNG值,数码管3和4显示CODE值。按键1切换通道,按键2改变增益RNG值(0或1),按键3改变电压CODE值,按键4控制启动一次转换。
4
具体实现:
程序实现了FPGA/CPLD控制TLC5620,使用TLC5620 DA转换数码管上的数字电压。程序模块图如下图所示,其中dac_test模块实现按键控制与数码管动态扫描, dac模块用于驱动TLC5620,其中设置了一个bit_count来控制时序,bit_count为0-1为等待接收数据阶段,2-24为发送数据阶段,此时产生dac_clk信号,将按键设置的数据按位发送出去。整个过程中ldac保持为低,即电压输出后不锁存,立即更新有效。详细实现参见程序代码与注释。
实验总结:
通过以上的讲解,相信各位已经掌握了FPGA使用HDL语言驱动TLC6520了吧,有了DA,就可以去做一个简易的信号发生器了。
5
课后作业:
在本节课的基础上,修改代码,使用TLC5620输出锯齿波。
6