术语和定义
参考文献
//www.xmece.com/configurable-mixed-signal.
下载我们的免费格林帕克软件设计师(1]以打开。gp文件[2],并查看所提出的电路设计。使用格林帕克开发工具(3.可以在几分钟内将设计冻结到您自己定制的集成电路中。yabo国际娱乐Dialog Semiconductor提供完整的申请资料库[4]具有设计示例以及对话框IC中的功能和块的说明。
- GreenPAK设计软件,《软件下载及用户指南》,Dialog Semiconductoryabo国际娱乐
- AN-CM-224如何使用网站测试和控制GreenPAK,格林帕克设计文件,对话框半导体yabo国际娱乐
- GreenPAK开发工具,格林帕克开发工具网页,对话框半导体yabo国际娱乐
- 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从远程服务器拔出这些标记的内容。
每个传入请求都指向相关函数。
检查目的I2C地址
GreenPAKs有16个可选择的I2C地址。这些地址可以使用控制码寄存器来确定。寄存器的最后3位是固定的(0),前4位是可以改变的。控件代码寄存器可以接收的值显示在图3..
根据这些价值观,我2GreenPAK的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地址,
regadr.:目的寄存器地址
该函数首先检查提交数据的内容。如果有任何nvmdata.,美国存托凭证或者regadr.无法找到数据,返回一个错误消息。然后在I处检查是否有合适的GreenPAK2用户发送的C地址。如果它不能与GreenPAK通信,它返回一个错误消息。
最后,它将发送到寄存器的数据写入。的writei2c.函数以字节类型采用参数。因此,传入数据首先从字符串类型转换为整数类型。稍后,它从整数类型转换为字节类型。写入GreenPak寄存器后结束后,成功的消息被发送给用户。
的writeAll函数写入用户发送给寄存器的所有数据。
该函数从用户接收两个方面的数据。这些都是nvmdata.数组和美国存托凭证.函数的工作原理类似于writeOne函数。不像writeOne,nvmdata%5b%5d检查数据而不是nvmdata.数据。自nvvmdata.这个函数中是否有一个数组,它被提交为nvmData [].那些角色% 5 b和% 5 d对应于角色[]在百分比编码中。然后,GreenPak I2检查C地址。最后,nvmdata.数组通过for循环写入GreenPAK寄存器。的消息成功的在流程完成后发送给用户。
注意:GreenPak中的某些寄存器是为了写作而关闭。GreenPak目标寄存器在处理期间不会生成任何错误,即使它已关闭以写入。此时,在顺序写入期间没有遇到错误。
阅读GreenPAK注册表
数据也可以从GreenPAK寄存器读取。此时,可以获得诸如引脚是高还是低、CNT块的统计数据以及ASM当前执行的状态等信息。
的readOne函数读取用户请求的寄存器内容并将其发送给用户。
的readOne函数需要两个输入regadr.和美国存托凭证.它控制提交数据的内容writeOne函数。然后它检查GreenPAK I2C的地址。最后,它将从GreenPAK中读取的内容添加到响应消息中,并将其发送给用户。
的readAll函数读取所有GreenPAK寄存器并将内容返回给用户。
注意:有些寄存器可能因为读取而关闭。你可以看到I2数据表中的C串行命令寄存器保护。
如何使用网站
使用网站,用户可以通过创建模块读取寄存器,向寄存器写入值,并可视化寄存器值。
用户可以从项目或连接到loin NodeMcu的GreenPAK读取寄存器数据。用户还可以扫描可能的GreenPAK I2C地址。
读取过程结束后,寄存器显示在图12.
用户可以通过表中的按钮逐个写入或读取寄存器数据。此外,可以使用“写所有”按钮对GreenPAK进行编程。
用户通过模块读取并监视寄存器数据。用户可以创建一个新模块或加载先前创建的模块。创建模块时,要求用户指定输入和输出。每个模块必须具有唯一名称。
输入
输入由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
笔记: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
编写完输出函数后,可以通过单击测试按钮来测试函数。在打开并单击的模态上输入输入就足够了计算按钮。
图表
模块使用Google图表将输出转换为图表。创建每个模块时,它会创建一个划线图,显示输出。模块最初是停止的位置。用户可以通过点击来操作模式玩按钮。
注册地址和本人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.
根据距离的不同,夏普传感器输出可达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 * 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,模块将自动暂停。
将输出添加到模块后,通过单击保存模块按钮。现在模块已准备好运行。您可以通过单击开始模块玩按钮。如果愿意,可以通过单击更改图表类型操作按钮,可以保存模块,可以下载测量的CSV格式。
设置/连接
Arduino IDE设置
使用Arduino IDE对loolin NodeMcu卡进行编程。将Arduino IDE引入到loin NodeMcu板的流程如下:
- 打开Arduino IDE
- 点击File -> preferences
- 单击其他电路板管理器URL旁边的按钮
- 粘贴地址http://arduino.esp8266.com/stable/package_esp8266com_index.json
- 进入打开的窗口并单击“确定”
- 点击工具 - > Board - > Boards Manager
- 在打开的窗口中找到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地址访问网站。
结论
使用此应用笔记中概述的技术,您可以远程控制GreenPak。这使得更容易使用GreenPak作为IOT和家庭自动化等应用中的传感器节点。亚博国际官网平台网址