diff --git a/sites/es/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/es_XIAO_ESP32C5_With_Zephyr.md b/sites/es/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/es_XIAO_ESP32C5_With_Zephyr.md new file mode 100644 index 00000000000000..5db279002d358b --- /dev/null +++ b/sites/es/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/es_XIAO_ESP32C5_With_Zephyr.md @@ -0,0 +1,547 @@ +--- +title: XIAO ESP32-C5 con Zephyr(RTOS) +keywords: + - xiao + - esp32c5 + - Zephyr + - idf +image: https://files.seeedstudio.com/wiki/XIAO_ESP32C5/Getting_started/Seeed-Studio-XIAO-ESP32C5_1.webp +slug: /xiao_esp32c5_with_zephyr +sku: 100010048 +last_update: + date: 4/28/2026 + author: Zeller +createdAt: '2026-04-28' +updatedAt: '2026-04-30' +url: https://wiki.seeedstudio.com/es/xiao_esp32c5_with_zephyr/ +--- + +El sistema operativo [**Zephyr**](https://www.zephyrproject.org/) se basa en un kernel de huella reducida diseñado para su uso en sistemas embebidos y con recursos limitados: desde simples sensores ambientales integrados y wearables con LED hasta sofisticados controladores embebidos, relojes inteligentes y aplicaciones inalámbricas de IoT. + +## Introducción + +### Preparación de hardware + +Prepara una placa XIAO ESP32-C5 para realizar las siguientes verificaciones y trabajos relacionados. + +
+ + + + + + + + + + +
Seeed Studio XIAO ESP32-C5
+
+ +### Preparación de software + +Este artículo se desarrolla y verifica sobre la base de Ubuntu 24.04 LTS. Consulta la documentación correspondiente para desplegar el entorno de desarrollo en Ubuntu, Mac y Windows. [Guía de inicio de Zephyr](https://docs.zephyrproject.org/latest/develop/getting_started/index.html) + +:::tip +Se recomienda oficialmente utilizar **Ubuntu 24.04 LTS y versiones posteriores**, lo que puede evitar eficazmente problemas causados por dependencias del entorno y ahorrarte tiempo. +::: + +1. Activa el entorno virtual. + +Crea un nuevo entorno virtual: + +```bash +python3 -m venv ~/zephyrproject/.venv +``` + +Activa el entorno virtual: + +```bash +source ~/zephyrproject/.venv/bin/activate +``` + +2. Abre la carpeta **blinky**. + +```bash +cd ~/zephyrproject/zephyr/samples/basic/blinky +``` + +3. Actualiza el archivo overlay y el archivo prj.conf. + +La salida de registro del puerto serie predeterminada se asigna a GPIO11 y GPIO12, que corresponden a D6 y D7 en la XIAO ESP32‑C5. +Para utilizar USB Serial/JTAG para la salida de registros, debes reasignar los pines del puerto serie a los pines correspondientes de USB Serial/JTAG. Al mismo tiempo, de acuerdo con el diseño de hardware de la XIAO ESP32‑C5, también debes configurar el pin del LED de usuario en GPIO27. + +:::tip +Si no estás familiarizado con el pinout de la XIAO ESP32-C5, puedes consultar [Pinlist](https://wiki.seeedstudio.com/es/xiao_esp32c5_getting_started/#hardware-overview) +::: + +Crea un nuevo archivo overlay + +```bash +nano ~/zephyrproject/zephyr/samples/basic/blinky/boards/esp32c5_devkitc_esp32c5_hpcore.overlay +``` + + Añade el contenido del overlay + +```overlay +/ { + chosen { + zephyr,console = &usb_serial; + zephyr,shell-uart = &usb_serial; + }; + + aliases { + led0 = &led0; + }; + + leds { + compatible = "gpio-leds"; + led0: led_0 { + gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>; + label = "LED0"; + }; + }; +}; + +&usb_serial { + status = "okay"; +}; +``` + +Después de añadir el contenido, pulsa Ctrl + O para guardar el archivo y luego Ctrl + X para salir. + +Modifica el contenido de prj.conf + +```bash +nano ~/zephyrproject/zephyr/samples/basic/blinky/boards/prj.conf +``` + +Modifica el contenido al siguiente, ajustando principalmente la relación de mapeo del UART. + +```prj +CONFIG_USB_DEVICE_STACK=y +CONFIG_USB_CDC_ACM=y +CONFIG_UART_LINE_CTRL=y +CONFIG_GPIO=y +CONFIG_LOG=y +``` + +4. Establece la placa de destino en **esp32c5_devkitc** y comienza a compilar. + +:::tip +**hpcore** significa High Performance Core. Normalmente se utiliza para ejecutar programas principales y tareas con altos requisitos de rendimiento. +::: + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/basic/blinky +``` + +Síntomas de compilación exitosa + +
+ +5. Flashea el dispositivo + +:::tip +Antes de flashear el programa al dispositivo, la XIAO ESP32-C5 debe ponerse en modo Bootloader Download. + +Método: +Mantén pulsado el botón BOOT y luego enciende el dispositivo. +::: + +Comprueba el dispositivo de puerto serie. El dispositivo suele ser `/dev/ttyACM0`. + +```bash +ls /dev/ttyACM* +``` + +
+ +Debido a las restricciones de permisos de acceso en el archivo de dispositivo del puerto serie, es necesario modificar sus permisos para admitir operaciones de lectura y escritura. + +```bash +sudo chmod 666 /dev/ttyACM0 +``` + +Especifica el dispositivo de puerto serie y comienza la descarga. + +```bash +west flash --esp-device /dev/ttyACM0 +``` + +Salida de ejemplo para una descarga exitosa + +
+ +6. Demostración del fenómeno + +Después de descargar correctamente, el LED comenzará a parpadear. + +
+ +Abre el puerto serie y se imprimirá la información de registro de LED ON o LED OFF. + +```bash +west espressif monitor --port /dev/ttyACM0 +``` + +
+ +## Aplicación + +La XIAO ESP32-C5 admite el uso de placas de expansión compatibles con la serie XIAO, lo que permite ampliar fácilmente periféricos y escenarios de aplicación. + +### Uso de la Expansion Board Base for XIAO + +La Expansion Board Base for XIAO está equipada con una interfaz IIC y una pantalla OLED integrada de 0,96 pulgadas. + +#### Preparación de hardware + +
+ + + + + + + + + + + + + +
Seeed Studio XIAO ESP32-C5Seeed Studio Expansion Board Base for XIAO with Grove OLED
+
+ +#### Preparación de software + +Según la definición de pines de la XIAO ESP32-C5, GPIO23 corresponde a SDA, que es D4; GPIO24 corresponde a SCL, que es D5. Es necesario crear y modificar el contenido del nodo del device tree. + +1. Abre el ejemplo de display. + +```bash +cd ~/zephyrproject/zephyr/samples/drivers/display +``` + +2. Añade el archivo overlay. + +```bash +nano esp32c5_devkitc_esp32c5_hpcore.overlay +``` + +Añade el contenido del nodo del device tree. + +```dts +#include +#include + +&pinctrl { + i2c0_custom: i2c0_custom { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + pinctrl-0 = <&i2c0_custom>; + pinctrl-names = "default"; + + ssd1306_128x64: ssd1306@3c { + compatible = "solomon,ssd1306"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + prechargep = <0x22>; + }; +}; + +/ { + chosen { + zephyr,display = &ssd1306_128x64; + }; +}; +``` + +3. Compila y flashea + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/drivers/display + +sudo chmod 666 /dev/ttyACM0 + +west flash +``` + +#### Resultado + +La Expansion Board Base for XIAO mostrará un efecto en pantalla. + +
+ +### Uso de la Round Display for Seeed Studio XIAO + +La Round Display for Seeed Studio XIAO es una pantalla redonda especialmente diseñada para la serie XIAO. Está equipada con el chip controlador GC9A01 integrado y adopta el protocolo de comunicación SPI estándar. + +#### Preparación de hardware + +
+ + + + + + + + + + + + + +
Seeed Studio XIAO ESP32-C5Round Display for Seeed Studio XIAO
+
+ +#### Preparación de software + +1. Abre el ejemplo de pantalla. + +```bash +cd ~/zephyrproject/zephyr/samples/drivers/display +``` + +2. Añade el archivo overlay. + +```bash +nano esp32c5_devkitc_esp32c5_hpcore.overlay +``` + +Añade el contenido del nodo del árbol de dispositivos. + +
+esp32c5_devkitc_esp32c5_hpcore.overlay + +```dts +/* + * Copyright (c) 2026 + * SPDX-License-Identifier: Apache-2.0 + * + * Standalone overlay for GC9A01 round display on XIAO ESP32-C5. + * Does not depend on seeed_xiao_round_display shield. + * + * Pin mapping (XIAO ESP32-C5): + * D1 = GPIO0 -> display CS (active low) + * D2 = GPIO25 -> SD card CS (active low) + * D3 = GPIO7 -> display DC (active high) + * D4 = GPIO23 -> SDA + * D5 = GPIO24 -> SCL + * D6 = GPIO11 -> TX (disabled, reused for backlight control) + * D7 = GPIO12 -> touch IRQ (active low) + * D8 = GPIO8 -> SCK + * D9 = GPIO9 -> MISO + * D10 = GPIO10 -> MOSI + */ + +#include +#include +#include + +/ { + chosen { + zephyr,display = &gc9a01_round_display; + zephyr,touch = &chsc6x_round_display; + }; + + lvgl_pointer { + compatible = "zephyr,lvgl-pointer-input"; + input = <&chsc6x_round_display>; + }; + + vbatt { + compatible = "voltage-divider"; + io-channels = <&adc0 0>; + output-ohms = <470000>; + full-ohms = <940000>; + }; + + aliases { + rtc = &pcf8563_round_display; + }; +}; + +&pinctrl { + /* I2C0: SDA = GPIO23 (D4), SCL = GPIO24 (D5) */ + i2c0_custom: i2c0_custom { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; + + /* SPI2: SCK = GPIO8 (D8), MISO = GPIO9 (D9), MOSI = GPIO10 (D10) */ + spim2_custom: spim2_custom { + group1 { + pinmux = , + ; + }; + group2 { + pinmux = ; + output-low; + }; + }; +}; + +/* D6 = GPIO11 reused for backlight, disable UART TX */ +&uart0 { + status = "disabled"; +}; + +&adc0 { + status = "okay"; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + pinctrl-0 = <&i2c0_custom>; + pinctrl-names = "default"; + + /* RTC, address 0x51 */ + pcf8563_round_display: pcf8563@51 { + status = "okay"; + compatible = "nxp,pcf8563"; + reg = <0x51>; + }; + + /* Touch controller, IRQ = GPIO12 (D7) */ + chsc6x_round_display: chsc6x@2e { + status = "okay"; + compatible = "chipsemi,chsc6x"; + reg = <0x2e>; + irq-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + screen-width = <240>; + screen-height = <240>; + }; +}; + +&spi2 { + status = "okay"; + pinctrl-0 = <&spim2_custom>; + pinctrl-names = "default"; + /* D1 = GPIO0 -> display CS + * D2 = GPIO25 -> SD card CS */ + cs-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>, + <&gpio0 25 GPIO_ACTIVE_LOW>; + + /* MIPI DBI SPI wrapper for GC9A01, DC = GPIO7 (D3) */ + round_display_mipi_dbi: mipi_dbi { + compatible = "zephyr,mipi-dbi-spi"; + spi-dev = <&spi2>; + dc-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; + write-only; + #address-cells = <1>; + #size-cells = <0>; + + gc9a01_round_display: gc9a01@0 { + status = "okay"; + compatible = "galaxycore,gc9x01x"; + reg = <0>; + mipi-max-frequency = ; + pixel-format = ; + width = <240>; + height = <240>; + display-inversion; + }; + }; + + /* SD card slot, CS = GPIO25 (D2) */ + sdhc_round_display: sdhc@1 { + compatible = "zephyr,sdhc-spi-slot"; + reg = <1>; + status = "okay"; + spi-max-frequency = ; + mmc { + compatible = "zephyr,sdmmc-disk"; + disk-name = "SD"; + status = "okay"; + }; + }; +}; +``` + +
+ +3. Compila y flashea + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/drivers/display + +sudo chmod 666 /dev/ttyACM0 + +west flash +``` + +#### Resultado + +Después de flashear el firmware, pulsa la tecla y el contenido de la pantalla se mostrará en la pantalla redonda para Seeed Studio XIAO. + +
+ +## Conclusión + +Creo que a estas alturas ya has dominado básicamente el desarrollo con Zephyr en el XIAO ESP32-C5. Si tienes alguna idea creativa, no dudes en desarrollar tus proyectos y compartirlos con la comunidad, permitiendo que otros vean tus excelentes trabajos. + +## Soporte técnico y debate sobre el producto + +Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades. + +
+ + +
+ +
+ + +
diff --git a/sites/es/sidebars.js b/sites/es/sidebars.js index f99b9586fd9bbc..bd50c72079bc63 100644 --- a/sites/es/sidebars.js +++ b/sites/es/sidebars.js @@ -1297,6 +1297,7 @@ const sidebars = { label: 'RTOS', items: [ 'Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/es_XIAO_ESP32C5_With_FreeRTOS', + 'Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/es_XIAO_ESP32C5_With_Zephyr', ], }, ], diff --git a/sites/ja/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/ja_XIAO_ESP32C5_With_Zephyr.md b/sites/ja/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/ja_XIAO_ESP32C5_With_Zephyr.md new file mode 100644 index 00000000000000..c7fa0d61a04844 --- /dev/null +++ b/sites/ja/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/ja_XIAO_ESP32C5_With_Zephyr.md @@ -0,0 +1,547 @@ +--- +title: XIAO ESP32-C5 と Zephyr(RTOS) +keywords: + - xiao + - esp32c5 + - Zephyr + - idf +image: https://files.seeedstudio.com/wiki/XIAO_ESP32C5/Getting_started/Seeed-Studio-XIAO-ESP32C5_1.webp +slug: /xiao_esp32c5_with_zephyr +sku: 100010048 +last_update: + date: 4/28/2026 + author: Zeller +createdAt: '2026-04-28' +updatedAt: '2026-04-30' +url: https://wiki.seeedstudio.com/ja/xiao_esp32c5_with_zephyr/ +--- + +[**Zephyr**](https://www.zephyrproject.org/) OS は、小さなフットプリントのカーネルをベースとしており、リソースに制約のある組み込みシステムでの使用を想定して設計されています。シンプルな環境センサや LED ウェアラブルから、高度な組み込みコントローラ、スマートウォッチ、IoT 無線アプリケーションまで対応します。 + +## はじめに + +### ハードウェアの準備 + +以下の検証および関連作業を行うために、XIAO ESP32-C5 ボードを 1 枚用意してください。 + +
+ + + + + + + + + + +
Seeed Studio XIAO ESP32-C5
+
+ +### ソフトウェアの準備 + +この記事は Ubuntu 24.04 LTS をベースに開発および検証されています。Ubuntu、Mac、Windows 上で開発環境を構築するには、関連ドキュメントを参照してください。[Zephyr Getting Started Guide](https://docs.zephyrproject.org/latest/develop/getting_started/index.html) + +:::tip +公式には **Ubuntu 24.04 LTS 以降のバージョン** の使用が推奨されています。これにより、環境依存関係によるトラブルを効果的に回避し、時間を節約できます。 +::: + +1. 仮想環境を有効化します。 + +新しい仮想環境を作成します: + +```bash +python3 -m venv ~/zephyrproject/.venv +``` + +仮想環境を有効化します: + +```bash +source ~/zephyrproject/.venv/bin/activate +``` + +2. **blinky** フォルダを開きます。 + +```bash +cd ~/zephyrproject/zephyr/samples/basic/blinky +``` + +3. overlay ファイルと prj.conf ファイルを更新します。 + +デフォルトのシリアルポートログ出力は GPIO11 と GPIO12 にマッピングされており、XIAO ESP32‑C5 上の D6 と D7 に対応します。 +USB Serial/JTAG をログ出力に使用するには、シリアルポートのピンを USB Serial/JTAG の対応ピンに再マッピングする必要があります。同時に、XIAO ESP32‑C5 のハードウェア設計に従い、ユーザー LED ピンを GPIO27 に設定する必要があります。 + +:::tip +XIAO ESP32-C5 のピン配置に慣れていない場合は、[Pinlist](https://wiki.seeedstudio.com/ja/xiao_esp32c5_getting_started/#ハードウェア概要) を確認できます。 +::: + +新しい overlay ファイルを作成します + +```bash +nano ~/zephyrproject/zephyr/samples/basic/blinky/boards/esp32c5_devkitc_esp32c5_hpcore.overlay +``` + + overlay の内容を追加します + +```overlay +/ { + chosen { + zephyr,console = &usb_serial; + zephyr,shell-uart = &usb_serial; + }; + + aliases { + led0 = &led0; + }; + + leds { + compatible = "gpio-leds"; + led0: led_0 { + gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>; + label = "LED0"; + }; + }; +}; + +&usb_serial { + status = "okay"; +}; +``` + +内容を追加したら、Ctrl + O でファイルを保存し、Ctrl + X で終了します。 + +prj.conf の内容を修正します + +```bash +nano ~/zephyrproject/zephyr/samples/basic/blinky/boards/prj.conf +``` + +内容を次のように変更します。主に UART のマッピング関係を調整します。 + +```prj +CONFIG_USB_DEVICE_STACK=y +CONFIG_USB_CDC_ACM=y +CONFIG_UART_LINE_CTRL=y +CONFIG_GPIO=y +CONFIG_LOG=y +``` + +4. ターゲットボードを **esp32c5_devkitc** に設定し、コンパイルを開始します。 + +:::tip +**hpcore** は High Performance Core(高性能コア)を表します。通常、メインプログラムや高い性能が要求されるタスクの実行に使用されます。 +::: + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/basic/blinky +``` + +コンパイル成功時の表示 + +
+ +5. デバイスを書き込みます + +:::tip +プログラムを書き込む前に、XIAO ESP32-C5 をブートローダーダウンロードモードに設定する必要があります。 + +方法: +BOOT ボタンを押し続けたまま、デバイスの電源を入れます。 +::: + +シリアルポートデバイスを確認します。デバイスは通常 `/dev/ttyACM0` です。 + +```bash +ls /dev/ttyACM* +``` + +
+ +シリアルポートデバイスファイルへのアクセス権制限のため、読み書き操作をサポートするように権限を変更する必要があります。 + +```bash +sudo chmod 666 /dev/ttyACM0 +``` + +シリアルポートデバイスを指定し、ダウンロードを開始します。 + +```bash +west flash --esp-device /dev/ttyACM0 +``` + +ダウンロード成功時の出力例 + +
+ +6. 動作デモ + +ダウンロードが正常に完了すると、LED が点滅し始めます。 + +
+ +シリアルポートを開くと、LED ON または LED OFF のログ情報が出力されます。 + +```bash +west espressif monitor --port /dev/ttyACM0 +``` + +
+ +## アプリケーション + +XIAO ESP32-C5 は XIAO シリーズと互換性のある拡張ボードの使用をサポートしており、ペリフェラルやアプリケーションシナリオを容易に拡張できます。 + +### Expansion Board Base for XIAO を使用する + +Expansion Board Base for XIAO には IIC インターフェースと、オンボードの 0.96 インチ OLED スクリーンが搭載されています。 + +#### ハードウェアの準備 + +
+ + + + + + + + + + + + + +
Seeed Studio XIAO ESP32-C5Seeed Studio Expansion Board Base for XIAO with Grove OLED
+
+ +#### ソフトウェアの準備 + +XIAO ESP32-C5 のピン定義によると、GPIO23 は SDA(D4)、GPIO24 は SCL(D5)に対応します。デバイスツリーノードの内容を作成および修正する必要があります。 + +1. display のサンプルを開きます。 + +```bash +cd ~/zephyrproject/zephyr/samples/drivers/display +``` + +2. overlay ファイルを追加します。 + +```bash +nano esp32c5_devkitc_esp32c5_hpcore.overlay +``` + +デバイスツリーノードの内容を追加します。 + +```dts +#include +#include + +&pinctrl { + i2c0_custom: i2c0_custom { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + pinctrl-0 = <&i2c0_custom>; + pinctrl-names = "default"; + + ssd1306_128x64: ssd1306@3c { + compatible = "solomon,ssd1306"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + prechargep = <0x22>; + }; +}; + +/ { + chosen { + zephyr,display = &ssd1306_128x64; + }; +}; +``` + +3. コンパイルと書き込み + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/drivers/display + +sudo chmod 666 /dev/ttyACM0 + +west flash +``` + +#### 結果 + +Expansion Board Base for XIAO に画面効果が表示されます。 + +
+ +### Round Display for Seeed Studio XIAO を使用する + +Round Display for Seeed Studio XIAO は、XIAO シリーズ向けに特別に設計された円形ディスプレイです。オンボードに GC9A01 ドライバチップを搭載し、標準的な SPI 通信プロトコルを採用しています。 + +#### ハードウェアの準備 + +
+ + + + + + + + + + + + + +
Seeed Studio XIAO ESP32-C5Round Display for Seeed Studio XIAO
+
+ +#### ソフトウェアの準備 + +1. ディスプレイのサンプルを開きます。 + +```bash +cd ~/zephyrproject/zephyr/samples/drivers/display +``` + +2. overlay ファイルを追加します。 + +```bash +nano esp32c5_devkitc_esp32c5_hpcore.overlay +``` + +デバイスツリーノードの内容を追加します。 + +
+esp32c5_devkitc_esp32c5_hpcore.overlay + +```dts +/* + * Copyright (c) 2026 + * SPDX-License-Identifier: Apache-2.0 + * + * Standalone overlay for GC9A01 round display on XIAO ESP32-C5. + * Does not depend on seeed_xiao_round_display shield. + * + * Pin mapping (XIAO ESP32-C5): + * D1 = GPIO0 -> display CS (active low) + * D2 = GPIO25 -> SD card CS (active low) + * D3 = GPIO7 -> display DC (active high) + * D4 = GPIO23 -> SDA + * D5 = GPIO24 -> SCL + * D6 = GPIO11 -> TX (disabled, reused for backlight control) + * D7 = GPIO12 -> touch IRQ (active low) + * D8 = GPIO8 -> SCK + * D9 = GPIO9 -> MISO + * D10 = GPIO10 -> MOSI + */ + +#include +#include +#include + +/ { + chosen { + zephyr,display = &gc9a01_round_display; + zephyr,touch = &chsc6x_round_display; + }; + + lvgl_pointer { + compatible = "zephyr,lvgl-pointer-input"; + input = <&chsc6x_round_display>; + }; + + vbatt { + compatible = "voltage-divider"; + io-channels = <&adc0 0>; + output-ohms = <470000>; + full-ohms = <940000>; + }; + + aliases { + rtc = &pcf8563_round_display; + }; +}; + +&pinctrl { + /* I2C0: SDA = GPIO23 (D4), SCL = GPIO24 (D5) */ + i2c0_custom: i2c0_custom { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; + + /* SPI2: SCK = GPIO8 (D8), MISO = GPIO9 (D9), MOSI = GPIO10 (D10) */ + spim2_custom: spim2_custom { + group1 { + pinmux = , + ; + }; + group2 { + pinmux = ; + output-low; + }; + }; +}; + +/* D6 = GPIO11 reused for backlight, disable UART TX */ +&uart0 { + status = "disabled"; +}; + +&adc0 { + status = "okay"; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + pinctrl-0 = <&i2c0_custom>; + pinctrl-names = "default"; + + /* RTC, address 0x51 */ + pcf8563_round_display: pcf8563@51 { + status = "okay"; + compatible = "nxp,pcf8563"; + reg = <0x51>; + }; + + /* Touch controller, IRQ = GPIO12 (D7) */ + chsc6x_round_display: chsc6x@2e { + status = "okay"; + compatible = "chipsemi,chsc6x"; + reg = <0x2e>; + irq-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + screen-width = <240>; + screen-height = <240>; + }; +}; + +&spi2 { + status = "okay"; + pinctrl-0 = <&spim2_custom>; + pinctrl-names = "default"; + /* D1 = GPIO0 -> display CS + * D2 = GPIO25 -> SD card CS */ + cs-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>, + <&gpio0 25 GPIO_ACTIVE_LOW>; + + /* MIPI DBI SPI wrapper for GC9A01, DC = GPIO7 (D3) */ + round_display_mipi_dbi: mipi_dbi { + compatible = "zephyr,mipi-dbi-spi"; + spi-dev = <&spi2>; + dc-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; + write-only; + #address-cells = <1>; + #size-cells = <0>; + + gc9a01_round_display: gc9a01@0 { + status = "okay"; + compatible = "galaxycore,gc9x01x"; + reg = <0>; + mipi-max-frequency = ; + pixel-format = ; + width = <240>; + height = <240>; + display-inversion; + }; + }; + + /* SD card slot, CS = GPIO25 (D2) */ + sdhc_round_display: sdhc@1 { + compatible = "zephyr,sdhc-spi-slot"; + reg = <1>; + status = "okay"; + spi-max-frequency = ; + mmc { + compatible = "zephyr,sdmmc-disk"; + disk-name = "SD"; + status = "okay"; + }; + }; +}; +``` + +
+ +3. コンパイルして書き込みます + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/drivers/display + +sudo chmod 666 /dev/ttyACM0 + +west flash +``` + +#### 結果 + +ファームウェアを書き込んだ後、キーを押すと、画面の内容が Round Display for Seeed Studio XIAO に表示されます。 + +
+ +## まとめ + +ここまでで、XIAO ESP32-C5 上での Zephyr 開発を基本的に習得できたと思います。何かクリエイティブなアイデアがあれば、ぜひプロジェクトを開発してコミュニティと共有し、他の人にもあなたの優れた作品を見てもらいましょう。 + +## 技術サポート & 製品ディスカッション + +弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じて選べる、複数のコミュニケーションチャネルをご用意しています。 + +
+ + +
+ +
+ + +
diff --git a/sites/ja/sidebars.js b/sites/ja/sidebars.js index c2fd676236fad5..259147e6b63563 100644 --- a/sites/ja/sidebars.js +++ b/sites/ja/sidebars.js @@ -1298,6 +1298,7 @@ const sidebars = { label: 'RTOS', items: [ 'Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/ja_XIAO_ESP32C5_With_FreeRTOS', + 'Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/ja_XIAO_ESP32C5_With_Zephyr', ], }, ], diff --git a/sites/pt-BR/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/pt_XIAO_ESP32C5_With_Zephyr.md b/sites/pt-BR/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/pt_XIAO_ESP32C5_With_Zephyr.md new file mode 100644 index 00000000000000..35b6ad78b9e9ce --- /dev/null +++ b/sites/pt-BR/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/pt_XIAO_ESP32C5_With_Zephyr.md @@ -0,0 +1,547 @@ +--- +title: XIAO ESP32-C5 com Zephyr(RTOS) +keywords: + - xiao + - esp32c5 + - Zephyr + - idf +image: https://files.seeedstudio.com/wiki/XIAO_ESP32C5/Getting_started/Seeed-Studio-XIAO-ESP32C5_1.webp +slug: /xiao_esp32c5_with_zephyr +sku: 100010048 +last_update: + date: 4/28/2026 + author: Zeller +createdAt: '2026-04-28' +updatedAt: '2026-04-30' +url: https://wiki.seeedstudio.com/pt-br/xiao_esp32c5_with_zephyr/ +--- + +O sistema operacional [**Zephyr**](https://www.zephyrproject.org/) é baseado em um kernel de baixo consumo de recursos, projetado para uso em sistemas embarcados e com recursos limitados: desde sensores ambientais embarcados simples e wearables com LED até controladores embarcados sofisticados, smartwatches e aplicações IoT sem fio. + +## Introdução + +### Preparação de hardware + +Prepare uma placa XIAO ESP32-C5 para dar suporte às seguintes verificações e trabalhos relacionados. + +
+ + + + + + + + + + +
Seeed Studio XIAO ESP32-C5
+
+ +### Preparação de software + +Este artigo foi desenvolvido e verificado com base no Ubuntu 24.04 LTS. Consulte a documentação relevante para implantar o ambiente de desenvolvimento no Ubuntu, Mac e Windows. [Guia de Introdução ao Zephyr](https://docs.zephyrproject.org/latest/develop/getting_started/index.html) + +:::tip +É oficialmente recomendado usar **Ubuntu 24.04 LTS e versões posteriores**, o que pode evitar de forma eficaz problemas causados por dependências de ambiente e economizar seu tempo. +::: + +1. Ative o ambiente virtual. + +Crie um novo ambiente virtual: + +```bash +python3 -m venv ~/zephyrproject/.venv +``` + +Ative o ambiente virtual: + +```bash +source ~/zephyrproject/.venv/bin/activate +``` + +2. Abra a pasta **blinky**. + +```bash +cd ~/zephyrproject/zephyr/samples/basic/blinky +``` + +3. Atualize o arquivo overlay e o arquivo prj.conf. + +A saída padrão de log da porta serial é mapeada para GPIO11 e GPIO12, correspondendo a D6 e D7 no XIAO ESP32‑C5. +Para usar USB Serial/JTAG para saída de log, é necessário remapear os pinos da porta serial para os pinos correspondentes do USB Serial/JTAG. Ao mesmo tempo, de acordo com o projeto de hardware do XIAO ESP32‑C5, você também deve configurar o pino do LED do usuário para GPIO27. + +:::tip +Se você não estiver familiarizado com o pinout do XIAO ESP32-C5, pode verificar a [Lista de pinos](https://wiki.seeedstudio.com/pt-br/xiao_esp32c5_getting_started/#visão-geral-do-hardware) +::: + +Crie um novo arquivo overlay + +```bash +nano ~/zephyrproject/zephyr/samples/basic/blinky/boards/esp32c5_devkitc_esp32c5_hpcore.overlay +``` + + Adicione o conteúdo do overlay + +```overlay +/ { + chosen { + zephyr,console = &usb_serial; + zephyr,shell-uart = &usb_serial; + }; + + aliases { + led0 = &led0; + }; + + leds { + compatible = "gpio-leds"; + led0: led_0 { + gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>; + label = "LED0"; + }; + }; +}; + +&usb_serial { + status = "okay"; +}; +``` + +Após adicionar o conteúdo, pressione Ctrl + O para salvar o arquivo e, em seguida, Ctrl + X para sair. + +Modifique o conteúdo de prj.conf + +```bash +nano ~/zephyrproject/zephyr/samples/basic/blinky/boards/prj.conf +``` + +Modifique o conteúdo para o seguinte, ajustando principalmente a relação de mapeamento da UART. + +```prj +CONFIG_USB_DEVICE_STACK=y +CONFIG_USB_CDC_ACM=y +CONFIG_UART_LINE_CTRL=y +CONFIG_GPIO=y +CONFIG_LOG=y +``` + +4. Defina a placa alvo como **esp32c5_devkitc** e inicie a compilação. + +:::tip +**hpcore** significa High Performance Core. Geralmente é usado para executar programas principais e tarefas com altos requisitos de desempenho. +::: + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/basic/blinky +``` + +Sintomas de compilação bem-sucedida + +
+ +5. Gravar o dispositivo + +:::tip +Antes de gravar o programa no dispositivo, o XIAO ESP32-C5 deve ser configurado no modo Bootloader Download. + +Método: +Mantenha pressionado o botão BOOT e, em seguida, ligue o dispositivo. +::: + +Verifique o dispositivo de porta serial. O dispositivo geralmente é `/dev/ttyACM0`. + +```bash +ls /dev/ttyACM* +``` + +
+ +Devido a restrições de permissão de acesso ao arquivo de dispositivo da porta serial, é necessário modificar suas permissões para suportar operações de leitura e gravação. + +```bash +sudo chmod 666 /dev/ttyACM0 +``` + +Especifique o dispositivo de porta serial e inicie o download. + +```bash +west flash --esp-device /dev/ttyACM0 +``` + +Saída de exemplo para download bem-sucedido + +
+ +6. Demonstração do fenômeno + +Após o download bem-sucedido, o LED começará a piscar. + +
+ +Abra a porta serial, e as informações de log de LED ON ou LED OFF serão impressas. + +```bash +west espressif monitor --port /dev/ttyACM0 +``` + +
+ +## Aplicação + +O XIAO ESP32-C5 suporta o uso de placas de expansão compatíveis com a série XIAO, permitindo a fácil expansão de periféricos e cenários de aplicação. + +### Usando a Expansion Board Base para XIAO + +A Expansion Board Base para XIAO está equipada com uma interface IIC e uma tela OLED onboard de 0,96 polegada. + +#### Preparação de hardware + +
+ + + + + + + + + + + + + +
Seeed Studio XIAO ESP32-C5Seeed Studio Expansion Board Base para XIAO com Grove OLED
+
+ +#### Preparação de software + +De acordo com a definição de pinos do XIAO ESP32-C5, GPIO23 corresponde a SDA, que é D4; GPIO24 corresponde a SCL, que é D5. É necessário criar e modificar o conteúdo do nó da árvore de dispositivos. + +1. Abra o exemplo de display. + +```bash +cd ~/zephyrproject/zephyr/samples/drivers/display +``` + +2. Adicione o arquivo overlay. + +```bash +nano esp32c5_devkitc_esp32c5_hpcore.overlay +``` + +Adicione o conteúdo do nó da árvore de dispositivos. + +```dts +#include +#include + +&pinctrl { + i2c0_custom: i2c0_custom { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + pinctrl-0 = <&i2c0_custom>; + pinctrl-names = "default"; + + ssd1306_128x64: ssd1306@3c { + compatible = "solomon,ssd1306"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + prechargep = <0x22>; + }; +}; + +/ { + chosen { + zephyr,display = &ssd1306_128x64; + }; +}; +``` + +3. Compile e grave + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/drivers/display + +sudo chmod 666 /dev/ttyACM0 + +west flash +``` + +#### Resultado + +A Expansion Board Base para XIAO exibirá um efeito de tela. + +
+ +### Usando o Round Display para Seeed Studio XIAO + +O Round Display para Seeed Studio XIAO é um display redondo especialmente projetado para a série XIAO. Ele está equipado com o chip driver GC9A01 onboard e adota o protocolo de comunicação SPI padrão. + +#### Preparação de hardware + +
+ + + + + + + + + + + + + +
Seeed Studio XIAO ESP32-C5Round Display para Seeed Studio XIAO
+
+ +#### Preparação de software + +1. Abra o exemplo de display. + +```bash +cd ~/zephyrproject/zephyr/samples/drivers/display +``` + +2. Adicione o arquivo overlay. + +```bash +nano esp32c5_devkitc_esp32c5_hpcore.overlay +``` + +Adicione o conteúdo do nó da árvore de dispositivos. + +
+esp32c5_devkitc_esp32c5_hpcore.overlay + +```dts +/* + * Copyright (c) 2026 + * SPDX-License-Identifier: Apache-2.0 + * + * Standalone overlay for GC9A01 round display on XIAO ESP32-C5. + * Does not depend on seeed_xiao_round_display shield. + * + * Pin mapping (XIAO ESP32-C5): + * D1 = GPIO0 -> display CS (active low) + * D2 = GPIO25 -> SD card CS (active low) + * D3 = GPIO7 -> display DC (active high) + * D4 = GPIO23 -> SDA + * D5 = GPIO24 -> SCL + * D6 = GPIO11 -> TX (disabled, reused for backlight control) + * D7 = GPIO12 -> touch IRQ (active low) + * D8 = GPIO8 -> SCK + * D9 = GPIO9 -> MISO + * D10 = GPIO10 -> MOSI + */ + +#include +#include +#include + +/ { + chosen { + zephyr,display = &gc9a01_round_display; + zephyr,touch = &chsc6x_round_display; + }; + + lvgl_pointer { + compatible = "zephyr,lvgl-pointer-input"; + input = <&chsc6x_round_display>; + }; + + vbatt { + compatible = "voltage-divider"; + io-channels = <&adc0 0>; + output-ohms = <470000>; + full-ohms = <940000>; + }; + + aliases { + rtc = &pcf8563_round_display; + }; +}; + +&pinctrl { + /* I2C0: SDA = GPIO23 (D4), SCL = GPIO24 (D5) */ + i2c0_custom: i2c0_custom { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; + + /* SPI2: SCK = GPIO8 (D8), MISO = GPIO9 (D9), MOSI = GPIO10 (D10) */ + spim2_custom: spim2_custom { + group1 { + pinmux = , + ; + }; + group2 { + pinmux = ; + output-low; + }; + }; +}; + +/* D6 = GPIO11 reused for backlight, disable UART TX */ +&uart0 { + status = "disabled"; +}; + +&adc0 { + status = "okay"; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + pinctrl-0 = <&i2c0_custom>; + pinctrl-names = "default"; + + /* RTC, address 0x51 */ + pcf8563_round_display: pcf8563@51 { + status = "okay"; + compatible = "nxp,pcf8563"; + reg = <0x51>; + }; + + /* Touch controller, IRQ = GPIO12 (D7) */ + chsc6x_round_display: chsc6x@2e { + status = "okay"; + compatible = "chipsemi,chsc6x"; + reg = <0x2e>; + irq-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + screen-width = <240>; + screen-height = <240>; + }; +}; + +&spi2 { + status = "okay"; + pinctrl-0 = <&spim2_custom>; + pinctrl-names = "default"; + /* D1 = GPIO0 -> display CS + * D2 = GPIO25 -> SD card CS */ + cs-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>, + <&gpio0 25 GPIO_ACTIVE_LOW>; + + /* MIPI DBI SPI wrapper for GC9A01, DC = GPIO7 (D3) */ + round_display_mipi_dbi: mipi_dbi { + compatible = "zephyr,mipi-dbi-spi"; + spi-dev = <&spi2>; + dc-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; + write-only; + #address-cells = <1>; + #size-cells = <0>; + + gc9a01_round_display: gc9a01@0 { + status = "okay"; + compatible = "galaxycore,gc9x01x"; + reg = <0>; + mipi-max-frequency = ; + pixel-format = ; + width = <240>; + height = <240>; + display-inversion; + }; + }; + + /* SD card slot, CS = GPIO25 (D2) */ + sdhc_round_display: sdhc@1 { + compatible = "zephyr,sdhc-spi-slot"; + reg = <1>; + status = "okay"; + spi-max-frequency = ; + mmc { + compatible = "zephyr,sdmmc-disk"; + disk-name = "SD"; + status = "okay"; + }; + }; +}; +``` + +
+ +3. Compile e faça o flash + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/drivers/display + +sudo chmod 666 /dev/ttyACM0 + +west flash +``` + +#### Resultado + +Após fazer o flash do firmware, pressione a tecla e o conteúdo da tela será exibido no Round Display for Seeed Studio XIAO. + +
+ +## Conclusão + +Acredito que, até agora, você basicamente dominou o desenvolvimento com Zephyr no XIAO ESP32-C5. Se tiver qualquer ideia criativa, sinta-se à vontade para desenvolver seus projetos e compartilhá-los com a comunidade, permitindo que outros vejam seus excelentes trabalhos. + +## Suporte técnico e discussão sobre o produto + +Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades. + +
+ + +
+ +
+ + +
diff --git a/sites/pt-BR/sidebars.js b/sites/pt-BR/sidebars.js index 51f7da53ec3bb7..32207599d2b1e2 100644 --- a/sites/pt-BR/sidebars.js +++ b/sites/pt-BR/sidebars.js @@ -1297,6 +1297,7 @@ const sidebars = { label: 'RTOS', items: [ 'Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/pt_XIAO_ESP32C5_With_FreeRTOS', + 'Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/pt_XIAO_ESP32C5_With_Zephyr', ], }, ], diff --git a/sites/zh-CN/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/cn_XIAO_ESP32C5_With_Zephyr.md b/sites/zh-CN/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/cn_XIAO_ESP32C5_With_Zephyr.md new file mode 100644 index 00000000000000..af536be6b0e2fe --- /dev/null +++ b/sites/zh-CN/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/cn_XIAO_ESP32C5_With_Zephyr.md @@ -0,0 +1,547 @@ +--- +title: XIAO ESP32-C5 与 Zephyr(RTOS) +keywords: + - xiao + - esp32c5 + - Zephyr + - idf +image: https://files.seeedstudio.com/wiki/XIAO_ESP32C5/Getting_started/Seeed-Studio-XIAO-ESP32C5_1.webp +slug: /xiao_esp32c5_with_zephyr +sku: 100010048 +last_update: + date: 4/28/2026 + author: Zeller +createdAt: '2026-04-28' +updatedAt: '2026-04-30' +url: https://wiki.seeedstudio.com/cn/xiao_esp32c5_with_zephyr/ +--- + +[**Zephyr**](https://www.zephyrproject.org/) 操作系统基于一个小体积内核设计,用于资源受限和嵌入式系统:从简单的嵌入式环境传感器和 LED 可穿戴设备,到复杂的嵌入式控制器、智能手表和物联网无线应用。 + +## 入门指南 + +### 硬件准备 + +请准备一块 XIAO ESP32-C5 开发板,以支持后续的验证和相关工作。 + +
+ + + + + + + + + + +
Seeed Studio XIAO ESP32-C5
+
+ +### 软件准备 + +本文基于 Ubuntu 24.04 LTS 进行开发和验证。请参考相关文档,在 Ubuntu、Mac 和 Windows 上部署开发环境。[Zephyr 入门指南](https://docs.zephyrproject.org/latest/develop/getting_started/index.html) + +:::tip +官方推荐使用 **Ubuntu 24.04 LTS 及更高版本**,这可以有效避免由环境依赖问题带来的麻烦,节省你的时间。 +::: + +1. 激活虚拟环境。 + +创建一个新的虚拟环境: + +```bash +python3 -m venv ~/zephyrproject/.venv +``` + +激活虚拟环境: + +```bash +source ~/zephyrproject/.venv/bin/activate +``` + +2. 打开 **blinky** 文件夹。 + +```bash +cd ~/zephyrproject/zephyr/samples/basic/blinky +``` + +3. 更新 overlay 文件和 prj.conf 文件。 + +默认串口日志输出映射到 GPIO11 和 GPIO12,对应 XIAO ESP32‑C5 上的 D6 和 D7。 +若要使用 USB Serial/JTAG 进行日志输出,需要将串口引脚重新映射到 USB Serial/JTAG 对应的引脚。同时,根据 XIAO ESP32‑C5 的硬件设计,还必须将用户 LED 引脚配置为 GPIO27。 + +:::tip +如果你不熟悉 XIAO ESP32-C5 的引脚分布,可以查看 [Pinlist](https://wiki.seeedstudio.com/cn/xiao_esp32c5_getting_started/#硬件概述) +::: + +创建一个新的 overlay 文件 + +```bash +nano ~/zephyrproject/zephyr/samples/basic/blinky/boards/esp32c5_devkitc_esp32c5_hpcore.overlay +``` + + 添加 overlay 内容 + +```overlay +/ { + chosen { + zephyr,console = &usb_serial; + zephyr,shell-uart = &usb_serial; + }; + + aliases { + led0 = &led0; + }; + + leds { + compatible = "gpio-leds"; + led0: led_0 { + gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>; + label = "LED0"; + }; + }; +}; + +&usb_serial { + status = "okay"; +}; +``` + +添加完成后,按 Ctrl + O 保存文件,然后按 Ctrl + X 退出。 + +修改 prj.conf 的内容 + +```bash +nano ~/zephyrproject/zephyr/samples/basic/blinky/boards/prj.conf +``` + +将内容修改为如下所示,主要是调整 UART 的映射关系。 + +```prj +CONFIG_USB_DEVICE_STACK=y +CONFIG_USB_CDC_ACM=y +CONFIG_UART_LINE_CTRL=y +CONFIG_GPIO=y +CONFIG_LOG=y +``` + +4. 将目标开发板设置为 **esp32c5_devkitc** 并开始编译。 + +:::tip +**hpcore** 代表 High Performance Core(高性能内核)。它通常用于运行主程序和对性能要求较高的任务。 +::: + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/basic/blinky +``` + +编译成功现象 + +
+ +5. 烧录设备 + +:::tip +在将程序烧录到设备之前,必须先将 XIAO ESP32-C5 设置为 Bootloader 下载模式。 + +方法: +按住 BOOT 按钮,然后给设备上电。 +::: + +检查串口设备。设备通常为 `/dev/ttyACM0`。 + +```bash +ls /dev/ttyACM* +``` + +
+ +由于串口设备文件存在访问权限限制,需要修改其权限以支持读写操作。 + +```bash +sudo chmod 666 /dev/ttyACM0 +``` + +指定串口设备并开始下载。 + +```bash +west flash --esp-device /dev/ttyACM0 +``` + +下载成功的示例输出 + +
+ +6. 现象演示 + +下载成功后,LED 将开始闪烁。 + +
+ +打开串口,将打印 LED ON 或 LED OFF 的日志信息。 + +```bash +west espressif monitor --port /dev/ttyACM0 +``` + +
+ +## 应用 + +XIAO ESP32-C5 支持使用兼容 XIAO 系列的扩展板,从而轻松扩展外设和应用场景。 + +### 使用 Expansion Board Base for XIAO + +Expansion Board Base for XIAO 配备 IIC 接口和板载 0.96 英寸 OLED 屏幕。 + +#### 硬件准备 + +
+ + + + + + + + + + + + + +
Seeed Studio XIAO ESP32-C5Seeed Studio Expansion Board Base for XIAO with Grove OLED
+
+ +#### 软件准备 + +根据 XIAO ESP32-C5 的引脚定义,GPIO23 对应 SDA,即 D4;GPIO24 对应 SCL,即 D5。需要创建并修改设备树节点的内容。 + +1. 打开显示示例。 + +```bash +cd ~/zephyrproject/zephyr/samples/drivers/display +``` + +2. 添加 overlay 文件。 + +```bash +nano esp32c5_devkitc_esp32c5_hpcore.overlay +``` + +添加设备树节点内容。 + +```dts +#include +#include + +&pinctrl { + i2c0_custom: i2c0_custom { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + pinctrl-0 = <&i2c0_custom>; + pinctrl-names = "default"; + + ssd1306_128x64: ssd1306@3c { + compatible = "solomon,ssd1306"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + prechargep = <0x22>; + }; +}; + +/ { + chosen { + zephyr,display = &ssd1306_128x64; + }; +}; +``` + +3. 编译并烧录 + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/drivers/display + +sudo chmod 666 /dev/ttyACM0 + +west flash +``` + +#### 结果 + +Expansion Board Base for XIAO 将显示屏幕效果。 + +
+ +### 使用 Round Display for Seeed Studio XIAO + +Round Display for Seeed Studio XIAO 是一款专为 XIAO 系列设计的圆形显示屏,板载 GC9A01 驱动芯片,并采用标准 SPI 通信协议。 + +#### 硬件准备 + +
+ + + + + + + + + + + + + +
Seeed Studio XIAO ESP32-C5Round Display for Seeed Studio XIAO
+
+ +#### 软件准备 + +1. 打开显示示例。 + +```bash +cd ~/zephyrproject/zephyr/samples/drivers/display +``` + +2. 添加 overlay 文件。 + +```bash +nano esp32c5_devkitc_esp32c5_hpcore.overlay +``` + +添加设备树节点内容。 + +
+esp32c5_devkitc_esp32c5_hpcore.overlay + +```dts +/* + * Copyright (c) 2026 + * SPDX-License-Identifier: Apache-2.0 + * + * Standalone overlay for GC9A01 round display on XIAO ESP32-C5. + * Does not depend on seeed_xiao_round_display shield. + * + * Pin mapping (XIAO ESP32-C5): + * D1 = GPIO0 -> display CS (active low) + * D2 = GPIO25 -> SD card CS (active low) + * D3 = GPIO7 -> display DC (active high) + * D4 = GPIO23 -> SDA + * D5 = GPIO24 -> SCL + * D6 = GPIO11 -> TX (disabled, reused for backlight control) + * D7 = GPIO12 -> touch IRQ (active low) + * D8 = GPIO8 -> SCK + * D9 = GPIO9 -> MISO + * D10 = GPIO10 -> MOSI + */ + +#include +#include +#include + +/ { + chosen { + zephyr,display = &gc9a01_round_display; + zephyr,touch = &chsc6x_round_display; + }; + + lvgl_pointer { + compatible = "zephyr,lvgl-pointer-input"; + input = <&chsc6x_round_display>; + }; + + vbatt { + compatible = "voltage-divider"; + io-channels = <&adc0 0>; + output-ohms = <470000>; + full-ohms = <940000>; + }; + + aliases { + rtc = &pcf8563_round_display; + }; +}; + +&pinctrl { + /* I2C0: SDA = GPIO23 (D4), SCL = GPIO24 (D5) */ + i2c0_custom: i2c0_custom { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; + + /* SPI2: SCK = GPIO8 (D8), MISO = GPIO9 (D9), MOSI = GPIO10 (D10) */ + spim2_custom: spim2_custom { + group1 { + pinmux = , + ; + }; + group2 { + pinmux = ; + output-low; + }; + }; +}; + +/* D6 = GPIO11 reused for backlight, disable UART TX */ +&uart0 { + status = "disabled"; +}; + +&adc0 { + status = "okay"; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + pinctrl-0 = <&i2c0_custom>; + pinctrl-names = "default"; + + /* RTC, address 0x51 */ + pcf8563_round_display: pcf8563@51 { + status = "okay"; + compatible = "nxp,pcf8563"; + reg = <0x51>; + }; + + /* Touch controller, IRQ = GPIO12 (D7) */ + chsc6x_round_display: chsc6x@2e { + status = "okay"; + compatible = "chipsemi,chsc6x"; + reg = <0x2e>; + irq-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + screen-width = <240>; + screen-height = <240>; + }; +}; + +&spi2 { + status = "okay"; + pinctrl-0 = <&spim2_custom>; + pinctrl-names = "default"; + /* D1 = GPIO0 -> display CS + * D2 = GPIO25 -> SD card CS */ + cs-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>, + <&gpio0 25 GPIO_ACTIVE_LOW>; + + /* MIPI DBI SPI wrapper for GC9A01, DC = GPIO7 (D3) */ + round_display_mipi_dbi: mipi_dbi { + compatible = "zephyr,mipi-dbi-spi"; + spi-dev = <&spi2>; + dc-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; + write-only; + #address-cells = <1>; + #size-cells = <0>; + + gc9a01_round_display: gc9a01@0 { + status = "okay"; + compatible = "galaxycore,gc9x01x"; + reg = <0>; + mipi-max-frequency = ; + pixel-format = ; + width = <240>; + height = <240>; + display-inversion; + }; + }; + + /* SD card slot, CS = GPIO25 (D2) */ + sdhc_round_display: sdhc@1 { + compatible = "zephyr,sdhc-spi-slot"; + reg = <1>; + status = "okay"; + spi-max-frequency = ; + mmc { + compatible = "zephyr,sdmmc-disk"; + disk-name = "SD"; + status = "okay"; + }; + }; +}; +``` + +
+ +3. 编译并烧录 + +```bash +west build -p always -b esp32c5_devkitc/esp32c5/hpcore ~/zephyrproject/zephyr/samples/drivers/display + +sudo chmod 666 /dev/ttyACM0 + +west flash +``` + +#### 结果 + +在烧录固件后,按下按键,屏幕内容将显示在 Round Display for Seeed Studio XIAO 上。 + +
+ +## 总结 + +相信此时你已经基本掌握了在 XIAO ESP32-C5 上进行 Zephyr 开发。如果你有任何创意想法,欢迎自由开发你的项目并与社区分享,让更多人看到你的优秀作品。 + +## 技术支持与产品讨论 + +感谢你选择我们的产品!我们将为你提供多种支持,以确保你在使用我们产品的过程中尽可能顺利。我们提供多种沟通渠道,以满足不同的偏好和需求。 + +
+ + +
+ +
+ + +
diff --git a/sites/zh-CN/sidebars.js b/sites/zh-CN/sidebars.js index 24d75160014a80..b933b335a6c58e 100644 --- a/sites/zh-CN/sidebars.js +++ b/sites/zh-CN/sidebars.js @@ -1298,6 +1298,7 @@ const sidebars = { label: 'RTOS', items: [ 'Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/cn_XIAO_ESP32C5_With_FreeRTOS', + 'Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C5/RTOS/cn_XIAO_ESP32C5_With_Zephyr', ], }, ],