查看: 1384|回复: 3

扩展库使用说明——PCF8591

[复制链接]

22

主题

22

帖子

106

积分

注册会员

Rank: 2

积分
106
发表于 2021-3-2 15:25:59 | 显示全部楼层 |阅读模式
本帖最后由 陈哲东 于 2021-7-1 15:29 编辑

1-硬件概述

PCF8591是一个单片集成、单独供电、低功耗、8位CMOS数据采集器件。PCF8591具有四个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的三个地址引脚A0、A1、A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591,而无需额外的硬件电路。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。

2-引脚定义

YQFV%X`K71__H7F{_8TNY.png

AIN0、AIN1、AIN2、AIN3
模拟信号输入端。
A0~A2 引脚地址端
VSS 公共地
SDA、SCL I2C总线数据线、时钟线
OSC 外部时钟输入端,内部时钟输出端
VDD 电源正极
EXT 内部外部时钟选择线、使用内部时钟时候,EXT接地
AGND 模拟信号地
AOUT D/A转换输出端
VREF 基准电源端
3-电路原理图
4-硬件连接图
2AE318A9-418C-47f0-8B96-33F4A3160F2C.png

5-图形化模块

1.PCF8591 I2C初始化引脚选择
Q1LYTOYRK$})QYT5KC]3@_3.png
2.PCF8591 写入DA值
Q`W5KZYS)K6NPO1$FW([E.png
3.PCF8591 读取通道AD值
NQ{M7}N]84XCK_G8)TJVVSK.png

6-范例代码
OLED显示AD值
HKTM7D)B[XD]TD]{{I6@H~R.png
  1. #define SOFTIIC_SCL P1_0
  2. #define SOFTIIC_SCL_OUT {P1M1|=0x01;P1M0|=0x01;}//P1_0开漏输出
  3. #define SOFTIIC_SDA P1_1
  4. #define SOFTIIC_SDA_IN {P1M1|=0x02;P1M0&=~0x02;}//P1_1高阻输入
  5. #define SOFTIIC_SDA_OUT {P1M1|=0x02;P1M0|=0x02;}//P1_1开漏输出

  6. #include <STC8HX.h>
  7. uint32 sys_clk = 24000000;//设置PWM、定时器、串口、EEPROM频率参数
  8. #include "lib/oled.h"
  9. #include "mylib/pcf8591.h"
  10. #include "lib/delay.h"

  11. void setup()
  12. {
  13.   oled_init();//OLED初始化
  14.   pcf8591_init();//pcf8591初始化
  15. }

  16. void loop()
  17. {
  18.   oled_clear();//OLED清屏
  19.   oled_show_num(64,3,(pcf8591_analog_read(3)));
  20.   oled_display();//OLED更新显示
  21.   delay(1000);
  22. }

  23. void main(void)
  24. {
  25.   setup();
  26.   while(1){
  27.     loop();
  28.   }
  29. }
复制代码


手册资料: PCF8591.PDF (139.64 KB, 下载次数: 28)
回复

使用道具 举报

0

主题

6

帖子

32

积分

注册会员

Rank: 2

积分
32
发表于 2022-3-4 20:11:50 | 显示全部楼层
初始化模块比你例程中的多一个设备地址项,咋回事?运行后出错:选择端口没有相应板子或选择错误。求解答。
回复

使用道具 举报

0

主题

1

帖子

12

积分

注册会员

Rank: 2

积分
12
发表于 2022-7-12 17:57:30 | 显示全部楼层
楼主您好,我刚开始用您的这个库组件,我在设置DA输出时,(还没有测试AD功能)怎么也没有变化,不知道可否给一个提示,我现在控制芯片用的是8H8K64U,主频24M,用P66和P67(SDA,SCL)驱动,您的库模块输入框中输入0xFF和0x00都没有任何反应,PCF8951测试电路模块是标准的模块,地址线全部接地,基准接VCC,PCF8591模块使用内部时钟。望指教,谢谢。
回复

使用道具 举报

4

主题

15

帖子

94

积分

注册会员

Rank: 2

积分
94
发表于 2022-9-7 16:46:38 | 显示全部楼层
8591DA输出频率太低了,10HZ都做不到。我准备用MCP4802做一个库模块,搞了几天都不成功。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号-1 )

GMT+8, 2024-3-28 20:48 , Processed in 0.336245 second(s), 25 queries .

Powered by Discuz!

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表