跳到主要内容

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

目录

术语和定义

物联网物联网
2CInter-integrated电路
ASM异步状态机
碳纳米管柜台

参考文献

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

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

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

  1. GreenPAK Designer软件,《软件下载及用户指南》,Dialog Semiconductor雷竞技电竞平台
  2. AN-CM-224如何使用网站测试和控制GreenPAK.gp格林帕克设计文件,对话框雷竞技电竞平台
  3. GreenPAK开发工具格林帕克开发工具网页,对话框雷竞技电竞平台
  4. GreenPAK应用笔记格林帕克应用笔记网页,Dialog半导体雷竞技电竞平台

介绍

该项目展示了如何使用网站测试、调试和控制GreenPAK设计。GreenPAK IC具有寄存器控制功能。通过这种方式,可以动态控制GreenPAK寄存器。本项目中使用了GreenPAK和Lolin NodeMcu。此外,一些web技术已被用于创建网站。但是,此应用说明不包括客户端代码。你可以看看这个链接如果你想复习的话。本应用说明由几个部分组成。这些是:

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

服务器端

服务器端代码是用ESP8266/Arduino内核编写的。通过这种方式,您可以使用ESP8266开发板,如ESPDuino、SparkFun ESP8266 Thing、ESPresso Lite、WeMos甚至通用的ESP8266板作为服务器。在本项目中,将使用Lolin节点,因此表达式将位于Lolin节点上。

Lolin NodeMcu用于与GreenPAK注册中心进行通信,并托管网站。Lolin NodeMcu和GreenPAK通过I2C协议。由于GreenPAK,可以动态更改设备配置。通过此功能,GreenPAK寄存器可以通过网站进行控制。

服务器端执行的操作包括:

  • 托管网站并路由传入请求
  • 检查目的地I2C地址
  • 向GreenPAK注册表写入
  • 从GreenPAK寄存器读取

托管网站并路由传入请求

为网站编写的HTML和jQuery代码占用了Lolin NodeMcu的内存空间。因此,为网站编写的代码托管在远程服务器上。只生成HTML、head和body标记,如中所示图1。这些标记的内容是使用jQuery从远程服务器提取的。

图1:服务器端Html代码

每个传入请求都指向相关功能。

图2:路由

检查目的I2C地址

格林帕克有16个可选择的I2C地址。这些地址可以使用控制代码寄存器确定。寄存器的最后3位是固定的(为0)。前4位可以更改。控制代码寄存器可以接收的值如所示图3

图3:控制代码值

根据这些值,I2GreenPAK的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地址,

富豪:目的寄存器地址

函数首先检查提交数据的内容nvmData美国存托凭证富豪找不到数据,它返回一个错误消息。之后,它会检查在I2用户发送的C地址。如果它不能与GreenPAK通信,它返回一个错误消息

最后,它写入发送到寄存器的数据书写2C函数接受字节类型的参数。因此,传入数据首先从字符串类型转换为整数类型。随后,它从整数类型转换为字节类型。写入GreenPAK寄存器完成后成功的消息被发送给用户。

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

图7:WriteAll函数

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

注:GreenPAK中的一些寄存器在写入时关闭。GreenPAK目标寄存器在处理过程中不会产生任何错误,即使它已关闭以进行写入。此时,在顺序写入期间不会遇到错误。

阅读GreenPAK注册表

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

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

图8:ReadOne函数

readOne函数接受两个输入,它们是富豪美国存托凭证。它控制提交数据的内容,就像它在writeOne函数。然后它检查GreenPAK I2最后,它将从GreenPAK读取的内容添加到响应消息中,并将其发送给用户。

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

图9:MultipleRead函数
图10:12齿无刷直流电机

注意:某些寄存器可能会关闭以进行读取。您可以看到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之间的十六进制数。

  • 重新寻址

它获取指定寄存器地址处的数据的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:添加输出模式

实例

寄存器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

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

图表

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

图17:播放和操作按钮

注册地址及2与模块相关的C地址存储在一个对象中2C地址和寄存器地址取自此对象并发送到Lolin NodeMcu。因此,仅获得模块操作所需的寄存器信息。此对象在模块停止时更改。如果没有其他模块需要相关寄存器,则寄存器状态为停止

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

其他行动

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

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

  • 图表编辑器

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

  • 保存模块

用户只能单击此按钮保存此模块。将保存模块的输入、输出和图表选项。

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

  • 删除模块

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

  • 下载数据

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

例如:Sharp Sensor Node

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

夏普传感器是一种模拟传感器。使用其他模拟传感器创建模块时可以使用此示例。由于GreenPAK(SLG46531V)中没有模数转换器(ADC),因此使用GreenPAK 4(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*数学功率(v,-1.1)

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

Var v = 0.01875 * @adc_out;

If (v != 0){

12.38*数学功率(v,-1.1);

否则{

错误的

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

图23:添加“距离”输出

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

图24:创建的“Distance_sensor”模块

设置/连接

Arduino IDE设置

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

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

识别Lolin NodeMcu后,将开发板插入计算机,并从工具->板中选择NodeMcu 1.0(ESP-12E模块)。此外,不要忘记从工具->端口中选择板连接的端口。

编辑代码

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

首先,您应该根据所使用的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作为传感器节点变得更加容易。雷竞技安卓下载