跳过主要内容

AN-1144 I2C IO控制器8位总线

内容

参考文献

有关文件及软件,请浏览:

//www.wsdof.com/雷电竞官网登录products/greenpak

下载我们的免费GreenPAK设计软件[1],打开。gp文件[2],并使用GreenPAK开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。

雷竞技电竞平台Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和模块的说明。

  1. GreenPAK设计软件,软件下载和用户指南,Dialog Semiconductor雷竞技电竞平台
  2. AN-1144 I2C IO控制器8位总线,绿派克设计文件,Dialog半导体雷竞技电竞平台
  3. GreenPAK开发工具, GreenPAK开发工具网页,Dialog半导体雷竞技电竞平台
  4. GreenPAK应用笔记,绿派克应用笔记网页,对话半导体雷竞技电竞平台
  5. SLG46531对话框数据表,半导体雷竞技电竞平台

作者:玉涵太阳

介绍

这个应用笔记是另一个应用笔记的必然结果AN-1090 Simple I2C IO controller with SLG46531V[5].AN-1090解释了如何使I2C IO控制器具有单独的输入和输出引脚。然而,这个应用程序笔记将解释如何设置一个8位总线控制器结合输入引脚和输出引脚。请参见图1中的系统级别视图。

图1所示。系统级视图

数字输入/输出和OE

为了结合输入和输出,总线接口的每个引脚被设置为“数字输入/输出”。在SLG46531V中只有9个gpio能够“数字输入/输出”,我们将使用其中的8个引脚:引脚#19,18,16,14,13,7,5,3。每个引脚都有一个用于切换模式的OE信号。设置如图3所示的属性,并设置如图2所示的矩阵连接。

每个输出信号由一个I2C虚拟输入控制。OE由2位LUT0控制。2位LUT0的输入都是gnd。因此,如果LUT配置如图4a所示,那么OE将是逻辑1。如果LUT配置如图4b所示,那么OE将是逻辑0。我们将使用I2C动态更改LUT配置。

图2。GreenPAK设计
图3。销的配置
图4。OE = 1
图4 b。OE = 0

I2C总线写

为了写总线,MCU必须发送2个命令:首先写I2C虚拟输入,然后通过重新配置2位LUT0设置OE = 1:

  1. W: I2C虚拟输入,写入地址0xF4。每个位对应一个I2C虚拟输入。从左到右的顺序是引脚#19,18,16,14,13,7,5和3。

    0 xf4

    0

    0

    0

    0

    0

    0

    0

    0

    0 xf4

    1

    1

    1

    1

    1

    1

    1

    1

  2. W: 2比特LUT0,将字节值为0x8的地址0x96的第二个小点写入。要屏蔽第一个字节,读取字节并只更改后四位。

    0 x96

    X

    X

    X

    X

    1

    0

    0

    0

I2C总线读

为了从总线读取,MCU必须发送2个命令:首先通过重新配置2位LUT0设置OE = 0,然后从GPIO输入电平读取。

  1. W: 2比特LUT0,将字节值为0x0的地址0x96的第二个小点写入。要屏蔽第一个字节,读取字节并只更改后四位。

    0 x96

    X

    X

    X

    X

    0

    0

    0

    0

  2. R:输入水平,从地址0xF0和0xF6读取pin# 3、5、7和pin# 13、14、16、18、19的输入电平。然后根据位位置对数据进行解析。

    0 xf0

    X

    X

    PIN3

    X

    平快

    X

    PIN7

    X

    0 xf6

    X

    PIN13

    PIN14

    X

    PIN16

    0

    PIN18

    PIN19

警告

下面的警告可以忽略,因为2位LUT0输入故意保持静态,并且真值表将通过I2C重新配置。

图5。警告和规则检查器

模拟

每个数字IO引脚有一个上拉低活动按钮。仿真后启用I2C工具。

图6。模拟器配置

I2C命令示例

图7到10显示了每个示例的输出,这是来自I2C工具的屏幕截图。

语法:是开始的部分,是停止位,和SA是带有r/w位的从地址。

  1. I2C write to I2C虚拟输入逻辑0,0,0,1,0,1,1。

    (SA)0 xf4 0 xe8

  2. I2C写入2位LUT0配置到1,0,0,0:

    (SA)0 x96 (

    图7。我的例子
    图8。例子二世
  3. I2C write 2-bit LUT0 configuration to 0,0,0,0:

    (SA)0 x96 0 x00

  4. 从引脚#7,5和3和#19,18,16,14和13读取输入电平:

    (SA)0 xf00 xsa读

  5. I2C write 2-bit LUT0 configuration to 0,0,0,0:

    (SA)0 x96 0 x00

  6. 从引脚#7,5和3和#19,18,16,14和13读取输入电平:

    (SA)0 xf00 xsa读

    (SA)0 xf60 xsa读

图9。示例3
图10。示例4

结论

在本应用笔记的最后,你应该能够制作一个GreenPAK设计和I2C命令。不像一个- 1090,这种设计使用更少的gpio,以牺牲更多的I2C命令为代价。