跳到主要内容

AN-CM-224如何使用网站测试和控制GreenPAK

内容

术语和定义

物联网物联网
2CInter-integrated电路
asm.异步状态机
计数器

参考文献

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

//www.xmece.com/configurable-mixed-signal

下载我们的免费格林帕克软件设计师(1]以打开。gp文件[2],并查看所提出的电路设计。使用格林帕克开发工具(3.可以在几分钟内将设计冻结到您自己定制的集成电路中。yabo国际娱乐Dialog Semiconductor提供完整的申请资料库[4]具有设计示例以及对话框IC中的功能和块的说明。

  1. GreenPAK设计软件,《软件下载及用户指南》,Dialog Semiconductoryabo国际娱乐
  2. AN-CM-224如何使用网站测试和控制GreenPAK格林帕克设计文件,对话框半导体yabo国际娱乐
  3. GreenPAK开发工具格林帕克开发工具网页,对话框半导体yabo国际娱乐
  4. GreenPAK应用笔记格林帕克应用笔记网页,Dialog半导体yabo国际娱乐

介绍

这个项目展示了如何使用网站测试、调试和控制GreenPAK设计。GreenPAK ICs带有注册控制功能。通过这种方式,可以实时控制GreenPAK寄存器。本项目使用了GreenPAK和loolin NodeMcu。此外,一些网络技术也被用于创建网站。然而,这个应用程序笔记将不包括客户端代码。你可以看看这个链接如果您想审核它。此应用笔记由几个部分组成。这些是:

  • 服务器端
  • 网站的使用
  • 例如:Sharp Sensor Node
  • 设置/连接

服务器端

服务器端代码是用ESP8266 / Arduino内核编写的。这样,您就可以使用ESP8266开发板,如ESPDuino, SparkFun ESP8266 Thing, ESPresso Lite, WeMos,甚至Generic ESP8266 Board作为服务器。在这个项目中,将使用loolin NodeMcu,因此表达式将在loolin NodeMcu上。

Lolin Nodemcu被用来与GreenPak寄存器通信并托管网站。Lolin Nodemcu和GreenPak通过我互相传达2C协议。得益于GreenPAK,设备配置可以动态更改。有了这个功能,GreenPAK的注册可以通过网站进行控制。

服务器端完成的操作是:

  • 托管一个网站和路由传入请求
  • 检查目的地I.2C地址
  • 写信给GreenPak寄存器
  • 从GreenPAK的注册表中读取

托管一个网站和路由传入请求

为网站编写的HTML和jQuery代码占用了loolin NodeMcu的内存空间。因此,为网站编写的代码驻留在远程服务器上。只生成HTML、头部和身体标签,如图1.使用jQuery从远程服务器拔出这些标记的内容。

图1:服务器端Html代码

每个传入请求都指向相关函数。

图2:路由

检查目的I2C地址

GreenPAKs有16个可选择的I2C地址。这些地址可以使用控制码寄存器来确定。寄存器的最后3位是固定的(0),前4位是可以改变的。控件代码寄存器可以接收的值显示在图3.

图3:控制代码值

根据这些价值观,我2GreenPAK的C地址见表格1

表1:我2根据控制代码地址
控制代码
填充
2C地址
0000
000.
0
0001
000.
8
0010
000.
16.
0011
000.
24.
0100
000.
32.
0101
000.
40
0110
000.
48.
0111
000.
56.
1000
000.
64.
1001
000.
72.
1010
000.
80
1011
000.
88
1100
000.
96
1101
000.
104.
1110
000.
112.
1111
000.
120.

controlGPAK函数控制I2C发送的地址。

它返回0如果有一种装置能够2C通讯在这个地址。如果这个地址上没有设备或者通信有问题,它返回一个数字0.它使用连接库来实现这一点。

图4:ControlGPAK功能

检查道函数逐个检查所有地址,如所示表格1.如果目标处于目标,则它将设备的地址添加到响应消息。最后,它将合适的设备通知给用户。

图5:CheckDevice功能

注意:检查道函数只检查目的地址是否有合适的设备可用。这个装置可能不是GreenPAK。

写信给GreenPak寄存器

GreenPAK可以通过改变它的寄存器来控制。每个寄存器的任务是不同的。关于寄存器的地址和任务,您可以参考GreenPAK数据表中的附录。

writeOne函数将用户发送的数据写入相应的GreenPAK寄存器。

图6:WriteOne函数

writeOne功能从用户接收3个数据。这些是:

NvmData:注册内容,

美国存托凭证:目标GreenPAK I2C地址,

regadr.:目的寄存器地址

该函数首先检查提交数据的内容。如果有任何nvmdata.美国存托凭证或者regadr.无法找到数据,返回一个错误消息。然后在I处检查是否有合适的GreenPAK2用户发送的C地址。如果它不能与GreenPAK通信,它返回一个错误消息。

最后,它将发送到寄存器的数据写入。的writei2c.函数以字节类型采用参数。因此,传入数据首先从字符串类型转换为整数类型。稍后,它从整数类型转换为字节类型。写入GreenPak寄存器后结束后,成功的消息被发送给用户。

writeAll函数写入用户发送给寄存器的所有数据。

图7:WriteAll函数

该函数从用户接收两个方面的数据。这些都是nvmdata.数组和美国存托凭证.函数的工作原理类似于writeOne函数。不像writeOnenvmdata%5b%5d检查数据而不是nvmdata.数据。自nvvmdata.这个函数中是否有一个数组,它被提交为nvmData [].那些角色% 5 b% 5 d对应于角色[]在百分比编码中。然后,GreenPak I2检查C地址。最后,nvmdata.数组通过for循环写入GreenPAK寄存器。的消息成功的在流程完成后发送给用户。

注意:GreenPak中的某些寄存器是为了写作而关闭。GreenPak目标寄存器在处理期间不会生成任何错误,即使它已关闭以写入。此时,在顺序写入期间没有遇到错误。

阅读GreenPAK注册表

数据也可以从GreenPAK寄存器读取。此时,可以获得诸如引脚是高还是低、CNT块的统计数据以及ASM当前执行的状态等信息。

readOne函数读取用户请求的寄存器内容并将其发送给用户。

图8:ReadOne函数

readOne函数需要两个输入regadr.美国存托凭证.它控制提交数据的内容writeOne函数。然后它检查GreenPAK I2C的地址。最后,它将从GreenPAK中读取的内容添加到响应消息中,并将其发送给用户。

readAll函数读取所有GreenPAK寄存器并将内容返回给用户。

图9:Multipleread功能
图10:12齿BLDC电机

注意:有些寄存器可能因为读取而关闭。你可以看到I2数据表中的C串行命令寄存器保护。

如何使用网站

使用网站,用户可以通过创建模块读取寄存器,向寄存器写入值,并可视化寄存器值。

用户可以从项目或连接到loin NodeMcu的GreenPAK读取寄存器数据。用户还可以扫描可能的GreenPAK I2C地址。

图11:从File/GreenPAK读取

读取过程结束后,寄存器显示在图12

图12:注册表

用户可以通过表中的按钮逐个写入或读取寄存器数据。此外,可以使用“写所有”按钮对GreenPAK进行编程。

图13:写入GreenPAK

用户通过模块读取并监视寄存器数据。用户可以创建一个新模块或加载先前创建的模块。创建模块时,要求用户指定输入和输出。每个模块必须具有唯一名称。

图14:添加模块部分

输入

输入由GreenPAK中的寄存器数据在特定I处决定2C的地址。一个输入可以包含多个寄存器数据。可以组合、截断和屏蔽寄存器数据。

每个输入都构造了一个名称I2C和位信息。输入必须有唯一的名称。确定比特信息时使用的模式;

  • RegAddress

它在指定的寄存器地址处需要8位数据而没有任何操作。

例子

f6登记:00001111.

位:f6

结果:00001111.

注意:寄存器地址必须是00到FF之间的十六进制数。

  • RegAddress < x: y >

它获取指定寄存器地址的数据在x和y之间的范围。如果x大于y,数据只被截断。如果x小于y,数据首先被截断,然后位按相反的顺序排序。

例子

f6登记:00010111

位:f6 < 4:1 >

结果:1011

或者

位:f6 < 1:4 >

结果:1101

笔记:xy值必须写成。此外,x和y必须是介于0-7之间的数字。

  • RegAddress < x >

它需要x在指定寄存器地址处的数据的比特。

例子

f6登记:00010000

位:f6 < 4 >

结果:1

笔记:x必须是0到7之间的数字。

  • (填充)

与以前的模式不同,用户可以添加所需的填充值。

例子

位:[001001]

结果:001001.

注意:填充值必须是二进制的(和人物。

用户还可以组合此数据。要合并,用户必须放置逗号(“)。

例子

f5登记:00110001

f6登记:11110000

位:f5 < 3 >, f6

结果:11011110000

图15:添加Input Modal

添加的输入可以随时删除。

输出

输出值将显示在图表中。图表是使用输出值绘制的。输出是包含输入的函数。在创建输出时可以使用多个输入。因此,在一个模块中可以显示多个GreenPAK寄存器数据。

使用JavaScript eval函数解决了输出函数。通过这种方式,诸如如果可用于除数学运算之外的函数部分。若要在输出函数中使用预定义的输入,则字符必须放在输入名的前面,字符后面必须有一个空格。如果有预定义的输入,则在功能部分下自动添加输入按钮。用户可以通过单击这些按钮更容易地添加输入。

图16:添加Output Modal

例子

f6登记:00000111: 7

f5登记:00001000: 8

输入

i1:f5 < 3 >, f6 <握>结果:10111:23

i2:f5 < 3:2 >, [010]结果:10010:18

输出

O1:@ i1 * math.sqrt(@ i2)结果:23 * 4,24 = 97,58

O2: if (@i1 > @i2)

{@i1;}

其他的

{@i2;}

结果:23

编写完输出函数后,可以通过单击测试按钮来测试函数。在打开并单击的模态上输入输入就足够了计算按钮。

图表

模块使用Google图表将输出转换为图表。创建每个模块时,它会创建一个划线图,显示输出。模块最初是停止的位置。用户可以通过点击来操作模式按钮。

图17:播放和操作按钮

注册地址和本人2与模块相关的C地址存储在对象中。运行模块时,需要我2C地址和寄存器地址从此对象中取出并发送到Lolin Nodemcu。因此,仅获得模块操作所需的寄存器信息。当模块停止时,此对象会更改。如果没有需要相关寄存器的其他模块,则寄存器状态将是停止

默认情况下,图表每10秒刷新一次。GreenPAK寄存器值每10秒读取一次。

其他行为

用户可以通过点击添加模块中的操作按钮来添加先前保存的模块。或者,用户可以将所有模块保存到一个文件中。模块以JSON格式的txt文件保存。此外,在用户创建模块后,操作按钮将出现在模块部分中。

单击此按钮可以进行用户进行的操作;

  • 图表编辑器

用户可以更改显示输出的图表的属性。用户还可以更改属性,如图表类型和输出的颜色。一旦用户点击好的按钮,将应用更改并重新绘制图表。图表编辑器使用谷歌图表编辑器创建。

  • 保存模块

用户只能通过单击此按钮来保存此模块。输入,输出,模块的图表选项已保存。

注意:save操作不保存模块的输出数据。因此,当恢复模块时,它是从头创建的。

  • 删除模块

用户可以通过单击该按钮来删除该模块。该模块将从页面中删除,并从所需的对象中删除。

  • 下载数据

用户可通过此按钮下载csv格式的输出数据。列由分号分隔(")。用户可以使用这个文件来检查数据。

例如:Sharp Sensor Node

在本例中,检查了夏普GP2Y0A41SK0F模拟距离传感器(4-30厘米)的距离测量。使用该模块将这些测量值转换为图形。

Sharp传感器是一种模拟传感器。此示例可用于创建与其他模拟传感器的模块。由于GreenPAK (SLG46531V)中没有模拟数字转换器(ADC),所以使用GreenPAK4 (SLG46620V)中的ADC。的一个- 1102应用程序笔记用于此。夏普传感器的距离电压输出图如图所示图18

图18:锐传感器距离-电压图

根据距离的不同,夏普传感器输出可达3.1 V。然而,V裁判在SLG46620V的ADC是1.2 V。因此,Sharp传感器输出被分为4个,使其低于1.2 V。

图19:PGA设置

硬件连接

连接的连接如图所示一个- 1102.由于loolin NodeMcu通信在3.3 V水平,GreenPAK和GreenPAK4提供3.3 V。夏普传感器的工作电压在4.5 V到5.5 V之间,因此电源是单独导出的。连接可以在图20

图20:硬件连接

模块设置

如图所示图20,来自SLG46620V的8位输入数据连接到SLG46531V的引脚上。这些引脚分别是19-18-17-16-15-13-12。这些引脚的数字输入值存储在F6寄存器中,如SLG46531V数据表中的Matrix input表所示。

图21:F6寄存器

因此,添加输入时使用F6寄存器。让我们找个名字adc_out到我们添加的输入。

图22:添加“adc_out”输入

Sharp传感器不是线性传感器。该传感器的距离公式;

求值v, V裁判值必须除以分辨率,这个值必须乘以adc_out

由于我们将传感器输出电压的增益设置为0.25,我们得到的值将是实际值的1 / 4。因此,我们需要将找到的值乘以4。

结果,价值v

距离;

12.38 * math.pow(v,-1.1)

如果传感器出了问题adc_out变量可以为零。在这种情况下,函数会趋于无穷。我们可以用if语句来阻止它。结果,输出函数的最终状态;

Var v = 0.01875 * @adc_out;

If (v != 0){

12.38 * math.pow(v,-1.1);

别的 {

虚假的;

如果变量v为0时,函数将返回false,模块将自动暂停。

图23:添加“距离”输出

将输出添加到模块后,通过单击保存模块按钮。现在模块已准备好运行。您可以通过单击开始模块按钮。如果愿意,可以通过单击更改图表类型操作按钮,可以保存模块,可以下载测量的CSV格式。

图24:创建的“Distance_sensor”模块

设置/连接

Arduino IDE设置

使用Arduino IDE对loolin NodeMcu卡进行编程。将Arduino IDE引入到loin NodeMcu板的流程如下:

  1. 打开Arduino IDE
  2. 点击File -> preferences
  3. 单击其他电路板管理器URL旁边的按钮
  4. 粘贴地址http://arduino.esp8266.com/stable/package_esp8266com_index.json
  5. 进入打开的窗口并单击“确定”
  6. 点击工具 - > Board - > Boards Manager
  7. 在打开的窗口中找到ESP8266并加载它

识别出“Lolin NodeMcu”后,将开发板插入计算机,在“tools -> board”中选择“NodeMcu 1.0 (ESP-12E Module)”。另外,不要忘记从“Tools ->端口”中选择单板连接的端口。

编辑代码

在将代码加载到Lolin Nodemcu之前,用户必须进行一些调整。

首先,您应该根据所使用的Wi-Fi网络在服务器端代码中设置“ssid”和“password”变量。如果使用Generic ESP8266板,则应该将GPIO 0和GPIO 2设置为SDA和SCL,用于I2C通信。其他单板可以使用默认引脚。

如果需要,它还可以将客户端代码保存在用户指定的远程服务器上。客户端代码位于GitHub服务器中。它可以在不做任何更改的情况下使用。最后,必须进行必要的设置以获得到Lolin NodeMcu的静态IP。您可以使用此IP地址访问网站。

图25:SSID,密码和IP
图26:SDA和SCL设置

结论

使用此应用笔记中概述的技术,您可以远程控制GreenPak。这使得更容易使用GreenPak作为IOT和家庭自动化等应用中的传感器节点。亚博国际官网平台网址