294 lines
10 KiB
ReStructuredText
294 lines
10 KiB
ReStructuredText
.. _cy8ckit_062_ble:
|
|
|
|
PSoC63 BLE Pioneer Kit
|
|
######################
|
|
|
|
Overview
|
|
********
|
|
|
|
The PSoC 6 BLE Pioneer Kit (CY8CKIT-062-BLE) is a hardware platform that
|
|
enables design and debug of the Cypress PSoC 63 BLE MCU.
|
|
|
|
The PSoC 6 BLE Pioneer Kit features the PSoC 63 MCU: a dual-core MCU, with a
|
|
150-MHz Arm Cortex-M4 as the primary application processor and a 100-MHz Arm
|
|
Cortex-M0+ that supports low-power operations, 1MB of Flash, 288KB of SRAM,
|
|
an integrated BLE 4.2 radio, 78 GPIO, 7 programmable analog blocks, 12
|
|
programmable digital blocks, and capacitive-sensing with CapSense.
|
|
|
|
The PSoC 6 BLE Pioneer board offers compatibility with Arduino shields, a
|
|
512-Mb NOR flash, onboard programmer/debugger (KitProg2), USB Type-C power
|
|
delivery system (EZ-PD™ CCG3), 5-segment CapSense slider, two CapSense
|
|
buttons, one CapSense proximity sensing header, an RGB LED, two user LEDs,
|
|
and one push button.
|
|
|
|
The CY8CKIT-062-BLE package includes a CY8CKIT-028-EPD E-INK Display Shield
|
|
that contains a 2.7-inch E-INK display, a motion sensor, a thermistor, and a
|
|
PDM microphone. The kit package also contains a CY5677 CySmart BLE 4.2 USB
|
|
Dongle that is factory-programmed to emulate a BLE GAP Central device,
|
|
enabling you to emulate a BLE host on your computer.
|
|
|
|
The Cortex-M0+ is a primary core on the board's SoC. It starts first and
|
|
enables the CM4 core.
|
|
|
|
.. image:: img/cy8ckit-062-ble.jpg
|
|
:align: center
|
|
:alt: CY8CKIT_062_BLE
|
|
|
|
1. Battery charging indicator (LED6)
|
|
2. USB PD output voltage availability indicator (LED7)
|
|
3. KitProg2 USB Type-C connector (J10)
|
|
4. Cypress EZ-PD™ CCG3 Type-C Port Controller with PD (CYPD3125-40LQXI, U3)
|
|
5. KitProg2 programming mode selection button (SW3)
|
|
6. KitProg2 I/O header (J6)1
|
|
7. KitProg2 programming/custom application header (J7)1
|
|
8. External power supply connector (J9)
|
|
9. PSoC 6 BLE user button (SW2)
|
|
10. KitProg2 application selection button (SW4)
|
|
11. Digilent® Pmod™ compatible I/O header (J14)1
|
|
12. Power LED (LED4)
|
|
13. KitProg2 status LEDs (LED1, LED2, and LED3)
|
|
14. PSoC 6 reset button (SW1)
|
|
15. PSoC 6 I/O header (J18, J19 and J20)
|
|
16. Arduino™ Uno R3 compatible power header (J1)
|
|
17. PSoC 6 debug and trace header (J12)
|
|
18. Arduino Uno R3 compatible PSoC 6 I/O header (J2, J3 and J4)
|
|
19. PSoC 6 program and debug header (J11)
|
|
20. KitProg2 programming target selection switch (SW6)
|
|
21. CapSense slider and buttons
|
|
22. CapSense proximity header (J13)
|
|
23. PSoC 6 BLE VDD selection switch (SW5)
|
|
24. PSoC 6 BLE power monitoring jumper (J8)2
|
|
25. Arduino Uno R3 compatible ICSP header (J5)1
|
|
26. PSoC 6 user LEDs (LED8 and LED9)
|
|
27. RGB LED (LED5)
|
|
28. Cypress 512-Mbit serial NOR Flash memory (S25FL512S, U4)
|
|
29. Cypress serial Ferroelectric RAM (U5)1
|
|
30. VBACKUP and PMIC control selection switch (SW7)2
|
|
31. Cypress PSoC 6 BLE (CY8C6347BZI-BLD53, U1)
|
|
32. BLE Antenna
|
|
33. U.FL connector for external antenna (J17)1
|
|
34. Cypress main voltage regulator (MB39C022G, U6)
|
|
35. KitProg2 (PSoC 5LP) programmer and debugger(CY8C5868LTI-LP039, U2)
|
|
36. Battery connector (J15)1,2
|
|
37. USB PD output voltage (9V/12V) connector (J16)
|
|
|
|
Hardware
|
|
********
|
|
|
|
For more information about the PSoC 63 BLE MCU SoC and CY8CKIT-062-BLE board:
|
|
|
|
- `PSoC 63 BLE MCU SoC Website`_
|
|
- `PSoC 63 BLE MCU Datasheet`_
|
|
- `PSoC 63 BLE MCU Architecture Reference Manual`_
|
|
- `PSoC 63 BLE MCU Register Reference Manual`_
|
|
- `CY8CKIT-062-BLE Website`_
|
|
- `CY8CKIT-062-BLE User Guide`_
|
|
- `CY8CKIT-062-BLE Schematics`_
|
|
|
|
Supported Features
|
|
==================
|
|
|
|
The board configuration supports the following hardware features:
|
|
|
|
+-----------+------------+-----------------------+
|
|
| Interface | Controller | Driver/Component |
|
|
+===========+============+=======================+
|
|
| NVIC | on-chip | nested vectored |
|
|
| | | interrupt controller |
|
|
+-----------+------------+-----------------------+
|
|
| SYSTICK | on-chip | system clock |
|
|
+-----------+------------+-----------------------+
|
|
| GPIO | on-chip | gpio |
|
|
+-----------+------------+-----------------------+
|
|
| PINCTRL | on-chip | pin control |
|
|
+-----------+------------+-----------------------+
|
|
| SPI | on-chip | spi |
|
|
+-----------+------------+-----------------------+
|
|
| UART | on-chip | serial port-polling; |
|
|
| | | serial port-interrupt |
|
|
+-----------+------------+-----------------------+
|
|
|
|
|
|
The default configurations can be found in the Kconfig
|
|
:zephyr_file:`boards/arm/cy8ckit_062_ble/cy8ckit_062_ble_m0_defconfig` for
|
|
Cortex-M0+ and on the Kconfig
|
|
:zephyr_file:`boards/arm/cy8ckit_062_ble/cy8ckit_062_ble_m4_defconfig` for
|
|
Cortex-M4
|
|
|
|
System Clock
|
|
============
|
|
|
|
The PSoC 63 BLE MCU SoC is configured to use the internal IMO+FLL as a source for
|
|
the system clock. CM0+ works at 50MHz, CM4 - at 100MHz. Other sources for the
|
|
system clock are provided in the SOC, depending on your system requirements.
|
|
|
|
Serial Port
|
|
===========
|
|
|
|
The PSoC 63 BLE MCU SoC has 8 SCB blocks and each one can be configured as
|
|
UART/SPI/I2C interfaces for serial communication. At the moment UART5 on SCB5
|
|
and UART6 on SCB6 are configured. SCB5 is connected to the onboard KitProg2's
|
|
USB-UART Bridge working as a serial console interface. SCB6 to P13_0, P13_1
|
|
pins on the J3 of the Arduino Uno R3 compatible PSoC6 I/O header for general
|
|
purposes.
|
|
|
|
Programming and Debugging
|
|
*************************
|
|
|
|
The CY8CKIT-062-BLE includes an onboard programmer/debugger (KitProg2) with
|
|
mass storage programming to provide debugging, flash programming, and serial
|
|
communication over USB. There are also PSoC 6 program and debug headers J11
|
|
and J12 that can be used with Segger J-Link [default].
|
|
A watchdog timer is enabled by default. To disable it call Cy_WDT_Unlock() and
|
|
Cy_WDT_Disable().
|
|
|
|
#. Build the Zephyr kernel and the :ref:`hello_world` sample application:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/hello_world
|
|
:board: cy8ckit_062_ble_m0
|
|
:goals: build
|
|
:compact:
|
|
|
|
#. Run your favorite terminal program to listen for output. Under Linux the
|
|
terminal should be :code:`/dev/ttyACM0`. For example:
|
|
|
|
.. code-block:: console
|
|
|
|
$ minicom -D /dev/ttyACM0 -o
|
|
|
|
The -o option tells minicom not to send the modem initialization
|
|
string. Connection should be configured as follows:
|
|
|
|
- Speed: 115200
|
|
- Data: 8 bits
|
|
- Parity: None
|
|
- Stop bits: 1
|
|
|
|
#. To flash an image:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/hello_world
|
|
:board: cy8ckit_062_ble_m0
|
|
:goals: flash
|
|
:compact:
|
|
|
|
You should see "Hello World! cy8ckit_062_ble_m0" in your terminal.
|
|
|
|
Running on Dual Core
|
|
********************
|
|
|
|
#. Build the Zephyr kernel and the :ref:`button-sample` sample application:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/basic/button
|
|
:board: cy8ckit_062_ble_m4
|
|
:goals: build
|
|
:compact:
|
|
|
|
#. If you have a USB-Serial adapter, you can connect SBC[UART]-6 on Arduino
|
|
header. Schematic should be checked for connections. Run your favorite
|
|
terminal program again now listen for another output. Under Linux the
|
|
terminal should be :code:`/dev/ttyUSB0`. For example:
|
|
|
|
.. code-block:: console
|
|
|
|
$ minicom -D /dev/ttyUSB0 -o
|
|
|
|
The -o option tells minicom not to send the modem initialization
|
|
string. Connection should be configured as follows:
|
|
|
|
- Speed: 115200
|
|
- Data: 8 bits
|
|
- Parity: None
|
|
- Stop bits: 1
|
|
|
|
#. To flash an image:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/basic/button
|
|
:board: cy8ckit_062_ble_m4
|
|
:goals: flash
|
|
:compact:
|
|
|
|
#. Configure Cortex-M0+ to enable Cortex-M4:
|
|
|
|
The last step flash the M4 image on the flash. However, Cortex-M0 by default
|
|
doesn't start the M4 and nothing will happen. To enable Cortex-M4 CPU,
|
|
repeat the steps on programming and debug and add the following parameter
|
|
when performing the build process.
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/hello_world
|
|
:board: cy8ckit_062_ble_m0
|
|
:goals: build flash
|
|
:gen-args: -DCONFIG_SOC_PSOC6_M0_ENABLES_M4=y
|
|
:compact:
|
|
|
|
Now you can press button SW-2 and see LED-9 blink at same time you have the
|
|
"Hello World! cy8ckit_062_ble_m0" in the your terminal.
|
|
|
|
Board Revision
|
|
**************
|
|
|
|
The CY8CKIT-062-BLE KitProg2 shares connections with Arduino-R3 header. This
|
|
connections may not allow the correct use of shields. The default board
|
|
revision (0.0.0) allows use of default connections. The use of Arduino headers
|
|
are only possible after rework the board and using the revision 1.0.0.
|
|
|
|
#. Build the Zephyr kernel and the :ref:`hello_world` sample application for
|
|
board revision 1.0.0:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/hello_world
|
|
:board: cy8ckit_062_ble_m0@1.0.0
|
|
:goals: build
|
|
:compact:
|
|
|
|
#. The differences from version 0.0.0 to 1.0.0:
|
|
|
|
+-------------+------------+------------+
|
|
| Connection | 0.0.0 | 1.0.0 |
|
|
+=============+============+============+
|
|
| CDC-COM RX | P5_0 | P9_0 |
|
|
+-------------+------------+------------+
|
|
| CDC-COM TX | P5_1 | P9_1 |
|
|
+-------------+------------+------------+
|
|
| R77 | X | |
|
|
+-------------+------------+------------+
|
|
| R78 | | X |
|
|
+-------------+------------+------------+
|
|
|
|
|
|
The P9 pins are available at J2. Those signals should be routed to J6.
|
|
|
|
J2-2 to J6-14
|
|
J2-4 to J6-13
|
|
|
|
The most complex part is short circuit pins 14 and 15 from U13. That connect
|
|
UART_RTS with UART_CTS from KitProg2.
|
|
|
|
References
|
|
**********
|
|
|
|
.. _PSoC 63 BLE MCU SoC Website:
|
|
https://www.cypress.com/products/32-bit-arm-cortex-m4-cortex-m0-psoc-63-connectivity-line
|
|
|
|
.. _PSoC 63 BLE MCU Datasheet:
|
|
https://www.cypress.com/documentation/datasheets/psoc-6-mcu-psoc-63-ble-datasheet-programmable-system-chip-psoc
|
|
|
|
.. _PSoC 63 BLE MCU Architecture Reference Manual:
|
|
https://www.cypress.com/documentation/technical-reference-manuals/psoc-6-mcu-psoc-63-ble-architecture-technical-reference
|
|
|
|
.. _PSoC 63 BLE MCU Register Reference Manual:
|
|
https://www.cypress.com/documentation/technical-reference-manuals/psoc-6-mcu-cy8c63x6-cy8c63x7-cy8c63x6-cy8c63x7-registers
|
|
|
|
.. _CY8CKIT-062-BLE Website:
|
|
https://www.cypress.com/documentation/development-kitsboards/psoc-6-ble-pioneer-kit-cy8ckit-062-ble
|
|
|
|
.. _CY8CKIT-062-BLE User Guide:
|
|
https://www.cypress.com/file/390496/download
|
|
|
|
.. _CY8CKIT-062-BLE Schematics:
|
|
https://www.cypress.com/file/417021/download
|