PCF8591中文手册
- 格式:pdf
- 大小:287.63 KB
- 文档页数:12
1 特征•单电源供电的•操作电源电压2.5 V至6 V•低待机电流•串行输入/输出通过I2C-bus由三个硬件地址•地址针所I2C-bus•采样率的速度可编程,模拟输入•4结束单人赛或不同的输入•Auto-incremented通道选择从模拟电压范围•VSS到VDD跟踪并持有•汉字电路逐次逼近•8位A / D转换与一个模拟油水•增加产量。
2申请•闭环控制系统•低功率转换器来的远程数据采集•电池操作设备采集模拟值•汽车、音响和电视的应用。
3总体描述这是一个单片机、PCF8591低功耗CMOS单电源8位数据采集设备的,有四个模拟输入模拟输出和串行我2 C-bus接口。
三个地址销A0,A1及A2都是用于编写硬件地址,允许使用的8个设备连接到我2 C-bus没有额外的硬件上。
地址、控制和数据转移装置通过两系法双向I2C-bus限量。
该装置包括的功能模拟输入统计复用,片上跟踪和保持功能,8位数模转换和一个8位的数字/模拟转换器转换。
最大的转变率所赋予的I2C-bus的最大速度。
7 功能描述7.1解决每一个I2C-bus systemis PCF8591装置激活一个有效的地址发送器。
地址由一个固定部分和一个可编程的部分。
可编程部分必须按照地址销A0,A1及A2。
地址总是要传递的开始后的第一个字节I2C-bus协议条件。
最后一位地址字节是读/ write-bit确立了数据传输的方向(见以下4到17日无花果)。
7.2控制字节第二个字节送到一个PCF8591装置将会被储存在其控制寄存器,需要以控制装置的功能。
上咬的控制寄存器用于使nalog产出,并为规划模拟输入或不同的输入作为结束单人赛。
选择一个较低的咬的模拟输入通道的定义(见图上咬)。
如果递增”标志设置成、通道数增加自动之后的每一个A / D转换。
如果我们都希望递增”模式的应用场合,在那里,内部使用,nalog振荡器输出使国旗,控制字节(第6位)应设置。
这允许内部振荡器将连续运行,从而防止转换错误造成启动延迟振荡器。
PCF8591 8-bit A/D and D/A converter1特征•单电源供电•操作电源电压2.5 V 6 V•低待机电流••串行输入/输出经I2C-bus•通过3硬件地址•采样率给I2C-bus速度•可四模拟输入作为结束单人赛或差分输入,•Auto-incremented频道选择•从模拟电压范围VSS到VDD•跟踪并以电路•8逐次逼近A / D转换•与模拟输出乘以DAC相连。
2应用闭环控制系统。
•低功率变换器•用于远程数据采集•电池操作设备。
•采集的汽车、音响和电视中的模拟值应用。
3一般的描述这个PCF8591是single-supply单片机、低功耗8位数据采集装置以四芯片的模拟输入,一个模拟输出和串行I2C-bus接口。
三个地址销A0、A1、A2用于编程硬件地址,允许使用8装置连接到I2C-bus没有额外的硬件。
地址、控制和数据该设备的连续转让两系双向I2C-bus。
这个装置的功能包括模拟输入多路复用,以追踪和功能,8位一个8位数模转换和数模转换7功能描述7.1寻址每个PCF8591装置在I2C-bus中心被激活一个有效的地址发送的装置。
这个地址由一个固定的和可编程序的一部分。
这个可编程的部分必须按照地址针A0、A1、A2。
这个地址总是要传送开始后的第一个字节的条件2C-bus协议。
最后一点的地址字节的读/ write-bit方向,下列资料720控制字节第二个字节送到PCF8591装置将储存在它的控制寄存器和要求来控制装置功能。
上部的控制寄存器用于使模拟输出,并为规划模拟输入作为不同的输入。
这个选用低侵入的模拟输入通道定义(见图上)。
如果递增”标志设置、频道号码增加后自动每个A / D转换。
如果递增”模式,是理想的应用在内部振荡器,模拟输出的吗使国旗在控制字节(第6位)应设置。
这个允许内部震荡,从而连续运行防止转换错误造成的启动延迟。
旗帜的模拟输出可能重新启用在其他时候减少静态功耗。
PCF8591中文手册讲义一、PCF8591概述1. 内置一个模拟电压比较器;2. 提供4个模拟输入通道;3. 具有1个模拟输出通道;4. 适用于I2C总线通信;5. 工作电压范围宽,可达2.5V至6V。
二、PCF8591内部结构及功能1. 内部结构(1)模拟输入多路选择器:可以选择4个模拟输入通道之一;(2)A/D转换器:将模拟信号转换为数字信号;(3)D/A转换器:将数字信号转换为模拟信号;(4)模拟电压比较器:对输入的模拟电压进行比较;(5)I2C总线接口:实现与外部设备的通信。
2. 功能介绍(1)模拟输入多路选择器:通过I2C总线接口发送控制字,可以选择4个模拟输入通道之一;(2)A/D转换器:将选定的模拟输入信号转换为8位数字信号;(3)D/A转换器:将8位数字信号转换为模拟信号,输出至模拟输出通道;(4)模拟电压比较器:对输入的模拟电压进行比较,可应用于阈值检测等场景;(5)I2C总线接口:实现与单片机、微处理器等设备的通信,便于数据传输和控制。
三、PCF8591应用电路及编程方法1. 应用电路(1)电源电路:确保电源稳定,满足PCF8591的工作电压范围;(2)模拟输入电路:根据实际需求选择合适的传感器或信号源,并进行滤波、放大等处理;(3)模拟输出电路:可根据实际应用场景,对输出信号进行放大、滤波等处理;(4)I2C总线接口电路:连接单片机或其他设备的I2C接口,实现数据传输和控制。
2. 编程方法(1)初始化I2C总线接口:设置I2C总线的时钟频率、设备地址等参数;(2)发送控制字:选择模拟输入通道、启动A/D转换等;(3)读取A/D转换结果:通过I2C总线读取转换后的数字信号;(4)写入D/A转换数据:通过I2C总线发送8位数字信号,实现模拟信号输出;(5)模拟电压比较器应用:设置比较阈值,实现阈值检测等功能。
四、PCF8591编程实例及注意事项1. 编程实例include <Wire.h> // 引入I2C库define PCF8591_ADDR 0x48 // 设置PCF8591的I2C地址void setup() {Wire.begin(); // 初始化I2C总线}void loop() {// 读取模拟输入通道0的值Wire.beginTransmission(PCF8591_ADDR);Wire.write(0x04); // 控制字:选择通道0,启动A/D转换 Wire.endTransmission();Wire.requestFrom(PCF8591_ADDR, 2); // 请求2个字节的数据if (Wire.available() >= 2) {te high = Wire.read(); // 读取高8位te low = Wire.read(); // 读取低8位int value = (high << 8) | low; // 合并高低8位// value即为模拟输入通道0的数字值}// 通过模拟输出通道输出固定电压值(例如1.25V)Wire.beginTransmission(PCF8591_ADDR);Wire.write(0x40); // 控制字:选择D/A转换Wire.write(outputValue); // 写入D/A转换数据Wire.endTransmission();}2. 注意事项(1)确保I2C总线的电源和地线连接正确,避免信号干扰;(2)在读取A/D转换结果时,注意数据的字节顺序,避免数据解析错误;(3)模拟输入信号的幅值应在PCF8591的输入范围内,以免损坏芯片;(4)模拟输出通道的负载应适当,避免影响输出电压的精度;(5)在使用模拟电压比较器时,注意设置合适的比较阈值,以提高检测准确性。
ADDA系列PCF8591的驱动程序(带详细注释)/*************************此部分为I2C总线的驱动程序*************************************/#include<reg52.h>#include <intrins.h>#include <I2C.H>#define NOP() _nop_() /* 定义空指令*/#define _Nop() _nop_() /*定义空指令*/sbit SCL=P2^0; //I2C 时钟sbit SDA=P2^1; //I2C 数据bit ack; /*应答标志位*//*******************************************************************起动总线函数函数原型: void Start_I2c();功能: 启动I2C总线,即发送I2C起始条件.********************************************************************/void Start_I2c(){SDA=1; /*发送起始条件的数据信号*/_Nop();SCL=1;_Nop(); /*起始条件建立时间大于4.7us,延时*/_Nop();_Nop();_Nop();_Nop();SDA=0; /*发送起始信号*/_Nop(); /* 起始条件锁定时间大于4μs*/_Nop();_Nop();_Nop();_Nop();SCL=0; /*钳住I2C总线,准备发送或接收数据*/_Nop();_Nop();}/*******************************************************************结束总线函数函数原型: void Stop_I2c();功能: 结束I2C总线,即发送I2C结束条件.********************************************************************/void Stop_I2c(){SDA=0; /*发送结束条件的数据信号*/_Nop(); /*发送结束条件的时钟信号*/SCL=1; /*结束条件建立时间大于4μs*/_Nop();_Nop();_Nop();_Nop();_Nop();SDA=1; /*发送I2C总线结束信号*/_Nop();_Nop();_Nop();_Nop();}/*******************************************************************字节数据发送函数函数原型: void SendByte(UCHAR c);功能: 将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对此状态位进行操作.(不应答或非应答都使ack=0)发送数据正常,ack=1; ack=0表示被控器无应答或损坏。
A/D和D/A转换器具 PCF85911.特性【1】单独供电【2】PCF8591的操作电压范围2.5V-6V【3】低待机电流【4】通过I2C总线串行输入/输出【5】PCF8591通过3个硬件地址引脚寻址【6】PCF8591的采样率由I2C总线速率决定【7】4个模拟输入可编程为单端型或差分输入【8】自动增量频道选择【9】PCF8591的模拟电压范围从VSS到VDD【10】PCF8591内置跟踪保持电路【11】8-bit逐次逼近A/D转换器【12】通过1路模拟输出实现DAC增益2、应用. 闭环控制系统. 用于远程数据采集的低功耗转换器. 电池供电设备. 在汽车、音响和TV应用方面的模拟数据采集3、概述PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。
PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。
PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。
在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。
4. 命令信息型号封装名称描述版本PCF8591P DIP16PCF8591T SO165内部框图内部框图6. 引脚引脚引脚序号引脚功能AIN0 1模拟量输入方式AIN1 2AIN2 3AIN3 4A05模拟通道选择A16A27VSS8负电源电压SDA9数据信号SCL10时钟信号OSC11振荡器EXT12振荡器输入的外部内部转换AGND13模拟接地端Vref14输入的参考电压AOUT15模拟量输出Vdd16正的电源电压PCF8591引脚图7、功能描述7. 1地址I2C总线系统中的每一片PCF8591通过发送有效地址到该器件来激活,该地址包括固定部分和可编程部分。
可编程部分必须根据地址引脚A0. A1和A2来设置。
在I2C总线协议中地址必须是起始条件作为第一个字节发送。
标题:具有I2C总线接口的A/D芯片PCF8591及其应用2009-05-28 04:03:27摘要:I2C总线是Philips公司推出的新型单片机系统。
它采用串行总线,主控器与外围器件仅靠两条线进行信息传输,一条称为时钟线(SCL),另一条位数据线(SDA)。
I2C总线单片机系统较通用单片机系统电路简单。
由普通CPU芯片同I2C专用器件组成的系统为模拟I2C系统,它性能稳定,价格较低,目前已得到广泛应用.本文介绍了具有I2C接口的A/D芯片PCF8591的引脚图及应用电路,并在暖水锅炉温度记录仪中得到应用。
关键词:I2C总线A/D转换器件地址控制字节1 引言I2C总线是Philips公司推出的串行总线,整个系统仅靠数据线(SDA)和时钟线(SCL)实现完善的全双工数据传输,即CPU与各个外围器件仅靠这两条线实现信息交换。
I2C总线系统与传统的并行总线系统相比具有结构简单、可维护性好、易实现系统扩展、易实现模块化标准化设计、可靠性高等优点。
在一个完整的单片机系统中,A/D转换芯片往往是必不可少的。
PCF8591是一种具有I2C 总线接口的A/D转换芯片。
在与CPU的信息传输过程中仅靠时钟线SCL和数据线SDA就可以实现。
2 芯片介绍PCF8591是具有I2C总线接口的8位A/D及D/A转换器。
有4路A/D转换输入,1路D/A模拟输出。
这就是说,它既可以作A/D转换也可以作D/A转换。
A/D转换为逐次比较型。
引脚图如图1所示。
结构图如图2所示。
电源电压典型值为5V。
AIN0~AIN3:模拟信号输入端。
A0~A3:引脚地址端。
VDD、VSS:电源端。
(2.5~6V)SDA、SCL:I2C总线的数据线、时钟线。
OSC:外部时钟输入端,内部时钟输出端。
EXT:内部、外部时钟选择线,使用内部时钟时EXT接地。
AGND:模拟信号地。
AOUT:D/A转换输出端。
VREF:基准电源端。
图2PCF85913 应用3.1 器件总地址PCF8591采用典型的I2C总线接口器件寻址方法,即总线地址由器件地址、引脚地址和方向位组成。
PCF8591芯片的使用基于PCF8591的AD—DA的程序设计。
本设计是通过PCF8591芯片选择通道1将滑动变阻器的电压记过A/D转换,有单片机读回,并在数码管显示,比且有这个数据再经过D/A 转换成模拟电压驱动发光二极管。
发光二极管的亮度与数码管显示的电压值相对。
1. PCF8591芯片PCF8591是单片、单电源低功耗8位CMOS数据采集器件,具有4个模拟输入、一个输出和一个串行I2C总线接口。
3个地址引脚A0、A1和A2用于编程硬件地址,允许将最多8个器件连接至I2C总线而不需要额外硬件。
器件地址、控制和数据通道通过两线双向I2C总线传输。
器件功能包括多路复用模拟量输入、片上跟踪和保持功能、8位模数转换和8位数模转换。
最大转换速率取决于I2C总线的最高速率。
我实现的AD转换是使用通道0将滑动变阻器两端的电压AIN0~AIN3:模拟信号输入端。
A0~A2:引脚地址端。
VDD、VSS:电源端。
(2.5~6V)SDA、SCL:I2C 总线的数据线、时钟线。
OSC:外部时钟输入端,内部时钟输出端。
EXT:内部、外部时钟选择线,使用内部时钟时EXT 接地。
AGND:模拟信号地。
AOUT:D/A 转换输出端。
VREF:基准电源端。
地址:I2C总线系统中的每一片PCF8591通过发送有效地址到该器件来激活。
该地址包括固定部分和可编程部分。
可编程部分必须根据地址引脚A0、A1和A2来设置。
在I2C总线协议中地址必须是起始条件后作为第一个字节发送。
地址字节的最后一位是用于设置以后数据传输方向的读/写位。
(见下图)控制字:发送到PCF8591的第二个字节将被存储在控制寄存器,用于控制器件功能。
控制寄存器的高板字节用于允许模拟输出,和将模拟输入编程为单端过查分输入。
低半字节选择一个有高板字节定义的模拟输入通道。
如果自动增量标志置1,每次A/D转换后通道号将自动增加。
如果自动增量模式是使用内部振荡器的应用中所需要的,那么控制字中模拟输出允许标志应置1。
PCF8591详解PCF8591应⽤程序<上⼀节下⼀节>分享到:QQ空间新浪微博腾讯微博⾖瓣⼈⼈⽹在线学习编程开发,零基础到精通教程任你挑:北风⽹PCF8591 的通信接⼝是I2C,那么编程肯定是要符合这个协议的。
单⽚机对PCF8591 进⾏初始化,⼀共发送三个字节即可。
第⼀个字节,和EEPROM 类似,是器件地址字节,其中7 位代表地址,1 位代表读写⽅向。
地址⾼4 位固定是0b1001,低三位是A2,A1,A0,这三位我们电路上都接了GND,因此也就是0b000,如图17-5 所⽰。
图17-5 PCF8591 地址字节发送到PCF8591 的第⼆个字节将被存储在控制寄存器,⽤于控制PCF8591 的功能。
其中第3 位和第7 位是固定的0,另外6 位各⾃有各⾃的作⽤,如图17-6 所⽰,我逐⼀介绍。
图17-6 PCF8591 控制字节控制字节的第6 位是DA 使能位,这⼀位置1 表⽰DA 输出引脚使能,会产⽣模拟电压输出功能。
第4 位和第5 位可以实现把PCF8591 的4 路模拟输⼊配置成单端模式和差分模式,单端模式和差分模式的区别,我们在17.5 节有介绍,这⾥⼤家只需要知道这两位是配置AD输⼊⽅式的控制位即可,如图17-7 所⽰。
图17-7 PCF8591 模拟输⼊配置⽅式控制字节的第2 位是⾃动增量控制位,⾃动增量的意思就是,⽐如我们⼀共有4 个通道,当我们全部使⽤的时候,读完了通道0,下⼀次再读,会⾃动进⼊通道1 进⾏读取,不需要我们指定下⼀个通道,由于A/D 每次读到的数据,都是上⼀次的转换结果,所以同学们在使⽤⾃动增量功能的时候,要特别注意,当前读到的是上⼀个通道的值。
为了保持程序的通⽤性,我们的代码没有使⽤这个功能,直接做了⼀个通⽤的程序。
控制字节的第0 位和第1 位就是通道选择位了,00、01、10、11 代表了从0 到3 的⼀共4 个通道选择。
发送给PCF8591 的第三个字节D/A 数据寄存器,表⽰D/A 模拟输出的电压值。
PCF8591 8位A/D和D/A转换器By Coolbor Xie1、特性z单电源供电z工作电压:2.5 V ~ 6 Vz待机电流低z I2C总线串行输入/输出z通过3个硬件地址引脚编址z采样速率取决于I2C总线速度z4个模拟输入可编程为单端或差分输入z自动增量通道选择z模拟电压范围:VSS~VDDz片上跟踪与保持电路z8位逐次逼近式A/D转换z带一个模拟输出的乘法DAC2、应用z闭环控制系统z用于远程数据采集的低功耗转换器z电池供电设备z在汽车、音响和TV应用方面的模拟数据采集3、概述PCF8591是单片、单电源低功耗8位CMOS数据采集器件,具有4个模拟输入、一个输出和一个串行I2C总线接口。
3个地址引脚A0、A1和A2用于编程硬件地址,允许将最多8个器件连接至I2C 总线而不需要额外硬件。
器件的地址、控制和数据通过两线双向I2C总线传输。
器件功能包括多路复用模拟输入、片上跟踪和保持功能、8位模数转换和8位数模拟转换。
最大转换速率取决于I2C总线的最高速率。
4、订货信息5、内部框图图1 内部框图6、引脚图2 引脚图 (DIP16).7、功能描述7.1 地址I2C总线系统中的每一片PCF8591通过发送有效地址到该器件来激活。
该地址包括固定部分和可编程部分。
可编程部分必须根据地址引脚A0、A1和A2来设置。
在I2C总线协议中地址必须是起始条件后作为第一个字节发送。
地址字节的最后一位是用于设置以后数据传输方向的读/写位。
(见图4、16、17)图4 地址7.2 控制字发送到PCF8591的第二个字节将被存储在控制寄存器,用于控制器件功能。
控制寄存器的高半字节用于允许模拟输出,和将模拟输入编程为单端或差分输入。
低半字节选择一个由高半字节定义的模拟输入通道(见图5)。
如果自动增量(auto-increment)标志置1,每次A/D转换后通道号将自动增加。
如果自动增量(auto-increment)模式是使用内部振荡器的应用中所需要的,那么控制字中模拟输出允许标志应置1。
PCF8591 8位A/D和D/A转换器
1、特性
z单电源供电
z工作电压:2.5 V ~ 6 V
z待机电流低
z I2C总线串行输入/输出
z通过3个硬件地址引脚编址
z采样速率取决于I2C总线速度
z4个模拟输入可编程为单端或差分输入
z自动增量通道选择
z模拟电压范围:VSS~VDD
z片上跟踪与保持电路
z8位逐次逼近式A/D转换
z带一个模拟输出的乘法DAC
2、应用
z闭环控制系统
z用于远程数据采集的低功耗转换器
z电池供电设备
z在汽车、音响和TV应用方面的模拟数据采集
3、概述
PCF8591是单片、单电源低功耗8位CMOS数据采集器件,具有4个模拟输入、一个输出和一个串行I2C总线接口。
3个地址引脚A0、A1和A2用于编程硬件地址,允许将最多8个器件连接至I2C 总线而不需要额外硬件。
器件的地址、控制和数据通过两线双向I2C总线传输。
器件功能包括多路复用模拟输入、片上跟踪和保持功能、8位模数转换和8位数模拟转换。
最大转换速率取决于I2C总线的最高速率。
4、订货信息
5、内部框图
图1 内部框图
6、引脚
图2 引脚图 (DIP16).
7、功能描述
7.1 地址
I2C总线系统中的每一片PCF8591通过发送有效地址到该器件来激活。
该地址包括固定部分和可编程部分。
可编程部分必须根据地址引脚A0、A1和A2来设置。
在I2C总线协议中地址必须是起始条件后作为第一个字节发送。
地址字节的最后一位是用于设置以后数据传输方向的读/写位。
(见图4、16、17)
图4 地址
7.2 控制字
发送到PCF8591的第二个字节将被存储在控制寄存器,用于控制器件功能。
控制寄存器的高半字节用于允许模拟输出,和将模拟输入编程为单端或差分输入。
低半字节选择一个由高半字节定义的模拟输入通道(见图5)。
如果自动增量(auto-increment)标志置1,每次A/D转换后通道号将自动增加。
如果自动增量(auto-increment)模式是使用内部振荡器的应用中所需要的,那么控制字中模拟输出允许标志应置1。
这要求内部振荡器持续运行,因此要防止振荡器启动延时的转换错误结果。
模拟输出允许标志可以在其他时候复位以减少静态功耗。
选择一个不存在的输入通道将导致分配最高可用的通道号。
所以,如果自动增量(auto-increment)被置1,下一个被选择的通道将总是通道0。
两个半字节的最高有效位(即bit 7和bit 3)是留给未来的功能,必须设置为逻辑0。
控制寄存器的所有位在上电复位后被复位为逻辑0。
D/A转换器和振荡器在节能时被禁止。
模拟输出被切换到高阻态。
图5 控制字
7.3 D/A 转换
发送给PCF8591的第三个字节被存储到DAC数据寄存器,并使用片上D/A转换器转换成对应的模
拟电压。
这个D/A转换器由连接至外部参考电压的具有256个接头的电阻分压电路和选择开关组成。
接头译码器切换一个接头至DAC输出线(见图6)。
模拟输出电压由自动清零单位增益放大器缓冲。
这个缓冲放大器可通过设置控制寄存器的模拟输出允许标志来开户或关闭。
在激活状态,输出电压将保持到新的数据字节被发送。
图6 DAC电阻电路
片上D/A转换器也可用于逐次逼近A / D转换(successive approximation A/D conversion)。
为释放用于A/D转换周期的DAC,单位增益放大器还配备了一个跟踪和保持电路。
在执行A/D转换时该电路保持输出电压。
提供给模拟输出AOUT的输出电压由图7中的公式给出。
D/A转换顺序的波形见图8。
图7 DAC数据寄存器和D/A转换特性
图8 D/A转换顺序
7.4 A/D 转换
A/D转换器采用逐次逼近转换技术。
在A/D转换周期将临时使用片上D/A转换器和高增益比较器。
一个A/D转换周期总是开始于发送一个有效读模式地址给PCF8591之后。
A/D转换周期在应答时钟脉冲的后沿被触发,并在传输前一次转换结果时执行(见图9)。
一旦一个转换周期被触发,所选通道的输入电压采样将保存到芯片并被转换为对应的8位二进制码。
取自差分输入的采样将被转换为8位二进制补码。
(见图10和图11)
转换结果被保存在ADC数据寄存器等待传输。
如果自动增量标志被置1,将选择下一个通道。
在读周期传输的第一个字节包含前一次读周期的转换结果代码。
以上电复位之后读取的第一个字节是0x80。
I2C总线协议的读周期如图8、图16和图17。
最高A/D转换速率取决于实际的I2C总线速度。
图9 A/D转换顺序
图10 单端输入的A/D转换特性
图11 差分输入的A/D转换特性
7.5 参考电压
对D/A和A/D转换,稳定的参考电压和电源电压必须提供给电阻分压电路(引脚VREF和AGND)。
AGND引脚必须连接到系统模拟地,并应该有一个参考VSS的直流偏置。
低频可应用于VREF和AGND引脚。
这允许D / A转换器作为一象限乘法器使用;见第15章和图7。
A / D转换器也可以用作一个或两个象限模拟除法。
模拟输入电压除以参考电压。
其结果被转换为二进制码。
在这种应用中,用户必须保持在转换周期的参考电压稳定。
7.6 振荡器
片上振荡器产生A/D转换周期和刷新自动清零缓冲放大器需要的时钟信号。
在使用这个振荡器时EXT引脚必须连接到VSS。
在OSC引脚振荡频率是可用的。
如果EXT引脚被连接到VDD,振荡输出OSC将切换到高阻态以允许用户连接外部时钟信号至OSC。
8、I2C总线特性
I2C总线是不同的IC或模块之间的双向两线通信。
这两条线是串行数据线(SDA)和串行时钟线(SCL)。
这两条线必须通过上拉电路连接至正电源。
数据传输只能在总线不忙时启动。
8.1 位传输
一个数据位在每一个时钟脉冲期间传输。
SDA线上的数据必须在时钟脉冲的高电压期间保持稳定,这个期间数据线上的改变将被当作控制信号。
图12 位传输
8.2 开始或停止条件
数据和时钟线在总不忙时保持高电平。
在时钟为高电平时,数据线上的一个由高到低的变化被定义为开始条件。
时钟为高电平时,数据线上的一个由低到高的变化被定义为停止条件。
图13 开始和停止条件定义
8.3 系统配置
产生信息的器件称作“发送机”,接收信息的器件称作“接收机”。
控制信息的器件称作“主机”,被控制的器件称作“从机”。
图14 系统配置
8.4 应答
在开始和停止条件之间从发送机传输到接收机的数据字节数是没有限制的。
每个8位数据字节之后紧跟着一个应答位。
应答位是由发送机放在总线的一个高电平,而主机也产生一个额外的与应答有关的时钟脉冲。
地址匹配的从接收机必须在接收每个字节后产生一个应答。
然而主机在接收到每个已经被从发送机终止的字节后必须产生一个应答。
在应答时钟脉冲期间,应答的器件必须将SDA线拉低,因此在应答相应的时钟脉冲的高电平期间,SDA线必须保持稳定的低电平。
在由从机终止的最后一个字节,主接收机必须通过产生一个低电平应答向发送机发出一个数据结束信号,这样发送机必须将数据线拉高以允许主机产生停止条件。
图15 I2C总线应答
8.5 I2C总线协议
在开始条件后一个有效的硬件地址必须发送至PCF8591。
读/写位定义了以后单个或多个字节数据传输的方向。
开始条件、停止条件和应答位的格式和定时参考I2C总线特性。
在写模式,数据传输通过发送下一个数据传输的停止条件或开始条件来结束。
图16 写模式的总线协议,D/A转换
图17 读模式的总线协议,A/D转换
15 、应用信息
输入未用时必须连接至VSS或VDD。
模拟输入也可以连接至AGND或VREF。
为了防止额外的地线和电源噪声,以及减小数字信号对模拟信号路径的串扰,用户在必须要非常仔细地设计PCB。
从电源到PCF8591器件、到噪声数字电路、到地的环路应该避免。
建议在电源和参考电压输入端加上去耦电容(10µF)。