参考文献
有关文件及软件,请浏览:
//www.xmece.com/亚博电竞菠菜products/greenpak
下载我们的免费GreenPAK设计软件[1],打开。gp文件[2],并使用GreenPAK开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。
yabo国际娱乐Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和模块的说明。
- GreenPAK设计软件,软件下载和用户指南,Dialog Semiconductoryabo国际娱乐
- AN-1161 A GreenPAK™无线莫尔斯码键盘。gp,绿派克设计文件,Dialog半导体yabo国际娱乐
- GreenPAK开发工具, GreenPAK开发工具网页,Dialog半导体yabo国际娱乐
- GreenPAK应用笔记,绿派克应用笔记网页,对话半导体yabo国际娱乐
- SLG46537对话框数据表,半导体yabo国际娱乐
介绍
本应用笔记将讨论一个一键蓝牙键盘,以摩尔斯电码的形式输入。莫尔斯电码是一种只用短间隔和长间隔发送信息的方案,分别被称为点和划。通过这种方式,用户可以只用一个输入输入任何字母数字字符。参见图1以获得莫尔斯电码参考。
GreenPAK SLG46537V[5]将被用来将莫尔斯电码输入转换成一个字节的数据。然后,该字节将使用外部蓝牙模块(具体地说,是Rigado bmd - 300),以在简单的电脑应用程式中显示为适当的字符。
外部组件
该应用程序所需的外部组件包括一个莫尔斯电码输入按钮和一个蓝牙模块,用于将GreenPAK的数据发送到计算机应用程序。
- 按钮:本应用笔记使用E-Switch KS-01Q-02 (Digi-Key EG4792-ND)通孔按钮开关,尽管任何瞬间启动按钮就足够了。
- 蓝牙:此应用选择的蓝牙模块是Rigado BMD-300 (1604 - 1006 - 1 nd Digi-Key).虽然单个蓝牙模块的售价为11.71美元(撰写本文时),但批量订购时价格有显著的折扣,这使该模块成为一个有吸引力的低成本蓝牙选项。
对于本应用说明,BMD-300评估委员会(Digi-Key 1604 - 1007)用于简化原型。
实现与GreenPAK设计师
将GreenPAK配置为莫尔斯电码键盘的第一步是设计一种方法,将莫尔斯电码输入(点和破折号)编码成二进制数据。为了从每个莫尔斯电码输入产生一个唯一的数据字节,我们将使用以下方案:
使用这个方案,我们可以创建一个完整的转换表(表1)。
字符 |
字节 |
字符 |
字节 |
一个 |
10000010 |
年代 |
00000011 |
B |
00010100 |
T |
10000001 |
C |
01010100 |
U |
10000011 |
D |
00100011 |
V |
10000100 |
E |
00000001 |
W |
11000011 |
F |
01000100 |
X |
10010100 |
G |
01100011 |
Y |
11010100 |
H |
00000100 |
Z |
00110100 |
我 |
00000010 |
0 |
11111000 |
J |
11100100 |
1 |
11110000 |
K |
10100011 |
2 |
11100000 |
l |
00100100 |
3. |
11000000 |
米 |
11000010 |
4 |
10000000 |
N |
01000010 |
5 |
00000000 |
O |
11100011 |
6 |
00001000 |
P |
01100100 |
7 |
00011000 |
问 |
10110100 |
8 |
00111000 |
R |
01000011 |
9 |
01111000 |
有了这个方案,我们可以继续用状态图来描述GreenPAK的功能。
图3显示了在GreenPAK设计器的异步状态机(ASM)编辑器中配置的该图。
图4给出了在GreenPAK Designer中配置的连接的概述,并突出显示了该设计中使用的各种功能组:计数器、寄存器、按钮输入、ASM和数据输出。我们将依次介绍这些组。
异步状态机
我们将从更详细地描述ASM开始。在GreenPAK的ASM中有8种状态可用,每一种状态都有8个输出,可以接收多达3个输入。输入控制状态转换,输出控制在每个状态中要采取的动作。输入和输出都可以在ASM编辑器中配置。
图5显示了主GreenPAK Designer工作区中的状态、状态转换和状态输出。这允许我们可视化状态转换将在什么时候发生(当输入变高时),以及ASM将采取的下一个状态(连接到已经变高的输入的状态)。我们还可以可视化输出连接的块,它们对应于在每个状态中将要采取的动作。表2描述了每种状态下应该发生什么操作。
可以使用ASM Editor中的ASM的RAM表轻松地配置状态输出(如图6所示)。RAM表已经被配置为八个可能的输出中的五个控制每个状态中的必要操作。这些输出如表3所示,并在图6中显示。
状态 |
行动(s) |
闲置 |
N/A |
点/冲数 |
|
点 |
|
破折号 |
|
字符数 |
|
单词计数/字符结束 |
|
词继续 |
|
词在 |
|
输出的名字 |
描述 |
ClkReset |
启动计时器所需的输出。当这个值从HIGH切换到LOW或反之,将产生重启计数器的脉冲。 |
DotOrDash |
分别根据点或破折号状态写入0或1。 |
RegisterClk |
当这个值从LOW切换到HIGH时,产生一个时钟脉冲来推进寄存器。输出连接在工作区中被标记为“GenerateRegisterPulse”。 |
RegisterReset |
当低电平时,重置寄存器中的dff。输出连接在工作区中被标记为“RegReset”。 |
ReadRegisterData |
当为HIGH时,提示蓝牙模块读取寄存器数据。输出连接在工作区中被标记为“Read”。 |
计数器
现在我们将讨论图7中所示的块的用途和配置。首先,计时摩斯电码的单位,我们将使用GreenPAK的计数器方块在计数器模式。根据图3所示的状态图,我们需要一个计数器来计时三个单位,另一个计数器来计时四个单位。3t计数器的配置如图8所示。
在这个应用程序中使用了两个额外的计数器块,它们都被配置为生成一次脉冲。这个脉冲可以作为前一个计数器块的复位,或者作为一种提高寄存器的方法。这两个一次性计数器都是通过表3中描述的ASM输出来控制的。
|
|
|
|
寄存器
为了跟踪用户输入的点和破折号,我们将使用D Flip Flops (DFFs)创建两个单独的寄存器。第一个寄存器将由5个DFFs组成,并记录用户输入的序列。第二个寄存器将由三个dff组成,并将计算用户输入的数量。综上所述,寄存器将主动创建如图2所示的莫尔斯电码数据字节。
点/破折号寄存器由5个dff组成。DFF 5的DotOrDash输入与ASM输出设置。ASM输出还控制RegReset(直接)和RegisterClk(间接地,通过一次性计数器)输入。
要创建计数寄存器,需要使用三个查找表(lut)来设置要记录的下一个二进制值。
这样,每次RegisterClk推进寄存器时,相应的值就存储在DFFs中。
|
|
|
此外,由于我们可以设计每个LUT只需要两个输入,第三个输入可以设置为RegReset——这让我们可以解决点/破折号寄存器中使用的只有5个dff具有直接复位输入的事实。LUT配置如图11所示。
按钮
我们将使用PIN 3作为数字输入来记录用户按下的按钮。此外,我们将使用另一个LUT(配置为逆变器)作为确定按钮何时被释放的方法。最后一个LUT将被配置为AND门,以确定何时两个按钮都被按下,并且3t计时器已经到达。
输出
寄存器数据通过输出引脚12-16(点/破折号)和引脚5-7(点/破折号总数)直接传递到蓝牙模块。这个数据只有在PIN 17上的Read信号是高的时候才被传递。
示例实现
我们可以使用面包板、GreenPAK开发板和蓝牙模块的评估板(上面在外部组件中讨论过)轻松地对这个项目进行原型化。原型使用一个按钮莫尔斯电码输入和另一个作为复位到ASM(可选)。这些输入从面包板获取到GreenPAK开发板,输出从GreenPAK开发板获取到蓝牙模块的GPIO引脚。
使用此设置,应该配置GreenPAK Designer模拟窗口,如图15所示。
下一步是配置蓝牙模块以发送莫尔斯码数据。此过程的完整步骤超出了本应用说明的范围;但是,完整的文档(参见在这里和在这里)是为BMD-300蓝牙模块提供的,读者应该选择使用它,如果构建这个项目。
我们可以通过使用输入按钮来输入莫尔斯电码的字符来测试原型。图17显示了这个测试的结果,使用一个简单的计算机程序(附源代码)查找数据字节和适当字符之间的关系。
以同样的方式,我们可以测试表1中给出的任何其他字符。现在,计算机程序已经被改变,允许连续输入文本(它将不显示二进制数据)。
通过使用外部电源,我们可以测试原型的电流消耗。当前的消耗取决于它的状态。其范围见表4:
的原型 |
当前的 |
ASM处于空闲状态 |
36µ |
按钮被按下 |
3.3马 |
扩展
这个键盘有很多潜在的应用,比如智能电视文本输入的替代(代替屏幕上笨拙的键盘导航)亚博国际官网平台网址,或者作为有缺陷的键盘输入的工具(因为它非常简单)。这两种可能性都可以利用相同的硬件,同时以不同的方式使用数据。然而,两家公司也可以扩展硬件,以利用增强或修改莫尔斯电码。
结论
在这篇应用笔记中,我们构建了一个低成本的无线键盘,它以莫尔斯电码的形式接受用户输入。我们使用GreenPAK SLG46537V IC将用户输入的数据转换成定制的二进制格式,然后通过蓝牙模块通过简单的计算机程序进行翻译。希望这个项目展示了GreenPAK设计的多功能性和易用性。