跳过主要内容

AN-1107如何使用对话框的Arduino库与GreenPak

内容

参考文献

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

https://www.dialog-semicondoduments.c雷电竞官网登录om/products/greenpak.

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

雷竞技电竞平台对话框半导体提供完整的应用程序库注意[4],其中包含了设计示例以及对话框IC中的功能和块的说明。

  1. GreenPAK设计软件,软件下载和用户指南,对话框半导体雷竞技电竞平台
  2. AN-1107如何使用GreenPak.gp使用对话框的Arduino库,绿派克设计文件,Dialog半导体雷竞技电竞平台
  3. GreenPAK开发工具,GreenPak开发工具网页,对话框半导体雷竞技电竞平台
  4. GreenPak应用笔记,绿派克应用笔记网页,对话半导体雷竞技电竞平台
  5. SLG46531.数据表,对话框半导体雷竞技电竞平台

作者:大卫Riedell

介绍

此应用笔记将解释如何使用Arduino库使用I2C通信与GreenPak设备进行交互。Arduino库允许用户通过将公共功能和声明卸载到单独的库文件夹中来创建更简单的程序。在这种情况下,我们为每个I2C兼容的GreenPak设备创建了一个库和一组宏。该库可在此应用笔记的网页页面上找到。有关使用GreenPak使用I2C的更多信息,请阅读AN-1090.。这个应用笔记将假设用户对Arduino IDE的基本知识,但不熟悉Arduino库。

安装库

您需要做的第一件事就是下载“Silegolibrary.zip”文件夹。将此文件夹解压缩到您的Arduino库目录中。此目录的默认位置是:

C:\Program Files (x86)\Arduino\libraries

在“sileglibrary”文件夹中,你会发现五个项目:

  • Silego.h - 标题文件,包括库的定义
  • Silego.cpp - C ++文件,包括库代码
  • 图书馆。包含Arduino库管理器的元信息
  • 宏目录 - 包含几个标题文件,该文件定义快捷速宏以简化代码
  • 示例目录 - 包括一些示例程序,以帮助您获取使用库的挂起

一旦您的图书馆位于正确的目录中,您需要通过打开Arduino草图来包含它,然后导航到素描 - >包含库 - >管理库。您应该看到进度条在“库管理器”窗口的底部短暂出现。一旦进度条消失,可以使用搜索字段来验证库中的“Silego”。

使用图书馆

在Arduino草图中,您需要包含头文件并创建Silego类的实例。在这种情况下,我们将用小写的“s”来调用类“silego”。

当您创建Dialog类的实例时,您将需要向它传递一个字节长的参数,该参数将为您的类提供您正在使用的设备地址。Dialog的SLG46531V芯片中的设备地址可以通过编辑I2C属性侧栏中的控制代码来配置,如图1所示。

图1. I2C属性

SLG46531V有16个可能的设备地址,如表1所示。对于此示例,我们将使用地址0x00。

表1。GreenPAK SLG46531V设备地址地址

控制代码,bin:

DEB:DEC:

设备地址,十六进制:

0000.

0.

0x00.

0001.

8.

0x08

0010

16.

0x10

0011

24.

0x18

0100

32.

0x20.

0101

40.

0x28

0110

48.

0 x30

0111

56

0 x38

1000

64

0 x40

1001.

72

0 x48

1010.

80

0×50

1011.

88.

0 x58

1100

96.

0x60.

1101.

104

0x68

1110.

112.

0x70.

1111.

120.

0x78

WriteI2C

版本0.0.1在对话框库中有两种功能:WriteI2C和Readi2c。在Arduino草图中调用其中一个函数之一的语法是Silego.Function(参数);writei2c在silego.h中定义,具有三种变体:

第一个变量允许用户将一个字节的数据写入第一个参数中给出的寄存器地址。第二种变体允许用户将单个位数据写入第一个参数中的字节地址和作为第三个参数给出的位位置,而不改变字节中的其余位。例如,如果你想将" xxx1 xxxx "写入byte_address 0xCC(其中" x 's "是你不希望更改的位),你的命令是:

在哪里:

  • 0xcc = register的byte_address
  • 1 =您要写的布尔值
  • 0x10 =位偏移偏移量,因为在2中发生“xxx1 xxxx”中所需的位4.位位置

最后一个Writei2c命令允许您通过添加“长度”参数来将多个连续位写入寄存器。

如果你想使用这个函数将“x100 1xxx”写入字节地址0xCC,命令将是:

在哪里:

  • 0xcc = register的byte_address
  • 1001 =您希望写的价值
  • 0x08 =写入值的LSB的Bit_Location偏移量,它发生在“xxxx 1xxx”,23.位位置
  • 0x04 =您要写的值的长度(1001是4位长)

Readi2c.

与Writei2c一样,Readi2c函数具有多个变体,可以根据用户包含多少参数:

第一个变体仅包括一个参数,您希望读取的字节地址。此变体将在指定的字节地址返回存储在GreenPak寄存器中的字节的值。如果您希望读取存储在地址0xcc的值,则需要一个查找类似的命令:

readI2C的第二个变体返回一个布尔值,它表示位于byte_address的字节中的单个位的值。

如果存储在0xcc处的值是“1111 1011”,则以下命令将返回0,因为2的位值2位位置为0:

回到第3节,我们让你在Arduino草图的顶部包含一个名为“SLG46531.h”的文件。如果打开该文件,您将看到大约有100个预定义宏来简化I2C命令。每个宏的值都来自产品的数据表,可以从Dialog的网站下载。

示例Arduino素描

在下面的代码中,我们在顶部包含了包含的文件,然后我们使用设备地址0x00实例化对话框库。然后,我们声明字节“a”并致电Serial.Begin(9600)以在9600波特开始串行数据传输。使用Writei2c将字节“a”写入byte_address ram_byte_0。然后我们读回“a”的值并将其存储在“mydata”中。最后,我们将“MyData”打印到Arduino串行监视器和增量“a”。

结论

在本应用笔记中,我们解释了如何使用Silego的Arduino库来简化测试和使用支持i2c的GreenPAK设备进行原型设计。在GreenPAK中使用I2C允许用户实时查看GreenPAK内部发生的事情,还允许他们动态地更改设置和连接。这种能力使得Dialog的GreenPAK产品非常灵活,可以用于各种应用。雷竞技安卓下载雷电竞官网登录