1.. zephyr:board:: cyw920829m2evk_02
2
3Overview
4********
5
6The AIROC™ CYW20829 Bluetooth® LE MCU Evaluation Kit (CYW920829M2EVK-02) with its included on-board peripherals enables evaluation, prototyping, and development of a wide array of Bluetooth® Low Energy applications, all on Infineon's low power, high performance AIROC™ CYW20829. The AIROC™ CYW20829's robust RF performance and 10 dBm TX output power without an external power amplifier (PA). This provides enough link budget for the entire spectrum of Bluetooth® LE use cases including industrial IoT applications, smart home, asset tracking, beacons and sensors, and medical devices.
7
8The system features Dual Arm® Cortex® - M33s for powering the MCU and Bluetooth subsystem with programmable and reconfigurable analog and digital blocks. In addition, on the kit, there is a suite of on-board peripherals including six-axis inertial measurement unit (IMU), thermistor, analog mic, user programmable buttons (2), LEDs (2), and RGB LED. There is also extensive GPIO support with extended headers and Arduino Uno R3 compatibility for third-party shields.
9
10Hardware
11********
12
13For more information about the CYW20829 SoC and CYW920829M2EVK-02 board:
14
15- `CYW20829 SoC Website`_
16- `CYW920829M2EVK-02 Board Website`_
17
18Kit Features:
19=============
20
21- AIROC™ CYW20829 Bluetooth® LE MCU in 56 pin QFN package
22- Arduino compatible headers for hardware expansion
23- On-board sensors - 6-axis IMU, Thermistor, Infineon analog microphone, and Infineon digital microphone
24- User switches, RGB LED and user LEDs
25- USB connector for power, programming and USB-UART bridge
26
27Kit Contents:
28=============
29
30- CYW20829 evaluation board (CYW9BTM2BASE3+CYW920829M2IPA2)
31- USB Type-A to Micro-B cable
32- Six jumper wires (five inches each)
33- Quick start guide
34
35
36Supported Features
37==================
38
39The board configuration supports the following hardware features:
40
41+-----------+------------+-----------------------+
42| Interface | Controller | Driver/Component      |
43+===========+============+=======================+
44| NVIC      | on-chip    | nested vectored       |
45|           |            | interrupt controller  |
46+-----------+------------+-----------------------+
47| SYSTICK   | on-chip    | system clock          |
48+-----------+------------+-----------------------+
49| GPIO      | on-chip    | GPIO                  |
50+-----------+------------+-----------------------+
51| UART      | on-chip    | serial port-polling;  |
52|           |            | serial port-interrupt |
53+-----------+------------+-----------------------+
54
55
56The default configuration can be found in the Kconfig
57
58:zephyr_file:`boards/infineon/cyw920829m2evk_02/cyw920829m2evk_02_defconfig`
59
60System Clock
61============
62
63The AIROC™ CYW20829 Bluetooth®  MCU SoC is configured to use the internal IMO+FLL as a source for
64the system clock. Other sources for the system clock are provided in the SOC, depending on your
65system requirements.
66
67Fetch Binary Blobs
68******************
69
70cyw920829m2evk_02 board requires fetch binary files (e.g Bluetooth controller firmware).
71
72To fetch Binary Blobs:
73
74.. code-block:: console
75
76   west blobs fetch hal_infineon
77
78Build blinking led sample
79*************************
80
81Here is an example for building the :zephyr:code-sample:`blinky` sample application.
82
83.. zephyr-app-commands::
84   :zephyr-app: samples/basic/blinky
85   :board: cyw920829m2evk_02
86   :goals: build
87
88Programming and Debugging
89*************************
90
91The CYW920829M2EVK-02 includes an onboard programmer/debugger (`KitProg3`_) to provide debugging, flash programming, and serial communication over USB. Flash and debug commands use OpenOCD and require a custom Infineon OpenOCD version, that supports KitProg3, to be installed.
92
93The CYW920829M2EVK-02 supports RTT via a SEGGER JLink device, under the target name cyw20829_tm. This can be enabled for an application by building with the rtt-console snippet or setting the following config values: CONFIG_UART_CONSOLE=n, CONFIG_RTT_CONSOLE=y, and CONFIG_USE_SEGGER_RTT=y.
94e.g. west build -p always -b cyw920829m2evk_02 samples/basic/blinky -S rtt-console
95
96As an additional note there is currently a discrepancy in RAM address between SEGGER and the CYW920829M2EVK-02 device. So, for RTT control block, do not use "Auto Detection". Instead, set the search range to something reflecting: RAM RangeStart at 0x20000000 and RAM RangeSize of 0x3d000.
97
98Infineon OpenOCD Installation
99=============================
100
101Both the full `ModusToolbox`_ and the `ModusToolbox Programming Tools`_ packages include Infineon OpenOCD. Installing either of these packages will also install Infineon OpenOCD. If neither package is installed, a minimal installation can be done by downloading the `Infineon OpenOCD`_ release for your system and manually extract the files to a location of your choice.
102
103.. note:: Linux requires device access rights to be set up for KitProg3. This is handled automatically by the ModusToolbox and ModusToolbox Programming Tools installations. When doing a minimal installation, this can be done manually by executing the script ``openocd/udev_rules/install_rules.sh``.
104
105West Commands
106=============
107
108The path to the installed Infineon OpenOCD executable must be available to the ``west`` tool commands. There are multiple ways of doing this. The example below uses a permanent CMake argument to set the CMake variable ``OPENOCD``.
109
110   .. tabs::
111      .. group-tab:: Windows
112
113         .. code-block:: shell
114
115            # Run west config once to set permanent CMake argument
116            west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd.exe
117
118            # Do a pristine build once after setting CMake argument
119            west build -b cyw920829m2evk_02 -p always samples/basic/blinky
120
121            west flash
122            west debug
123
124      .. group-tab:: Linux
125
126         .. code-block:: shell
127
128            # Run west config once to set permanent CMake argument
129            west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd
130
131            # Do a pristine build once after setting CMake argument
132            west build -b cyw920829m2evk_02 -p always samples/basic/blinky
133
134            west flash
135            west debug
136
137Once the gdb console starts after executing the west debug command, you may now set breakpoints and perform other standard GDB debugging on the CYW20829 CM33 core.
138
139.. _CYW20829 SoC Website:
140    https://www.infineon.com/cms/en/product/wireless-connectivity/airoc-bluetooth-le-bluetooth-multiprotocol/airoc-bluetooth-le/cyw20829/
141
142.. _CYW920829M2EVK-02 Board Website:
143    https://www.infineon.com/cms/en/product/evaluation-boards/cyw920829m2evk-02/
144
145.. _CYW920829M2EVK-02 BT User Guide:
146    https://www.infineon.com/cms/en/product/wireless-connectivity/airoc-bluetooth-le-bluetooth-multiprotocol/airoc-bluetooth-le/cyw20829/#!?fileId=8ac78c8c8929aa4d018a16f726c46b26
147
148.. _ModusToolbox:
149    https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolbox
150
151.. _ModusToolbox Programming Tools:
152    https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolboxprogtools
153
154.. _Infineon OpenOCD:
155    https://github.com/Infineon/openocd/releases/latest
156
157.. _KitProg3:
158    https://github.com/Infineon/KitProg3
159