Cypress Logo Cypress Mbed OS Documentation
 
Getting Started with PSoC 6 MCU and CYW43xxx in Mbed OS

This article helps you get started on using PSoC 6 MCU and the CYW43xxx WLAN/Bluetooth combo device for developing applications in Mbed OS. Mbed OS is an open-source operating system for platforms using Arm® Cortex®-M CPU-based MCUs and connectivity devices (WiFi, BT/BLE) designed specifically for Internet of Things (IoT) devices: low-powered devices that need to connect to the internet. See the Mbed OS website for an overview of Mbed OS:  https://os.mbed.com/docs/.

This article is organized in to the following categories:

1.  PSoC 6 MCU and CYW43xxx (CYW43012, CYW4343W) Devices Overview

1.1   PSoC 6 MCU

PSoC 6 MCU bridges the gap between expensive, power-hungry application processors and low‑performance microcontrollers (MCUs). The ultra‑low‑power PSoC 6 MCU architecture offers the processing performance needed by IoT devices, eliminating the tradeoffs between power and performance. The PSoC 6 MCU contains a dual‑CPU architecture, with both CPUs on a single chip. It has an Arm Cortex‑M4 CPU for high‑performance application tasks, and an Arm Cortex‑M0+ as a secure CPU with security built-in so that your IoT system is protected.

See the Cypress PSoC 6 MCU webpage for more information including the device datasheet and application notes, and development and design resources.

1.2   CYW43012

Cypress CYW43012 is a 28-nm, ultra-low-power device that supports single-stream, dual-band IEEE 802.11n-compliant Wi-Fi MAC/baseband/radio and Bluetooth 5.0 BR/EDR/LE. The WLAN section supports SDIO interface to the host MCU (PSoC 6 MCU), and the Bluetooth section supports high-speed 4-wire UART interface to the host MCU. 

1.3   CYW4343W

Cypress CYW4343W is a highly integrated device that offers the lowest BOM in the industry for integrated WLAN/BT IoT applications. The chip includes a 2.4-GHz WLAN IEEE 802.11 b/g/n MAC/baseband/radio, and Bluetooth 4.2 BR/EDR/LE support. The WLAN section supports the SDIO interface to the host MCU (PSoC 6 MCU), and the Bluetooth section supports high-speed 4-wire UART interface to the host MCU.

2.  Getting Started with Mbed OS Applications

2.1   Step 1 – Select a Development Kit Platform

Cypress provides various development kits with Mbed OS support, featuring PSoC 6 MCU, Bluetooth, and WLAN functionality in Mbed OS. Select a kit shown in the following table that is appropriate for your application's needs. 

Kit Name

PSoC 6 MCU

Radio Module

WLAN

BT/BLE1

Arduino /PMOD Headers

Other Features2

PSoC 6 BLE Pioneer Kit

PSoC 63 MCU with BLE Connectivity

Bluetooth radio integrated with MCU

No

BT 5.0 (BLE)3

Yes/Yes

QSPI NOR Flash, CapSense® Slider/Buttons, CY8CKIT-028-EPD shield board with E-INK display, Temperature sensor, motion sensor, PDM mic

PSoC 6 WiFi-BT Pioneer Kit 

PSoC 62 MCU with 1 MB Flash and 288 KB SRAM

Murata Type 1DX module based on CYW4343W

802.11 b/g/n (Only 2.4 GHz)

BT 4.2 (BR, EDR, LE)

Yes/Yes

QSPI NOR Flash, CapSense Slider/Buttons, CY8CKIT-028-TFT shield board with TFT display, Ambient light sensor, motion sensor, and PDM mic

PSoC 6 Wi-Fi BT Prototyping Kit

PSoC 62 MCU with 2 MB Flash and 1 MB SRAM

Murata Type 1DX module based on CYW4343W

802.11 b/g/n (Only 2.4 GHz)

BT 4.2 (BR, EDR, LE)

No/Yes

QSPI NOR Flash, CapSense Slider/Buttons, micro SD card socket, FS-USB (Host/Device)

1 - Mbed OS supports only BLE functionality, and does not support Classic Bluetooth – even though the Cypress Wi‑Fi/BT combo devices support both Classic Bluetooth and BLE.

2 - All the development boards have an onboard Programmer and Debugger.

3 - CY8CKIT-062-BLE does not support BLE functionality in Mbed OS. Use the PSoC 6 SDK in ModusToolbox™ if you want to evaluate BLE functionality using this kit.

2.2   Step 2 – LED Blinky Example

The Mbed OS landing page for each development kit, provided in the table below, contains details on hardware/software prerequisites and the steps required to get started with a simple LED blinky example in Mbed OS. Follow the steps in the kit landing page to ensure you have a working hardware/software setup to develop applications in Mbed OS.

Kit Name

Mbed Landing Page

PSoC 6 BLE Pioneer Kit

CY8CKIT-062-BLE

PSoC 6 WiFi-BT Pioneer Kit 

CY8CKIT-062-WiFi-BT

PSoC 6 Wi-Fi BT Prototyping Kit

CY8CPROTO-062-4343W

2.3   Step 3 – Explore More Code Examples

2.3.1   Mbed OS Examples from Cypress

Cypress provides various code examples for Mbed OS demonstrating the functionality unique to the Cypress MCU and radio devices, as shown in the table below. You can use them as reference to learn about specific topics and reuse the code as applicable for your end application. For up-to-date information on the latest code examples, visit the Cypress GitHub repository at https://github.com/cypresssemiconductorco/?q=mbed-os-example.

Code Example

Repository Link

Brief Description

Wi-Fi Code Examples

WiFi Provisioning via BLE

mbed-os-example-wifi-provisioning-via-ble

Demonstrates how to connect a kit to Wi-Fi by provisioning the Wi-Fi credentials via BLE

HTTP Server

mbed-os-example-http-server

Connects to a Wi-Fi network as a STA (client), starts a secure (or non-secure) web server, and waits for requests.

AWS Greengrass

mbed-os-example-aws-greengrass

Code examples for AWS Greengrass: publisher and subscriber.

AWS IoT Client

mbed-os-example-aws-iot-client

Code examples for AWS IoT client: publisher and subscriber.

CapSense Code Examples

Capsense Buttons and Slider

mbed-os-example-capsense

Demonstrates implementing CapSense buttons and slider for PSoC 6 MCU with Mbed OS

CSD ADC

mbed-os-example-csdadc

Demonstrates the usage of CSD analog-to-digital converter (ADC) for PSoC 6 MCU with Mbed OS using the CSDADC Middleware Library

CSD IDAC

mbed-os-example-csdidac

Demonstrates the usage of the CSD current digital-to-analog converter (IDAC) as a current source and a current sink

External Memory-based Examples

QSPI XIP

mbed-os-example-xip

Demonstrates the Execute-In-Place (XIP) feature of PSoC 6 MCU using external serial memory

Graphics/Display-based Examples

EmWin OLED

mbed-os-example-emwin-oled

Demonstrates how to display graphics on an OLED display using emWin graphics library in Mbed OS

EmWin EInk Display

mbed-os-example-emwin-eink

Demonstrates displaying graphics on an E-INK display using EmWin graphics library in Mbed OS

2.3.2   Mbed OS Examples from Arm Mbed

You can also reuse several code examples provided by Arm Mbed. Some of the important examples from Arm Mbed are listed in the table below. Visit the Arm Mbed GitHub repo at https://github.com/ARMmbed/?q=mbed-os-example to see the examples available for Mbed OS.

Code Example

Repository Link

Brief Description

Wi-Fi Code Examples

Mbed OS WiFi

mbed-os-example-wifi

Example Wi-Fi application using the Wi-Fi APIs that Mbed OS provides

Bluetooth Low Energy (BLE) Code Examples

Mbed OS BLE Examples

mbed-os-example-ble

This repo contains a collection of BLE example applications based on Mbed OS

MCU/Peripheral Code Examples

Mbed OS Blinky

mbed-os-example-blinky

Basic LED Blinky example for Mbed OS

3.  ModusToolbox and Mbed OS

ModusToolbox is a set of tools and software, distributed in Software Development Kits (SDK), that enable an immersive development experience for customers creating converged MCU and Wireless systems. To achieve this goal, ModusToolbox leverages popular third-party ecosystems, such as Arm Mbed, and adds the Cypress-specific features for Wi-Fi, Bluetooth, CapSense, security, industry-leading low power and rapid peripheral configuration in easy to use form.

SDKs include all the device and board firmware along with the RTOS, stacks and middleware needed for applications running on PSoC 6 MCUs, PSoC 6 MCU coupled with Wi-Fi/Bluetooth combo devices, and Bluetooth SoCs. Tools such as ModusToolbox IDE, an Eclipse-based Integrated Development Environment (IDE) optimized for Cypress devices, and intuitive graphical configurators enable an IoT designer to develop innovative IoT applications efficiently and with ease.

You can download ModusToolbox software from https://www.cypress.com/products/modustoolbox-software-environment. After installing the software, refer to the Quick Start Guide and User Guide in ModusToolbox IDE to get an overview of the software and get started.

3.1   Exporting Mbed OS Projects to ModusToolbox IDE

ModusToolbox IDE can be used to import, build, program, and debug Mbed OS applications. The information on how to do these is provided in the chapter "Mbed OS to ModusToolbox Flow" in the ModusToolbox IDE User Guide. This document can be accessed from the ModusToolbox IDE from Help > ModusToolbox IDE Documentation > User Guide. The user guide is also available on web in the "Documentation" tab at https://www.cypress.com/products/modustoolbox-software-environment.

4.  Technical Resources