PCA9555 Studying

  PCA9555是一个16 bit 的I2C bus的Expander。 

 A2,A1,A0是地址位;SCL/SDA 是来自Master的I2C data线和CLK线,VDD是PWR,VSS是参考地,SDA经过I2C Control判定为是读还是写,如果是写,将port配置成output,则将2字节的data经过串并转换依次成8bit的并行数据输出。如果是读,则将port配置成input。

 数据经过I2C Contorl,判定为读写后,如果为写,则数据经过移位寄存器(shift Register),串行输入并行输出至相应的寄存器,后经过output port数据输出。如果为读,则反之。

寄存器一共有四种,分别为 input port Register、output port Register、Configuration Register、Polarity inversion Register。每一种寄存器有两个为一对,第一个8bit数据如果进入Regiser0,则下一个8bit则进入Register1。

如何判定是读还是写呢?又如何选定寄存器呢?

Writing: data由master-->slave,可写入output port Registers、configuration port  registers.

如上图所示,会有一个起始位,之后7Bit为地址位,地址位中,高四位默认为0100,后三位通过外部上下拉确定,第八位为读写位,如果是0则为写,如果是1则为读,之后则会跟一位应答位,再后面八位判定是写进哪个寄存器 ,后面应答位,之后数据位,不论是地址byte还是command byte还是data byte,其后面都要跟一位来自slave的应答位,告诉master这个byte已经接收到,可以传输下一个byte了。

Read:data由slave-->master,可从input port register读取数据.

 第一个8bit:slave Address+读写位(读为1);

来自slave 应答位;

第2个8bit:Command byte,用于判断写入哪个寄存器;

来自slave应答位;

第3个8bit:重复地址位+读写位

来自slave应答;

后面一次8bit数据位+来自master应答;

寄存器的选取?

通过command byte确定数据到达哪个寄存器,如下图所示

00000000即input port 0 Register;00000010即output port 0 Register,以此类推。

Pin Description

 

INT:open-drain(OD)需要外部一个特定的上拉;

A2/A1/A0:固定的上下拉表示不同的地址位;

VDD:2.3V-5.5V.

Application design-in :

IO_1_0/IO_1_1/IO_1_2通过外部特定的上下来来确定主板上通过PCIE接的是什么类型的Riser;

A 2/A1/A0通过外部固定的上下拉确定地址位000;

SDA/SCL是一组来自FPGA的I2C,通过IO EXP读取Riser的类型,Wake信号,接在Riser上的PCIe卡的在位信号 等;

INT因为OD,必须有一个外部上拉,同时接入了DC Monitor,产生中断。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值