1.. _renesas:
2
3=======
4Renesas
5=======
6
7`Renesas <https://renesas.com/>`__ is an official partner of LVGL. Therefore, LVGL contains built-in support for
8`Dave2D <https://www.renesas.com/document/mas/tes-dave2d-driver-documentation>`__ (the GPU of Renesas) and we also maintain
9ready-to-use Renesas projects.
10
11
12Dave2D
13------
14
15Dave2D is capable of accelerating most of the drawing operations of LVGL:
16
17- Rectangle drawing, even with gradients
18- Image drawing, scaling, and rotation
19- Letter drawing
20- Triangle drawing
21- Line drawing
22
23
24As Dave2D works in the background, the CPU is free for other tasks. In practice, during rendering, Dave2D can reduce the CPU usage by
25half or to one-third, depending on the application.
26
27
28GLCDC
29-----
30
31GLCDC is a multi-stage graphics output peripheral available in several Renesas MCUs. It is able to drive LCD panels via a highly
32configurable RGB interface.
33
34More info can be found at the :ref:`driver's page<renesas_glcdc>`.
35
36
37Supported boards
38----------------
39
40.. list-table::
41   :widths: 10 30 30 30
42
43   * -
44     - **EK-RA8D1**
45     - **EK-RA6M3G**
46     - **RX72N Envision Kit**
47   * - CPU
48     - 480MHz, Arm Cortex-M85 core
49     - 120MHz, Arm Cortex-M4 core
50     - 240MHz, Renesas RXv3 core
51   * - Memory
52     -
53         | 1MB internal, 64MB external SDRAM
54         | 2MB internal, 64MB External Octo-SPI Flash
55     -
56         | 640kB internal SRAM
57         | 2MB internal, 32MB external QSPI Flash
58     -
59         | 1MB internal SRAM
60         | 4MB internal, 32MB external QSPI Flash
61   * - Display
62     -
63         | 4.5”
64         | 480x854
65         | 2-lane MIPI
66     -
67         | 4.3”
68         | 480x272
69         | Parallel RGB565
70     -
71         | 4.3”
72         | 480x272
73         | Parallel RGB565
74   * - `Board <https://lvgl.io/boards>`__ video
75     - .. raw:: html
76
77           <iframe width="320" height="180" src="https://www.youtube.com/embed/WkJPB8wto_U" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
78
79     - .. raw:: html
80
81           <iframe width="320" height="180" src="https://www.youtube.com/embed/0kar4Ee3Qic" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
82
83     - .. raw:: html
84
85           <iframe width="320" height="180" src="https://www.youtube.com/embed/__56v8DsfH0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
86
87   * - Links
88     - `Demo repository for EK-RA8D1 <https://github.com/lvgl/lv_port_renesas_ek-ra8d1>`__
89     - `Demo repository for EK-RA6M3G <https://github.com/lvgl/lv_port_renesas_ek-ra6m3g>`__
90     - `Demo repository for RX72N Envision Kit <https://github.com/lvgl/lv_port_renesas_rx72n-envision-kit>`__
91
92
93Get started with the Renesas ecosystem
94--------------------------------------
95
96.. |img_debug_btn| image:: /misc/renesas/debug_btn.png
97   :alt: Debug button
98
99.. dropdown:: RA Family
100
101    - The official IDE of Renesas is called e² studio. As it's Eclipse-based, it runs on Windows, Linux, and Mac as well.
102      The RA family requires the latest version with FSP 5.3. It can be downloaded `here <https://www.renesas.com/us/en/software-tool/flexible-software-package-fsp>`__.
103    - JLink is used for debugging, it can be downloaded `here <https://www.segger.com/downloads/jlink/>`__.
104    - Clone the ready-to-use repository for your selected board:
105
106        .. code-block:: shell
107
108            git clone https://github.com/lvgl/lv_port_renesas_ek-ra8d1.git --recurse-submodules
109
110
111        Downloading the `.zip` from GitHub doesn't work as it doesn't download the submodules.
112    - Open e² studio, go to ``File`` -> ``Import project`` and select ``General`` / ``Existing projects into workspace``
113    - Browse the cloned folder and press ``Finish``.
114    - Double click on ``configuration.xml``. This will activate the `Configuration Window`.
115
116      Renesas' Flexible Software Package (FSP) includes BSP and HAL layer support extended with multiple RTOS variants and other middleware stacks.
117      The components will be available via code generation, including the entry point of *"main.c"*.
118
119      Press ``Generate Project Content`` in the top right corner.
120
121      .. image:: /misc/renesas/generate.png
122         :alt: Code generation with FSP
123
124    - Build the project by pressing ``Ctrl`` + ``Alt`` + ``B``
125    - Click the Debug button (|img_debug_btn|). If prompted with `Debug Configurations`, on the `Debugger` tab select the ``J-Link ARM`` as `Debug hardware` and the proper IC as `Target Device`:
126
127      - ``R7FA8D1BH`` for EK-RA8D1
128
129        .. image:: /misc/renesas/debug_ra8.png
130           :alt: Debugger parameters for RA8
131
132      - ``R7FA6M3AH`` for EK-RA6M3G
133
134        .. image:: /misc/renesas/debug_ra6.png
135            :alt: Debugger parameters for RA6
136
137   .. note::
138      On EK-RA8D1 boards, the ``SW1`` DIP switch (middle of the board) 7 should be ON, all others are OFF.
139
140.. dropdown:: RX Family
141
142    - The official IDE of Renesas is called e² studio. As it's Eclipse-based, it runs on Windows, Linux, and Mac as well.
143      It can be downloaded `here <https://www.renesas.com/us/en/software-tool/e-studio>`__.
144    - Download and install the required driver for the debugger
145
146       - for Windows: `64 bit here <https://www.renesas.com/us/en/document/uid/usb-driver-renesas-mcu-tools-v27700-64-bit-version-windows-os?r=488806>`__
147         and `32 bit here <https://www.renesas.com/us/en/document/uid/usb-driver-renesas-mcu-toolse2e2-liteie850ie850apg-fp5-v27700for-32-bit-version-windows-os?r=488806>`__
148       - for Linux: `here <https://www.renesas.com/us/en/document/swo/e2-emulator-e2-emulator-lite-linux-driver?r=488806>`__
149
150    - RX72 requires an external compiler for the RXv3 core. A free and open-source version is available
151      `here <https://llvm-gcc-renesas.com/rx-download-toolchains/>`__ after a registration.
152
153      The compiler must be activated in e² studio:
154
155      - Go to go to ``Help`` -> ``Add Renesas Toolchains``
156      - Press the ``Add...`` button
157      - Browse the installation folder of the toolchain
158
159      <br/>
160
161      .. image:: /misc/renesas/toolchains.png
162         :alt: Toolchains
163
164    - Clone the ready-to-use `lv_port_renesas_rx72n-envision-kit <https://github.com/lvgl/lv_port_renesas_rx72n-envision-kit.git>`__ repository:
165
166      .. code-block:: shell
167
168          git clone https://github.com/lvgl/lv_port_renesas_rx72n-envision-kit.git --recurse-submodules
169
170
171      Downloading the `.zip` from GitHub doesn't work as it doesn't download the submodules.
172
173    - Open e² studio, go to ``File`` -> ``Import project`` and select ``General`` / ``Existing projects into workspace``
174    - Select the cloned folder and press ``Finish``.
175    - Double click on ``RX72N_EnVision_LVGL.scfg``. This will activate the `Configuration Window`.
176
177      Renesas' Smart Configurator (SMC) includes BSP and HAL layer support extended with multiple RTOS variants and other middleware stacks.
178      The components will be available via code generation, including the entry point of the application.
179
180      Press ``Generate Code`` in the top right corner.
181
182      .. image:: /misc/renesas/generate_smc.png
183         :alt: Code generation with SMC
184
185    - Build the project by pressing ``Ctrl`` + ``Alt`` + ``B``
186    - Click the Debug button (|img_debug_btn|). If prompted with `Debug Configurations`, on the `Debugger` tab select the ``E2 Lite``
187      as `Debug hardware` and ``R5F572NN`` as `Target Device`:
188
189      .. image:: /misc/renesas/debug_rx72.png
190         :alt: Debugger parameters for RX72
191
192    .. note::
193       Make sure that both channels of ``SW1`` DIP switch (next to ``ECN1``) are OFF.
194
195
196Modify the project
197------------------
198
199
200Open a demo
201~~~~~~~~~~~
202
203The entry point of the main task is contained in ``src/LVGL_thread_entry.c`` in all 3 projects.
204
205You can disable the LVGL demos (or just comment them out) and call some ``lv_example_...()`` functions, or add your custom code.
206
207
208Configuration
209~~~~~~~~~~~~~
210
211``src/lv_conf.h`` contains the most important settings for LVGL. Namely:
212
213- :c:macro:`LV_COLOR_DEPTH` to set LVGL's default color depth
214- :c:macro:`LV_MEM_SIZE` to set the maximum RAM available for LVGL
215- :c:macro:`LV_USE_DAVE2D` to enable the GPU
216
217
218Hardware and software components can be modified in a visual way using the `Configuration Window`.
219
220
221Support
222-------
223
224In case of any problems or questions open an issue in the corresponding repository.
225