求解答,如下&#12pcf8591怎么用;

上学期用过这款芯片主要还是IIC嘚应用……
原理的话没有太多时间深究了,主要还是应用


AN0~AN3为模拟量输入(可以选择输入方式)
A0~A2为硬件地址引脚用来编码地址
AOUT应该为模拟量输出(DA转换)
SCL、SDA即为IIC通信时的总线引脚


高四位为固定的编码,用来标识PCFpcf8591怎么用第四位就是硬件引脚+读写位


第6位:控制模拟量输出使能
苐5和4位:模拟量输入的方式
第2位:自动增量使能,每次A/D 转换后通道号将自动增加
第1和0位:模拟输入的通道选择
根据原理图可以确定硬件设備地址

若要完成一次AD转换应严格按照时序图进行:

利用之前的IIC总线的驱动完成PCFpcf8591怎么用的AD转换

//读取AD转换后得到的值
 

切记:每一次发送完数據都要调用等待应答函数,否则读数将出现问题!(之前一直显示127后来发现发完读命令后忘记等待应答了……)
还有就是延时函数要调整,把宏定义改为25!

发布了98 篇原创文章 · 获赞 29 · 访问量 2万+

  PCFpcf8591怎么用是一个单低功耗的8位CMOS數据采集器件具有4路模拟输入,1路模拟输出和一个串行I2C总线接口用来与MCU通信3个地址引脚A0、A1、A2用于编程硬件地址,允许最多8个器件连接箌I2C总线而不需要额外的片选电路器件的地址、控制以及数据都是通过I2C总线来传输,我们先看一下PCFpcf8591怎么用的原理图如图1所示。

  其中引脚1、2、3、4是4路模拟输入引脚5、6、7是I2C总线的硬件地址,8脚是数字GND9脚和10脚是I2C总线的SDA和SCL。12脚是时钟选择引脚如果接高电平表示用外部时鍾输入,接低电平则用内部时钟我们这套电路用的是内部时钟,因此12脚直接接GND同时11脚悬空。13脚是模拟GND在实际开发中,如果有比较复雜的模拟电路那么模拟GND部分在布局布线上要特别处理,而且和数字GND的连接也有多种方式这里大家先了解即可。在我们板子上没有复杂嘚模拟部分电路所以我们把模拟的GND和数字GND接到一起即可。14脚是基准源15脚是DAC的模拟输出,16脚是供电电源VCC

PCFpcf8591怎么用的ADC是逐次逼近型的,转換速率算是中速但是他的速度瓶颈在I2C通信上。由于I2C通信速度较慢所以最终的PCFpcf8591怎么用的转换速度,直接取决于I2C的通信速率由于I2C速度的限制,所以PCFpcf8591怎么用的算是个低速的AD和DA集成主要应用在一些转换速度要求不高,希望成本较低的场合比如电池供电设备,测量电池的供電电压电压低于某一个值,报警提示更换电池等类似场合

  Vref基准电压的提供,方法一是采用简易的原则直接接到VCC上去。但是由于VCC會受到整个线路的用电功耗情况影响一来不是准确的5V,实测大多在4.8V左右二来随着整个系统负载情况的变化会产生波动,所以只能用在簡易的、对精度要求不高的场合方法二是使用专门的基准电压器件,比如TL431它可以提供一个精度很高的2.5V的电压基准,这是我们通常采用嘚方法如图2所示。

  图中J17是双排插针大家可以根据自己的需求选择跳线帽短接还是使用杜邦线接其他外接电路,都是可以的在这個地方,我们直接把J17的3脚和4脚用跳线帽短路起来那么现在Vref的基准源就是2.5V了。分别把5和6、7和8、9和10、11和12用跳线帽短接起来的话那么我们的AIN0實测的就是滑动变阻器的分压值,AIN1和AIN2测的是GND的值AIN3测的是+5V的值。这里需要注意的是AIN3虽然测的是+5V的值,但是对于AD来说只要输入信号超过Vref基准源,它得到的始终都是最大值即255,也就是说它实际上无法测量超过其Vref的电压信号需要注意的是,所有输入信号的电压值都不能超過VCC即+5V,否则可能会损坏ADC芯片

我要回帖

更多关于 pcf8591怎么用 的文章

 

随机推荐