ESP32-C3-MINI

The GECKO5Education contains an ESP32-C3-MINI-1 module. This module provides an 802.11/b/g/n and Bluetooth 5 (LE) wireless interface. Several of the interfaces from this module are connected to the FPGA.

Note

In case the ESP32-module never has been programmed, it will attach and detach itself all the time. To prevent this behavior there are 2 options:

  1. Hold the ESP32 bootmode button when you plug-in your board.

  2. Program the ESP32 with a dummy program, like hello world.

Using the ESP32-module

In this section you find a VHDL and Verilog top-level and the corresponding lpf-file that you can use for the ESP32-module.

Important

Although VHDL is case-insensitive, the lpf-file is not. Meaning that the port-names in the top-level entity need to be copied exactly in the lpf-file.

An example for a VHDL top-level entity is shown below:

library ieee;
use ieee.std_logic_1164.all;

entity toplevel is
  port ( espIO3   : inout std_logic;
         espIO4   : inout std_logic;
         espIO5   : inout std_logic;
         espIO6   : inout std_logic;
         espIO7   : inout std_logic;
         espIO10  : inout std_logic;
         espRxd   : inout std_logic;
         espTxd   : inout std_logic;
         ... );
end toplevel;

An example for a Verilog top-level is shown below:

module toplevel (
  inout wire espIO3,
             espIO4,
             espIO5,
             espIO6,
             espIO7,
             espIO10,
             espRxd,
             espTxd,
  ...);
  ...
endmodule

The required entries in the lpf-file are:

LOCATE COMP "espIO3" SITE "F2";
LOCATE COMP "espIO4" SITE "F4";
LOCATE COMP "espIO5" SITE "H4";
LOCATE COMP "espIO6" SITE "H5";
LOCATE COMP "espIO7" SITE "G5";
LOCATE COMP "espIO10" SITE "F3";
LOCATE COMP "espRxd" SITE "G3";
LOCATE COMP "espTxd" SITE "F5";
IOBUF PORT "espIO3" PULLMODE=NONE IO_TYPE=LVCMOS33;
IOBUF PORT "espIO4" PULLMODE=NONE IO_TYPE=LVCMOS33;
IOBUF PORT "espIO5" PULLMODE=NONE IO_TYPE=LVCMOS33;
IOBUF PORT "espIO6" PULLMODE=NONE IO_TYPE=LVCMOS33;
IOBUF PORT "espIO7" PULLMODE=NONE IO_TYPE=LVCMOS33;
IOBUF PORT "espIO10" PULLMODE=NONE IO_TYPE=LVCMOS33;
IOBUF PORT "espRxd" PULLMODE=NONE IO_TYPE=LVCMOS33;
IOBUF PORT "espTxd" PULLMODE=NONE IO_TYPE=LVCMOS33;

Important

  1. Note the case-sensitivity of the lpf-file.

  2. The tools require exactly one lpf-file, hence all assignments you use need to be in a single lpf-file.

Note

In the code snippets above all signals are defined as inout. The direction of these pins is dependent on the function of these pins as defined in the ESP32-module.

Programming the ESP32-module

A guide for programming the ESP32-module can be found here. In normal operating mode the ESP32-module will execute it’s firmware when the GECKO5Education board is plugged in to the computer. To be able to put the ESP32-module in debug mode, you have to hold the ESP3 bootmode button and either (a) remove and attach the GECKO5Education board to your computer, or (b) activate the Board reset button.

Summary

Below the table with all required information for the ESP-module:

Name:

FPGA pin:

IO_TYPE:

Name:

FPGA pin:

IO_TYPE:

gen. purpose IO 3

F2

LVCMOS33

gen. purpose IO 4

F4

LVCMOS33

gen. purpose IO 5

H4

LVCMOS33

gen. purpose IO 6

H5

LVCMOS33

gen. purpose IO 7

G5

LVCMOS33

gen. purpose IO 10

F3

LVCMOS33

uart rxd

G3

LVCMOS33

uart txd

F5

LVCMOS33