术语和定义
参考文献
//www.wsdof.com/configurable-mixed-signal.
下载我们的免费格林帕克软件设计师(1]以打开。gp文件[2],并查看所提出的电路设计。使用格林帕克开发工具(3.可以在几分钟内将设计冻结到您自己定制的集成电路中。雷竞技电竞平台Dialog Semiconductor提供完整的申请资料库[4]提供设计示例以及对话框IC内的功能和块说明。
- GreenPAK Designer软件,《软件下载及用户指南》,Dialog Semiconductor雷竞技电竞平台
- AN-CM-224如何使用网站测试和控制GreenPAK.gp,格林帕克设计文件,对话框雷竞技电竞平台
- GreenPAK开发工具,格林帕克开发工具网页,对话框雷竞技电竞平台
- 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从远程服务器提取的。
每个传入请求都指向相关功能。
检查目的I2C地址
格林帕克有16个可选择的I2C地址。这些地址可以使用控制代码寄存器确定。寄存器的最后3位是固定的(为0)。前4位可以更改。控制代码寄存器可以接收的值如所示图3.
根据这些值,I2GreenPAK的C地址见表1.
控制代码 |
填充 |
我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.它使用连接库来实现这一点。
的检查装置函数逐个检查所有地址,如所示表1。如果目标上有设备,它会将设备的地址添加到响应消息中。最后,它会通知用户合适的设备。
注:该检查装置函数只检查目的地址是否有合适的设备可用。这个装置可能不是GreenPAK。
向GreenPAK注册表写入
GreenPAK可以通过改变它的寄存器来控制。每个寄存器的任务是不同的。关于寄存器的地址和任务,您可以参考GreenPAK数据表中的附录。
的writeOne函数将用户发送的数据写入相应的GreenPAK寄存器。
的writeOne函数从用户处接收3个数据。它们是:
NvmData:注册内容,
美国存托凭证:目标GreenPAK I2C地址,
富豪:目的寄存器地址
函数首先检查提交数据的内容nvmData,美国存托凭证或富豪找不到数据,它返回一个错误消息。之后,它会检查在I2用户发送的C地址。如果它不能与GreenPAK通信,它返回一个错误消息
最后,它写入发送到寄存器的数据书写2C函数接受字节类型的参数。因此,传入数据首先从字符串类型转换为整数类型。随后,它从整数类型转换为字节类型。写入GreenPAK寄存器完成后成功的消息被发送给用户。
的writeAll函数将用户发送的所有数据写入寄存器。
函数从用户处接收数据的两个方面nvmData数组和美国存托凭证.函数的工作原理类似于writeOne函数。不像writeOne,nvmData%5B%5D检查数据,而不是nvmData数据。自nvvmData这个函数中是否有一个数组,它被提交为nvmData [].角色% 5 b和% 5 d与字符对应[ ]在百分比编码中。然后,格林帕克一号2检查C地址。最后nvmData数组通过for循环写入GreenPAK寄存器。的消息成功的在流程完成后发送给用户。
注:GreenPAK中的一些寄存器在写入时关闭。GreenPAK目标寄存器在处理过程中不会产生任何错误,即使它已关闭以进行写入。此时,在顺序写入期间不会遇到错误。
阅读GreenPAK注册表
还可以从GreenPAK寄存器读取数据。此时,可以获得诸如引脚是高还是低、CNT块的计数数据以及ASM当前正在执行的状态等信息。
的readOne函数读取用户请求的寄存器内容并将其发送给用户。
的readOne函数接受两个输入,它们是富豪和美国存托凭证。它控制提交数据的内容,就像它在writeOne函数。然后它检查GreenPAK I2最后,它将从GreenPAK读取的内容添加到响应消息中,并将其发送给用户。
的readAll函数读取所有GreenPAK寄存器并将内容返回给用户。
注意:某些寄存器可能会关闭以进行读取。您可以看到I2数据表中的C串行命令寄存器保护。
如何使用网站
使用网站,用户可以通过创建模块读取寄存器,向寄存器写入值,并可视化寄存器值。
用户可以从项目或连接到loin NodeMcu的GreenPAK读取寄存器数据。用户还可以扫描可能的GreenPAK I2C地址。
读取过程结束后,寄存器显示在图12.
用户可以通过表中的按钮逐个写入或读取寄存器数据。此外,可以使用“写所有”按钮对GreenPAK进行编程。
用户通过模块读取和监视寄存器数据。用户可以创建新模块或加载以前创建的模块。创建模块时,要求用户指定输入和输出。每个模块必须具有唯一的名称。
投入
输入由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
注:x和y值必须写成
- RegAddress < x >
这需要时间x指定寄存器地址处数据的第位。
实例
寄存器f6:00010000
位:f6 < 4 >
结果:1
注:x必须是介于0和7之间的数字。
- [填充]
与以前的模式不同,用户可以添加所需的填充值。
实例
位:[001001]
结果:001001
注意:填充值必须是二进制的[及]人物。
用户还可以合并此数据。若要合并,用户必须将逗号(",)。
实例
寄存器f5:00110001
寄存器f6:11110000
位:f5 < 3 >, f6
结果:11011110000
添加的输入可以随时删除。
输出
输出值将显示在图表中。图表是使用输出值绘制的。输出是包含输入的函数。在创建输出时可以使用多个输入。因此,在一个模块中可以显示多个GreenPAK寄存器数据。
输出函数使用JavaScript eval函数进行求解如果除了函数部分中的数学运算外,还可以使用。要在输出函数中使用预定义的输入,请@字符必须放在输入名称的前面,后面必须有空格。如果有预定义的输入,则会在功能部分下自动添加输入按钮。用户可以通过单击这些按钮更轻松地添加输入。
实例
寄存器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
编写完输出函数后,可以通过单击测试按钮来测试函数。在打开并单击的模态上输入输入就足够了计算按钮
图表
模块使用谷歌图表将输出转换为图表。创建每个模块时,它会创建一个显示输出的折线图。模块最初是停止的位置。用户可以通过点击来操作模式玩按钮
注册地址及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.
根据距离的不同,夏普传感器输出可达3.1 V。然而,V裁判在SLG46620V的ADC是1.2 V。因此,Sharp传感器输出被分为4个,使其低于1.2 V。
硬件连接
如中所示进行了连接一个- 1102.由于loolin NodeMcu通信在3.3 V水平,GreenPAK和GreenPAK4提供3.3 V。夏普传感器的工作电压在4.5 V到5.5 V之间,因此电源是单独导出的。连接可以在图20.
模块设置
如中所示图20,来自SLG46620V的8位输入数据连接到SLG46531V的引脚上。这些引脚分别是19-18-17-16-15-13-12。这些引脚的数字输入值存储在F6寄存器中,如SLG46531V数据表中的Matrix input表所示。
因此,在添加输入时使用F6寄存器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,模块将自动暂停。
将输出添加到模块后,单击保存模块按钮。现在模块已准备好运行。您可以通过单击玩按钮。如果需要,可以通过单击更改图表类型操作按钮,您可以保存模块,您可以下载csv格式的测量距离。
设置/连接
Arduino IDE设置
使用Arduino IDE对loolin NodeMcu卡进行编程。将Arduino IDE引入到loin NodeMcu板的流程如下:
- 打开Arduino IDE
- 点击File -> preferences
- 单击其他Boards Manager URL旁边的按钮
- 粘贴地址http://arduino.esp8266.com/stable/package_esp8266com_index.json
- 进入打开的窗口并单击“确定”
- 单击工具->线路板->线路板管理器
- 在打开的窗口中找到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地址访问网站。
结论
通过本应用说明中概述的技术,您可以远程控制GreenPAK。这使得在物联网和家庭自动化等应用中使用GreenPAK作为传感器节点变得更加容易。雷竞技安卓下载