数模转换DAC-TLC5615的说明
1、TLC5615转换精度10bit,转换后输出为电压,最大输出电压为VDD-0.4V,逻辑电压输入5V(+-5%),若采用5V的逻辑电平,其最大输入电压为4.6V,故参考电压Vref输入必须在0~2.3V范围之内,本仿真实验中取Vref=2.048V;
2、输出电压计算式:
3、TLC5615面向CPU的接口采用SPI串行传输,其最大传输速度为1.21Mhz,DA转换时间为12.5us,故一次写入数据(CS引脚从低电平至高电平跳跃)后,必须延时15us左右才可第二次刷入数据再次启动DA转换,参见TLC5615-DATASHEET:
....which is a 1.21 MHz update rate. However, the DAC settling time to 10 bits of 12.5 us
limits the update rate to 80 kHz for full-scale input step transitions.
4、DOUT引脚作为MISO引脚或者多个TLC5615级联的串行数据输出;
5、写入转换数据可为12bits格式或者16bits格式(当级联输出时),数据传输高位先发:
/******************************************************************************/
/**
/** 模 块 名: -------------------TLC5615.C---------------------------------
/** -----------------数模转换子模块-----------------------------*/
/** 功能描述:
/**
/** 创 建 人: huangtiexiong 日期:2006-11-28 */
/** 修 改 人: 日期:2006-11-28 */
/** 其他说明:
/******************************************************************************/
#include "Includes.h" //文件包含
/*************************************************
模块级变量申明
*************************************************/
int8u bdata gBitMsb;
sbit m7 = gBitMsb^7;
int8u bdata gBitLsb;
sbit l7 = gBitLsb^7;
static void TLC5615_Write_12Bits();
/*************************************************
子函数定义
*************************************************/
/*******************************************************************************
*** 函 数 名: static void TLC5615_Write_12Bits()
*** 功能描述: 一次向TLC中写入12bit数据;
*** 全局变量: gBitMsb:待转换10bit高两位;gBitLsb:10bits的低8位;
*** 输 入: NO !
*** 输 出: NO !
*** 创 建 人:huangtiexiong 日期:2006-11-28
*** 修 改 人: 日期:2006-11-28
*** 函数说明: 内部函数;
/******************************************************************************/
static void TLC5615_Write_12Bits()
{
int8u i;
SCL = 0; //置零SCL,为写bit做准备;
CS = 0;
for(i=0;i<2;i++)//循2次,发送高两位;
{
if(m7) //高位先发;
{
SDA = 1; //将数据送出;
SCL = 1; //提升时钟,写操作在时钟上升沿触发;
SCL = 0; //结束该位传送,为下次写作准备;
}
else
{
SDA = 0;
SCL = 1;
SCL = 0;
}
gBitMsb <<= 1;
}
for(i=0;i<8;i++)//循环八次,发送低八位;
{
if(l7)
{
SDA = 1; //将数据送出;
SCL = 1; //提升时钟,写操作在时钟上升沿触发;
SCL = 0; //结束该位传送,为下次写作准备;
}
else
{
SDA = 0;
SCL = 1;
SCL = 0;
}
gBitLsb <<= 1;
}
for(i=0;i<2;i++)//循环2次,发送两个虚拟位;
{
SDA = 0;
SCL = 1;
SCL = 0;
}
CS = 1;
SCL = 0;
}
/*******************************************************************************
*** 函 数 名: extern void TLC5615_Start(int16u dacDat)
*** 功能描述: 启动DAC转换;
*** 全局变量: gBitMsb:待转换10bit高两位;gBitLsb:10bits的低8位;
*** 输 入: dacDat:int16u;
*** 输 出: NO !
*** 创 建 人:huangtiexiong 日期:2006-11-28
*** 修 改 人: 日期:2006-11-28
*** 函数说明: 外部函数;
/******************************************************************************/
extern void TLC5615_Start(int16u dacDat)
{
dacDat %= 1024;
gBitMsb = dacDat/256;
gBitLsb = dacDat%256;
gBitMsb <<= 6;
TLC5615_Write_12Bits();
}
/*******************************************************************************
**** End Of File
*******************************************************************************/
数模转换DAC-TLC5615的说明相关推荐
- 51单片机DAC数模转换
51单片机DAC数模转换 DAC介绍 1.DAC简介 DAC(Digital to analog converter)即数字模拟转换器,它可以将数字信号转换为模拟信号.它的功能与 ADC 相反. 2. ...
- STM32入门(二十)----DAC
DAC 理论 数模转换DAC原理 STM32的DAC的特点 框图 常用寄存器 常用库函数 实践 PWMDAC 理论 数模转换DAC原理 STM32的DAC模块(数字/模拟转换模块)是12位数字输入,电 ...
- STM32CubeMX学习笔记(20)——DAC接口使用(输出正弦波)
一.DAC简介 DAC(Digital-to-Analog Converter),即数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与 ADC 相反.在常 ...
- DAC解码芯片ES9023特性评测简介
美国ES9023是一款单端输出24bit立体声音频数模转换DAC芯片,芯片内集成2Vrms输出的驱动运放.采用了业界先进的SABRE数-模转换技术:集音质.高性价比于一身,使之成为数模转换的理想选择. ...
- FPGA 20个例程篇:4.串行DAC输出模拟电压控制LED亮度
二.常用通信协议,摸索探究: 4.串行DAC输出模拟电压控制LED亮度 TLC5615是一颗在实战项目中广泛使用的串行DAC,通过这个例程的学习实践,一方面我们可以掌握SPI通信的底层逻辑,另一方面D ...
- c语言转换为stc程序,STC51单片机入门(C语言)
以前老资料,可继续下载参考. 目 录 第1篇 单片机KEIL开发环境 第1章 点亮LED实例与经典延时程序介绍(看不懂就从第2章动手) 1.1 51单片机最小系统与芯片引脚图 1.2 点亮LED ...
- arduino 呼吸灯_如何改善您的Arduino呼吸机:用于临时COVID-19呼吸机设计的RTS和SCS简介...
arduino 呼吸灯 The world as we know it was recently taken by storm. That storm was the outbreak of the ...
- jquery控制只监听数字_无源!模拟!颜值高!简单实用!TC Level Pilot监听音量控制器...
Level Pilot是一款立体声无源模拟音量控制器,独立于电脑.声卡之外工作,用于有源监听音箱的音量控制,设计简洁,操作手感流畅.很多监听都不带音量旋钮,只能通过声卡或电脑进行音量控制,在手边放一个 ...
- audio unity 加速_浅谈Unity中Android、iOS音频延迟
在Unity上面做音游,当在移动端实机运行起来,会发现,音频的发出会有一定的延迟,无论是长音效还是短音效,Unity内置的Audio内部使用的是FMOD,有以下手段改善 通过设置稍微改善其延迟的问题 ...
- 手把手教如何用Linux下IIO设备(附代码)
关注.星标嵌入式客栈,精彩及时送达 [导读] 朋友们,大家好,我是逸珺. 今天分享一下如何在用户空间操作IIO设备.IIO设备能实现很多有价值的应用,有兴趣的一起来看看~ 什么是IIO设备 IIO是 ...
最新文章
- Sharding-jdbc教程:Mysql数据库主从搭建
- 资源 | UC Berkeley CS 294深度强化学习课程(附视频、学习资料)
- WINCE6.0+S3C6410的触摸屏驱动
- Endnote技巧:解决中英参考文献混排问题,附国标文件
- GetLongPathName和GetShortPathName函数
- c# Invoke和BeginInvoke
- 谈谈button标签和input标签的区别
- (转)Java初始化顺序
- Ubuntu18.04 下面安装docker
- mysql驱动是什么文件_Oracle数据库11g JDBC驱动程序 – 这么多文件?他们的意思是什么?...
- 无人驾驶路径规划(一)全局路径规划 - RRT算法原理及实现
- java poi 自动行高_Java POI Excel 行高自适应
- Javascript对象基础讲解
- 使用声卡录制编辑收藏自己喜欢的音乐
- 基于负熵的快速不动点算法
- 工作经费的开支范围_经费支出范围
- 【Vivado那些事儿】强制修改打开Vivado工程使用的Vivado版本
- 魔兽中的dx写屏(原版为英文)
- 生死单元技术!如何在abaqus焊接仿真中的应用
- 刺激战场android闪退,绝地求生刺激战场闪退怎么办 游戏闪退解决办法一览