DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

27 Sep 2018, 13:23

适用于各种应用的 Cypress PSoC 6 WiFi

“我想,如果你仅有的工具是一把锤子,那么把一切都当作钉子来对待会非常诱人。
Abraham H. Maslow,《迈向存在心理学》(1962)

“如果你只有一把锤子,一切看起来都像是钉子。”这句话通常被认为出自心理学家 Abraham Maslow(以“需求层次理论 (Hierarchy of Needs)”而著称),不过他改述的这句古老英国谚语实际上早已有之。除了提醒您在处理问题时质疑自己的确认偏差之外,这也是当您拿着最喜欢的单板机 (SBC) 开始新项目时,应该仔细考虑的一句话。这个 SBC 真的是适合您的工作的工具吗?

在许多情况下,SBC 是正确的选择:它们便宜且易于编程,允许您将部件快速连接在一起以试验一个想法。但是,如果您想要更永久的东西,或者甚至计划将项目商业化,该怎么办?

这也许是您应该考虑使用嵌入式微控制器开发板来构建概念验证的时候了。所有主要的硅制造商都有适用于其微控制器产品的开发板。这些开发套件都有非常广泛的用途且成本较低,因此板的选择通常取决于您有兴趣采用的任何特定技术(例如,您可能会觉得 Cypress Semiconductor 在电容式感应技术方面有优势),以及您对该板可用的开发环境的满意程度。如果您计划制造一个商业产品,那么在周围构建开发板的片上系统 (SoC) 的单位成本也将是一个考虑因素。

如果您想开始一个最适合嵌入式 SoC 设备的新项目,那么可以考虑作为开发板的一个套件便是 Cypress PSoC 6 WiFi Pioneer 套件 (175-4669)

.

Cypress PSoC 6 WiFi-BT Pioneer 套件

PSoC 6 设备是一款低功耗可编程嵌入式片上系统,直接面向开发物联网和可穿戴产品的人群。它具有一个 100 MHz 的 ARM Cortex CM0+,可用于保持极低功耗的运行,并在需要更高功率处理时唤醒更强大的 150 MHz ARM Cortex M4 协处理器。

对于 Pioneer 套件,PSoC 6 被置于一个开发板上,以便用户访问所有内部功能(使用板载 KitProg2 Programmer 硬件)和许多有用的外部功能,例如:

  • 用户 LED(当然可以!)
  • 电容式感应滑块、按钮和接近针座
  • 4 GHz WLAN 和蓝牙功能模块
  • 4 in. TFT 显示屏
  • 运动传感器
  • 环境光传感器
  • 32 位音频编解码器
  • PDM 麦克风
  • 兼容 Arduino 3.3 V 扩展版和 Digilent Pmods 的针座

该套件还包括一根用于供电和上传程序的 USB(A 型到 C 型)电缆,外加 4 个 4 in. 跳线和 2 个 5 in. 接近传感器线。

程序设计

在这一点上,对 MCU 编程的担忧通常会抑制人们的热情。会很困难吗?我需要了解复杂的 MCU 奥秘吗?

让我们直说吧,由于 PSoC 6 具有太多的功能,想要对它熟练编程可要费一番功夫;但是,如果您已经连接到您的 SBC 的 GPIO 引脚并获得有意义的结果,那么您就有足够的智慧掌握输入/输出和大多数 MCU 的主要功能。

您将需要掌握 PSoC Creator 集成开发环境 (IDE),如果您想使用 WiFi,还需要掌握基于 Eclipse 的 WICED Studio IDE。您还需要熟悉 C 程序设计语言,但不要只是畏缩不前:Cypress 提供大量视频教程、示例程序、支持,还有一个非常活跃的社区可以在那里提问。

第一步

然而,我们首先需要做的是将 PSoC 6 连接到我们的 WiFi。为了简化流程,我们的开发板预装了一个程序,将它设置为一个 WiFi 接入点,SSID 为“WICED Config”:

从 Windows PC 上单击任务栏上的 WiFi 连接图标(通常在电池图标和音量图标之间),然后选择名为“WICED Config”的连接。或者,在智能手机上查找:设置 -> WiFi,以选择“WICED Config”网络。密码是“12345678”。

连接后,您可以打开 Web 浏览器,并在地址栏中输入“http://192.168.0.1”。这将带您进入一个简单的页面,您可以在这里为您自己的网络中心选择并填写详细信息:

当板连接到您的网络时,它将启动 http 服务器,然后与时间服务器同步。TFT 屏幕将显示当前 PWM 占空比设置和光传感器的输出电压。使用 CapSense 滑块可以增加/减少 PWM 占空比,而使用 CapSense 按钮则可以改变 LED5 的亮度。

如果返回您曾经连接过 PSoC 6 Wi-Fi 热点的设备,那么可在浏览器栏中输入 TFT 屏幕上显示的地址(这次是在您自己的网络上),您将会得到一个整齐的小网页,为您提供时间、日期、光传感器电压和 PWM 占空比。

这个简单配置系统的伟大之处在于,您获得了源代码和一些额外的功能,例如 (CE222494),您可以轻松地启动并立即运行您自己的项目,同时也向您展示了如何读取传感器和 CapSense、如何写入 TFT 屏幕、如何以多种方式使用 Wi-Fi,以及需要做什么来将所有这些要素整合在一起。

示例

谈到示例软件,我们需要下载并安装 WICED Studio IDE,以便充分利用它。您需要使用的所有软件和文档都可以在 Cypress 网站上的这里找到。

WICED Studio 具有标准 Windows 安装程序(另外在“PSoC 6 WiFi-BT Pioneer 套件指南”pdf 文档中还有说明),因此我们不需要仔细查看安装步骤,而是要了解一下您可以使用的示例程序,以便轻松使用 WICED IDE。

在我们开始构建和加载第一个程序之前,有三个注意事项需要提及:

  1. 如果您使用 WICED Studio 6.1,您应该将此修复程序应用于 OpenOCD 实施过程中的已知问题。如果您使用的是更高版本(截至您阅读本文时),那么您可能不需要它。
  2. 确保将提供的 USB 电缆插入正确的 C 型 USB 连接器。两者都将为板供电,但您希望使用板右侧的 C 型 USB 连接器 (J10) 来编程,而不是标准 A 型 USB 连接器旁顶缘上的连接器 (J28)。
  3. 确保 LED2 关闭。如果它打开,您将处于“KitProg 模式”,这允许您使用 PSoC Programmer 软件对您的闪存等进行低级调试。但是,我们不希望在使用 WICED Studio 时进行此操作,因此按 SW3 将您的套件置于“CMSIS_DAP 模式”(我们想要的模式),从而关闭 LED2。

设置好后,我们可以开始按照 PSoC 6 WiFi-BT Pioneer 套件指南 中的说明进行第一个程序。

我们首先要做的是启动 WICED Studio,可以从 Windows 开始按钮找到该程序:开始 > 所有程序 > Cypress WICED-Studio

在“目标选择器”下拉菜单中,选择 43xxx_Wi-Fi

我们将构建一个“扫描”示例,该示例扫描 Wi-Fi 接入点并打印出通过 USB 端口找到的终端的列表。为了构建和运行此应用程序,我们需要构建一个生成文件来告诉编译器和链接器如何构建我们的应用程序,以及构建后该如何处理它。幸运的是,通过在“生成目标”窗口中添加“指令”行,这很容易就能完成。

我们首先提供的是目标路径:目标路径告诉编译器在哪里找到代码。WICED Studio 中的所有应用程序都需要位于 /apps 目录下,因此我们的目标路径将需要包括我们的应用程序所在的 /apps 目录下的所有子目录层次结构。我们想要使用的示例在 apps/snip/scan 中,生成文件使用点 (.) 作为分隔符。这意味着我们给出的位置为:

snip.scan

接下来,我们需要在连字符后提供平台名称,这样编译器就会知道我们正在为哪些微控制器编译代码:

snip.scan-CY8CKIT_062

之后,我们将告诉软件在构建应用程序后该如何处理它。对于“扫描”示例,我们希望将任何应用程序资源加载到闪存中,下载应用程序本身并重置 PSoC 6,以便它开始运行应用程序:

snip.scan-CY8CKIT_062 download_apps download run

这就是我们想要添加到“生成目标”窗口中的完整行。为此,我们在“生成目标”窗口中右键单击 43xxx_Wi-Fi,然后在出现的菜单中单击“新建…”:

随后,我们可以将已经构建的生成文件信息添加到“目标名称”字段中:

这些信息将被添加到现有生成文件列表中。在我们构建项目之前,最好双击(或右键单击并选择构建目标)“清洁的”生成目标。这基本上会刷新任何以前版本的中间阶段和输出,因此我们的构建可以从全新开始,从头开始编译和链接所有内容。

现在我们可以构建和加载我们的应用程序了。在“生成目标”列表中找到我们的 snip.scan-CY8CKIT_062 download_apps download run 目标,然后双击它(或右键单击并选择构建目标):

资源文件系统可能需要相当长的时间(几分钟)才能下载,所以它似乎长时间没有完成时不要担心。结束时应当会显示蓝色的“构建完成”消息,告诉我们一切顺利。太棒了!

要了解我们的 PSoC 6 正在输出什么,我们需要一个终端模拟器,例如 Tera TermPutty。我们需要知道模拟器连接到哪个“COM 端口”。我们可以通过使用 Windows 设备管理器来了解(在 Windows 10 中 Windows 按钮旁的搜索框中输入“设备管理器”来找到它)。查看 COM 端口列表并展开该条目:

 

好了,我们知道了我正在使用 COM5。我们可以将它输入到 Putty 设置中:

您需要确保已设置为运行串行通信会话。您也可以保存这些设置供以后使用:

 

如果点击“打开”,会得到以下信息:

我们的应用程序正在按计划运行,但是如果需要调试代码,我们可以构建一个“调试”版本。这是在不使用任何编译器优化的情况下构建的,它允许我们在代码中添加断点,可以在断点处停止执行并检查我们的变量是否符合我们在代码中该点的预期。此调试版本可以使用以下方法构建:

snip.scan-CY8CKIT_062-debug download_apps download

关于如何调试代码的说明可以在套件用户指南中找到。

结语

希望我能够向任何有自信使用 Arduino 或 Raspberry Pi 的用户展示,通用的微控制器和特定的 Cypress PSoC 6 Wi-Fi 并不是可怕的设备。对不可避免的学习曲线有一点耐心,您就可以开始在自己的项目中使用这些设备的强大资源。

Mark completed his Electronic Engineering degree in 1991 and went on to work in real-time digital signal processing applications engineering, later moving into technical marketing.

27 Sep 2018, 13:23