PCF8591 是一个单电源低功耗的8位 CMOS 数据采集器件,具有4路模拟输入,1路模拟输出和一个串行 I2C 总线接口用来与单片机通信。与前面讲过的 24C02 类似,3个地址引脚 A0、A1、A2 用于编程硬件地址,允许最多8个器件连接到 I2C 总线而不需要额外的片选电路。器件的地址、控制以及数据都是通过 I2C 总线来传输,我们先看一下 PCF8591 的原理图,如图17-3所示。
图17-3 PCF8591 原理图
其中引脚1、2、3、4是4路模拟输入,引脚5、6、7是 I2C 总线的硬件地址,8脚是数字地 GND,9脚和10脚是 I2C 总线的 SDA 和 SCL。12脚是时钟选择引脚,如果接高电平表示用外部时钟输入,接低电平则用内部时钟,我们这套电路用的是内部时钟,因此12脚直接接 GND,同时11脚悬空。13脚是模拟地 AGND,在实际开发中,如果有比较复杂的模拟电路,那么 AGND 部分在布局布线上要特别处理,而且和 GND 的连接也有多种方式,这里大家先了解即可。在我们板子上没有复杂的模拟部分电路,所以我们把 AGND 和 GND 接到一起。14脚是基准源,15脚是 DAC 的模拟输出,16脚是供电电源 VCC。
PCF8591 的 ADC 是逐次逼近型的,转换速率算是中速,但是它的速度瓶颈在 I2C 通信上。由于 I2C 通信速度较慢,所以最终的 PCF8591 的转换速度,直接取决于 I2C 的通信速率。由于 I2C 速度的限制,所以 PCF8591 得算是个低速的 AD 和 DA 的集成,主要应用在一些转换速度要求不高,希望成本较低的场合,比如电池供电设备,测量电池的供电电压,电压低于某一个值,报警提示更换电池等类似场合。
Vref 基准电压的提供有两种方法。一是采用简易的原则,直接接到 VCC 上去,但是由于 VCC 会受到整个线路的用电功耗情况影响,一来不是准确的 5 V,实测大多在 4.8 V 左右,二来随着整个系统负载情况的变化会产生波动,所以只能用在简易的、对精度要求不高的场合。方法二是使用专门的基准电压器件,比如 TL431,它可以提供一个精度很高的 2.5 V 的电压基准,这是我们通常采用的方法。如图17-4所示。
图17-4 PCF8591 基准与对外接口原理图
图中 J17 是双排插针,大家可以根据自己的需求选择跳线帽短接还是使用杜邦线连接其它外部电路,二者都是可以的。在这个地方,我们直接把 J17 的3脚和4脚用跳线帽短路起来,那么现在 Vref 的基准源就是 2.5 V 了。分别把5和6、7和8、9和10、11和12用跳线帽短接起来的话,那么我们的 AIN0 实测的就是电位器的分压值,AIN1 和 AIN2 测的是 GND 的值,AIN3测的是 +5 V 的值。这里需要注意的是,AIN3 虽然测的是 +5 V 的值,但是对于 AD 来说,只要输入信号超过 Vref 基准源,它得到的始终都是最大值,即255,也就是说它实际上无法测量超过其 Vref 的电压信号的。需要注意的是,所有输入信号的电压值都不能超过 VCC,即 +5 V,否则可能会损坏 ADC 芯片。
关键字:PCF8591 硬件接口
引用地址:
PCF8591硬件接口(电路图引脚图)
推荐阅读最新更新时间:2024-03-16 15:45
PIC16 PCF8591
模拟IIC的方式 PIC16F887 XCV1.41 #define SCL_H TRISC0 = 0, RC0 = 1 /* SCL管脚置高 IIC两个通信端口 */ #define SCL_L TRISC0 = 0, RC0 = 0 /* SCL管脚置低 */ #define SDA_H TRISC1 = 0, RC1 = 1 /* SDA管脚置高 */ #define SDA_L TRISC1 = 0, RC1 = 0 /* SDA管脚置低 */ #define SDA_IN TRISC1 = 1 /* SDA输入模式 */ #define SDA_OUT
[单片机]
嵌入式软硬件接口设计实例
嵌入式系统设计中,软件和硬件的接口问题经常困扰软件开发工程师。正确理解接口在处理器与高级语言开发环境方面的约束条件,可以加速整个系统设计,并为改进系统的质量、性能和可靠性以及缩短开发周期和减少成本提供保证,本文从两个设计实例的比较入手,介绍了嵌入式系统的设计原则以及关于寄存器及其域的种种考虑。 嵌入式系统设计通常分为两个部分:硬件设计和软件开发。这两部分任务通常由不同的设计小组负责,相互间很少有覆盖的地方。由于软件小组很少涉足前面的硬件设计,采用这种方式进行开发经常会遇到问题,特别是硬件与软件开发环境之间的接口性能较差时,会导致系统开发时间延长、开发成本提高,最终推迟产品的上市。 最理想的解决方案是软件小组参与硬件设计,但是在时间安
[单片机]
PCF8591应用程序
PCF8591 的通信接口是 I2C,那么编程肯定是要符合这个协议的。单片机对 PCF8591 进行初始化,一共发送三个字节即可。第一个字节,和 EEPROM 类似,是器件地址字节,其中 7 位代表地址,1 位代表读写方向。地址高 4 位固定是 0b1001,低三位是 A2,A1,A0,这三位我们电路上都接了 GND,因此也就是 0b000,如图 17-5 所示。 图 17-5 PCF8591 地址字节 图 17-5 PCF8591 地址字节 发送到 PCF8591 的第二个字节将被存储在控制寄存器,用于控制 PCF8591 的功能。其中第 3 位和第 7 位是固定的 0,另外 6 位各自有各自的作用,如图 17-6 所示,我
[单片机]
24位模数转换器AD7713及其应用
摘要: 文章详细介绍了AD公司的24模数转换器AD7713的管脚定义、内部控制字的定义、硬件接口及使用注意事项,列举了AD7713与8031单片机的接口实例及编程方法,同时给出详细的硬件接口电路及软件程序设计。 AD7713的AD公司的24位∑-Δ型模数据转换,该芯片线性度好,转换精度高,并具有校准方式多、数据转换率可程控、功耗低(动态工作方式下的功耗典型值为3.5mW,掉电方式下为35μW)等特点,非常适合于高精度、低功耗数据采集系统的应用。 AD7713为24脚DIP结构封装,有3个模拟输入通道,其中第1、2两个通道为差分式输入,第3通道为单端输入(可输入大信号),输入增益可编程控制(1~128)。AD7713的串行
[模拟电子]
PCF8591的软件编程
PCF8591的通信接口是I2C,那么编程肯定是符合这个协议的。单片机对PCF8591进行初始化,一共发送三个字节即可。第一个字节,和EEPROM类似,第一个字节是地址字节,其中7位代表地址,1位代表读写方向。地址高4位固定是1001,低三位是A2,A1,A0,这三位我们电路上都接了GND,因此也就是000,如图1所示。 图1 PCF8591地址字节 发送到PCF8591的第二个字节将被存储在控制寄存器,用于控制PCF8591的功能。其中第3位和第7位是固定的0,另外6位各自有各自的作用,如图2所示,我逐一介绍。 图2 PCF8591控制字节 控制字节的第6位是DA使能位,这一位置1表示DA输出引脚使能,
[单片机]