跳过主要内容

AN-1107如何使用Dialog的Arduino库GreenPAK

内容

参考文献

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

//www.xmece.com/亚博电竞菠菜products/greenpak

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

yabo国际娱乐Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和模块的说明。

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

作者:大卫Riedell

介绍

本应用笔记将解释如何使用Arduino库与GreenPAK设备通过I2C通信进行交互。Arduino库允许用户通过将常用函数和声明卸载到单独的库文件夹中来创建更简单的程序。在本例中,我们为每个兼容i2c的GreenPAK设备创建了一个库和一组宏。这个库可以在App Note的网站页面上找到。有关在GreenPAK中使用I2C的更多信息,请阅读一个- 1090.本应用笔记假设用户对Arduino IDE有基本知识,但不熟悉Arduino Libraries。

安装库

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

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

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

  • h -包含库定义的头文件
  • cpp -包含库代码的c++文件
  • 图书馆。包含Arduino库管理器的元信息
  • 宏目录-保存几个头文件,其中定义了快捷宏以简化代码
  • 示例目录-包括一些示例程序,以帮助您掌握使用库的窍门

一旦你的库在正确的目录中,你将需要通过打开一个Arduino草图包括它,然后导航到sketch ->包括库->管理库。您应该会在“Library Manager”窗口的底部看到一个简短的进度条。一旦进度条消失,您可以使用搜索字段来验证“Silego”出现在您的库中。

使用图书馆

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

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

图1所示。I2C属性

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

表1。GreenPAK SLG46531V设备地址地址

本控制代码:

设备地址,12月:

设备地址,十六进制:

0000

0

0 x00

0001

8

(

0010

16

0 x10

0011

24

0 x18

0100

32

0 x20

0101

40

0 x28

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

0 x60

1101

104

0 x68

1110

112

0 x70

1111

120

0 x78

WriteI2C

在Dialog库的0.0.1版本中有两个可用函数:writeI2C和readI2C。在Arduino草图中调用这些函数之一的语法是silego.function(parameters);。WriteI2C在Silego.h中定义,有三种变体:

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

地点:

  • 0xCC =寄存器的字节地址
  • 1 =您希望写入的布尔值
  • 0x10 = bit_location偏移量,因为“xxx1 xxxx”中的期望位出现在24位位置

最后一个writeI2C命令允许您通过添加“length”参数向寄存器写入几个连续的位。

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

地点:

  • 0xCC =寄存器的字节地址
  • 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的Dialog库的实例化。然后我们声明字节“a”并调用serial .begin(9600)以9600波特率开始串行数据传输。字节“a”使用writeI2C写入byte_address RAM_BYTE_0。然后我们读回“a”的值并将其存储在“myData”中。最后,我们将“myData”输出到Arduino串行监视器并增加“a”。

结论

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