1.. zephyr:board:: cy8cproto_062_4343w
2
3Overview
4********
5
6The CY8CPROTO-062-4343W PSOC 6 Wi-Fi BT Prototyping Kit is a low-cost hardware
7platform that enables design and debug of PSOC 6 MCUs. It comes with a Murata
8LBEE5KL1DX module, based on the CYW4343W combo device, industry-leading CAPSENSE
9for touch buttons and slider, on-board debugger/programmer with KitProg3, microSD
10card interface, 512-Mb Quad-SPI NOR flash, PDM-PCM microphone, and a thermistor.
11
12This kit is designed with a snap-away form-factor, allowing the user to separate
13the different components and features that come with this kit and use independently.
14In addition, support for Digilent's Pmod interface is also provided with this kit.
15
16Hardware
17********
18
19For more information about the PSOC 62 MCU SoC and CY8CPROTO-062-4343W board:
20
21- `PSOC 62 MCU SoC Website`_
22- `PSOC 62 MCU Datasheet`_
23- `PSOC 62 MCU Architecture Reference Manual`_
24- `PSOC 62 MCU Register Reference Manual`_
25- `CY8CPROTO-062-4343W PSOC 6 Wi-Fi BT Website`_
26- `CY8CPROTO-062-4343W PSOC 6 Wi-Fi BT User Guide`_
27- `CY8CPROTO-062-4343W PSOC 6 Wi-Fi BT Schematics`_
28
29Kit Features:
30=============
31
32- Support of up to 2MB Flash and 1MB SRAM
33- Dedicated SDHC to interface with WICED wireless devices.
34- Delivers dual-cores, with a 150-MHz Arm Cortex-M4 as the primary
35  application processor and a 100-MHz Arm Cortex-M0+ as the secondary
36  processor for low-power operations.
37- Supports Full-Speed USB, capacitive-sensing with CAPSENSE, a PDM-PCM
38  digital microphone interface, a Quad-SPI interface, 13 serial communication
39  blocks, 7 programmable analog blocks, and 56 programmable digital blocks.
40
41Kit Contents:
42=============
43
44- PSOC 6 Wi-Fi BT Prototyping Board
45- USB Type-A to Micro-B cable
46- Quick start guide
47
48
49Supported Features
50==================
51
52The board configuration supports the following hardware features:
53
54+-----------+------------+-----------------------+
55| Interface | Controller | Driver/Component      |
56+===========+============+=======================+
57| NVIC      | on-chip    | nested vectored       |
58|           |            | interrupt controller  |
59+-----------+------------+-----------------------+
60| SYSTICK   | on-chip    | system clock          |
61+-----------+------------+-----------------------+
62| GPIO      | on-chip    | GPIO                  |
63+-----------+------------+-----------------------+
64| UART      | on-chip    | serial port-polling;  |
65|           |            | serial port-interrupt |
66+-----------+------------+-----------------------+
67
68
69The default configuration can be found in the Kconfig
70
71:zephyr_file:`boards/infineon/cy8cproto_062_4343w/cy8cproto_062_4343w_defconfig`
72
73
74System Clock
75============
76
77The PSOC 62 MCU SoC is configured to use the internal IMO+FLL as a source for
78the system clock. CM0+ works at 50MHz, CM4 - at 100MHz. Other sources for the
79system clock are provided in the SOC, depending on your system requirements.
80
81
82Fetch Binary Blobs
83******************
84
85cy8cproto_062_4343w board optionally uses binary blobs for features
86(e.g WIFI/Bluetooth chip firmware, CM0p prebuilt images, etc).
87
88To fetch Binary Blobs:
89
90.. code-block:: console
91
92   west blobs fetch hal_infineon
93
94
95Build blinking led sample
96*************************
97
98Here is an example for building the :zephyr:code-sample:`blinky` sample application.
99
100.. zephyr-app-commands::
101   :zephyr-app: samples/basic/blinky
102   :board: cy8cproto_062_4343w
103   :goals: build
104
105Programming and Debugging
106*************************
107
108The CY8CPROTO-062-4343W 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.
109
110Infineon OpenOCD Installation
111=============================
112
113Both 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.
114
115.. 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``.
116
117West Commands
118=============
119
120The 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``.
121
122   .. tabs::
123      .. group-tab:: Windows
124
125         .. code-block:: shell
126
127            # Run west config once to set permanent CMake argument
128            west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd.exe
129
130            # Do a pristine build once after setting CMake argument
131            west build -b cy8cproto_062_4343w -p always samples/basic/blinky
132
133            west flash
134            west debug
135
136      .. group-tab:: Linux
137
138         .. code-block:: shell
139
140            # Run west config once to set permanent CMake argument
141            west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd
142
143            # Do a pristine build once after setting CMake argument
144            west build -b cy8cproto_062_4343w -p always samples/basic/blinky
145
146            west flash
147            west debug
148
149Once the gdb console starts after executing the west debug command, you may now set breakpoints and perform other standard GDB debugging on the PSOC 6 CM4 core.
150
151Errata
152======
153
154+------------------------------------------------+----------------------------------------+
155| Problem                                        | Solution                               |
156+================================================+========================================+
157| The GPIO_INT_TRIG_BOTH interrupt is not raised | This will be fixed in a future release.|
158| when the associated GPIO is asserted.          |                                        |
159+------------------------------------------------+----------------------------------------+
160| GDB experiences a timeout error connecting to  | This will be fixed in a future release.|
161| a server instance started by west debugserver. |                                        |
162+------------------------------------------------+----------------------------------------+
163
164.. _PSOC 62 MCU SoC Website:
165    https://www.cypress.com/products/32-bit-arm-cortex-m4-psoc-6
166
167.. _PSOC 62 MCU Datasheet:
168    https://www.cypress.com/documentation/datasheets/psoc-6-mcu-psoc-62-datasheet-programmable-system-chip-psoc-preliminary
169
170.. _PSOC 62 MCU Architecture Reference Manual:
171    https://www.cypress.com/documentation/technical-reference-manuals/psoc-6-mcu-psoc-62-architecture-technical-reference-manual
172
173.. _PSOC 62 MCU Register Reference Manual:
174    https://www.cypress.com/documentation/technical-reference-manuals/psoc-6-mcu-psoc-62-register-technical-reference-manual-trm
175
176.. _CY8CPROTO-062-4343W PSOC 6 Wi-Fi BT Website:
177    https://www.infineon.com/cms/en/product/evaluation-boards/cy8cproto-062-4343w/
178
179.. _CY8CPROTO-062-4343W PSOC 6 Wi-Fi BT User Guide:
180    https://www.infineon.com/cms/en/product/evaluation-boards/cy8cproto-062-4343w/#!?fileId=8ac78c8c7d0d8da4017d0f0118571844
181
182.. _CY8CPROTO-062-4343W PSOC 6 Wi-Fi BT Schematics:
183    https://www.infineon.com/cms/en/product/evaluation-boards/cy8cproto-062-4343w/#!?fileId=8ac78c8c7d0d8da4017d0f01126b183f
184
185.. _ModusToolbox:
186    https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolbox
187
188.. _ModusToolbox Programming Tools:
189    https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolboxprogtools
190
191.. _Infineon OpenOCD:
192    https://github.com/Infineon/openocd/releases/latest
193
194.. _KitProg3:
195    https://github.com/Infineon/KitProg3
196