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:
Hold the ESP32 bootmode button when you plug-in your board.
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
Note the case-sensitivity of the lpf-file.
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 |