Loading...
Searching...
No Matches
periph_conf.h File Reference

Peripheral configurations for the Wemos ESP32-C3 mini board. More...

Detailed Description

Peripheral configurations for the Wemos ESP32-C3 mini board.

For detailed information about the peripheral configuration for ESP32-C3 boards, see section Common Peripherals.

There are two board versions available on the market with a different pinout of the ADC channels and the SPI interface. Which version is used is determined by activating a pseudo module for the corresponding version:

  • v1.0.0, module esp32c3_wemos_mini_v1_0_0
  • v2.1.0, module esp32c3_wemos_mini_v2_1_0 (default)

To specify which board version is used, simply add the variable definition USEMODULE=... to the make command line, for example:

USEMODULE=esp32c3_wemos_mini_v1_0_0 BOARD=esp32c3-wemos-min make ...

If the board version is not specified, version v2.1.0 is used by default.

Note
Most definitions can be overridden by an application-specific board configuration if necessary.
Author
Gunar Schorcht gunar.nosp@m.@sch.nosp@m.orcht.nosp@m..net

Definition in file periph_conf.h.

#include <stdint.h>
#include "periph_conf_common.h"
+ Include dependency graph for periph_conf.h:

Go to the source code of this file.

ADC and DAC channel configuration

#define ADC_GPIOS   { GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5 }
 Declaration of GPIOs that can be used as ADC channels.
 

I2C configuration

For generic boards, only one I2C interface I2C_DEV(0) is defined.

The GPIOs listed in the configuration are only initialized as I2C signals when module periph_i2c is used. Otherwise they are not allocated and can be used for other purposes.

#define I2C0_SPEED   I2C_SPEED_FAST
 I2C bus speed of I2C_DEV(0)
 
#define I2C0_SCL   GPIO10
 SCL signal of I2C_DEV(0)
 
#define I2C0_SDA   GPIO8
 SDA signal of I2C_DEV(0)
 

PWM channel configuration

For generic boards, two PWM devices are configured.

These devices contain all GPIOs that are not defined as I2C, SPI or UART for this board. Generally, all outputs pins could be used as PWM channels.

Note
As long as the according PWM device is not initialized with the pwm_init, the GPIOs declared for this device can be used for other purposes.
#define PWM0_GPIOS   { GPIO2, GPIO6 }
 Declaration of the channels for device PWM_DEV(0), at maximum PWM_CHANNEL_NUM_DEV_MAX.
 

SPI configuration

Note
  • For compatibility with [Wemos D1 mini shields] (https://www.wemos.cc/en/latest/d1_mini_shield/index.html), FSPI signals do not use direct I/O (IOMUX pin functions) but are routed through the GPIO matrix as required for D1 mini shields. This limits the SPI clock speed to 26 MHz instead of 80 MHz SPI clock speed.
  • The GPIOs listed in the configuration are not initialized as SPI signals until the corresponding SPI interface is used for the first time by either calling the spi_init_cs function or the spi_acquire function. That is, they are not allocated as SPI signals before and can be used for other purposes as long as the SPI interface is not used.
#define SPI0_CTRL   FSPI
 FSPI is used as SPI_DEV(0)
 
#define SPI0_SCK   GPIO1
 FSPI SCK signal routed to GPIO2 in GPIO matrix.
 
#define SPI0_MISO   GPIO0
 FSPI SCK signal routed to GPIO3 in GPIO matrix.
 
#define SPI0_MOSI   GPIO4
 FSPI SCK signal routed to GPIO4 in GPIO matrix.
 
#define SPI0_CS0   GPIO5
 CS pin controlled in software.
 

UART configuration

ESP32-C3 provides 2 UART interfaces at maximum:

UART_DEV(0) uses fixed standard configuration.
UART_DEV(1) is not used.

#define UART0_TXD   GPIO21
 direct I/O pin for UART_DEV(0) TxD, can't be changed
 
#define UART0_RXD   GPIO20
 direct I/O pin for UART_DEV(0) RxD, can't be changed
 

Macro Definition Documentation

◆ ADC_GPIOS

#define ADC_GPIOS   { GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5 }

Declaration of GPIOs that can be used as ADC channels.

For generic boards, all ADC pins that have broken out are declared as ADC channels.

Note
As long as the GPIOs listed in ADC_GPIOS are not initialized as ADC channels with the adc_init function, they can be used for other purposes.

Definition at line 63 of file periph_conf.h.

◆ I2C0_SCL

#define I2C0_SCL   GPIO10

SCL signal of I2C_DEV(0)

Definition at line 82 of file periph_conf.h.

◆ I2C0_SDA

#define I2C0_SDA   GPIO8

SDA signal of I2C_DEV(0)

Definition at line 85 of file periph_conf.h.

◆ I2C0_SPEED

#define I2C0_SPEED   I2C_SPEED_FAST

I2C bus speed of I2C_DEV(0)

Definition at line 79 of file periph_conf.h.

◆ PWM0_GPIOS

#define PWM0_GPIOS   { GPIO2, GPIO6 }

Declaration of the channels for device PWM_DEV(0), at maximum PWM_CHANNEL_NUM_DEV_MAX.

Definition at line 111 of file periph_conf.h.

◆ SPI0_CS0

#define SPI0_CS0   GPIO5

CS pin controlled in software.

Definition at line 164 of file periph_conf.h.

◆ SPI0_CTRL

#define SPI0_CTRL   FSPI

FSPI is used as SPI_DEV(0)

Definition at line 152 of file periph_conf.h.

◆ SPI0_MISO

#define SPI0_MISO   GPIO0

FSPI SCK signal routed to GPIO3 in GPIO matrix.

Definition at line 158 of file periph_conf.h.

◆ SPI0_MOSI

#define SPI0_MOSI   GPIO4

FSPI SCK signal routed to GPIO4 in GPIO matrix.

Definition at line 161 of file periph_conf.h.

◆ SPI0_SCK

#define SPI0_SCK   GPIO1

FSPI SCK signal routed to GPIO2 in GPIO matrix.

Definition at line 155 of file periph_conf.h.

◆ UART0_RXD

#define UART0_RXD   GPIO20

direct I/O pin for UART_DEV(0) RxD, can't be changed

Definition at line 180 of file periph_conf.h.

◆ UART0_TXD

#define UART0_TXD   GPIO21

direct I/O pin for UART_DEV(0) TxD, can't be changed

Definition at line 179 of file periph_conf.h.