MEC172x Modular Card ASSY6930 (Rev. B)
Overview
The MEC172x Modular Card ASSY6930 (Rev. B) is a development board to evaluate the Microchip MEC172X series microcontrollers. This board can work standalone or be mated with any platform that complies with MECC specification.
Hardware
MEC172x (MEC1723, MEC1727 and MEC1728) ARM Cortex-M4 Processor
416 KB RAM and 128 KB boot ROM
UART1 using microUSB
PECI interface 3.0
FAN, PWM and TACHO pins
5 SMBus instances
eSPI header
VCI interface
1 hardware driven PS/2 ports
Keyboard interface headers
For more information about the SOC please see MEC172x Reference Manual [1]
At difference from MEC172x evaluation board, modular MEC172x exposes the pins in 2 different ways:
Standalone mode via headers
GPIOs
JTAG port
eSPI bus
I2C0, I2C1 and I2C6
PWM1, PWM2, PWM3
Shared SPI
Keyboard Interface
Mated mode with another platform that has a high density MECC connector
FAN, PWM8
I2C3 and I2C7
eSPI bus
The board is powered through the +5V USB micro-A connector or from the MECC connector.
Supported Features
The mec172xmodular_assy6930 (Rev. B) board configuration supports the following hardware features:
Interface |
Controller |
Driver/Component |
---|---|---|
NVIC |
on-chip |
nested vector interrupt controller |
SYSTICK |
on-chip |
systick |
UART |
on-chip |
serial port |
GPIO |
on-chip |
gpio |
I2C |
on-chip |
i2c |
PINMUX |
on-chip |
pinmux |
PS/2 |
on-chip |
ps2 |
KSCAN |
on-chip |
kscan |
TACH |
on-chip |
tachometer |
RPMFAN |
on-chip |
Fan speed controller |
Other hardware features are not currently supported by Zephyr (at the moment)
The default configuration can be found in the boards/microchip/mec172xmodular_assy6930/mec172xmodular_assy6930_defconfig Kconfig file.
Connections and IOs
This evaluation board kit is comprised of the following HW blocks:
MEC172x Modular ASSY 6930 Rev B1 MEC172x Modular EC Card - Assy_6930 Rev B1p1 [2]
System Clock
The MEC172x MCU is configured to use the 96Mhz internal oscillator with the on-chip PLL to generate a resulting EC clock rate of 12 MHz. See Processor clock control register in chapter 4 “4.0 POWER, CLOCKS, and RESETS” of the data sheet in the references at the end of this document.
Serial Port
UART1 is configured for serial logs.
Jumper settings
Please follow the jumper settings below to properly demo this board. Advanced users may deviate from this recommendation.
Jumper setting for MEC172x Modular Assy 6930 Rev B1p1
Boot-ROM Straps
This jumper configures MEC172x Boot-ROM strap.
JP23 (UART_BSTRAP) |
---|
1-2 |
JP23 1-2
pulls UART_BSTRAP to GND. MEC172x Boot-ROM samples UART_BSTRAP and if low,
UART interface is used for Crisis Recovery.
Boot Source Select
The jumpers below configure MEC172x to boot from Shared SPI, Slave Attached Flash (SAF) or Master Attached Flash (MAF).
Boot Source |
JP25 |
---|---|
Shared SPI or SAF |
5-6 |
MAF |
1-2, 4-6 |
Programming and Debugging
Setup
If you use Dediprog SF100 programmer, then setup it.
Windows version can be found at the SF100 Product page [5].
Linux version source code can be found at SF100 Linux GitHub [4]. Follow the SF100 Linux manual [6] to complete setup of the SF100 programmer. For Linux please make sure that you copied
60-dediprog.rules
from theSF100Linux
folder to the/etc/udev/rules.s
(or rules.d) then restart service using:$ udevadm control --reload
Add directory with program
dpcmd
(on Linux) ordpcmd.exe
(on Windows) to yourPATH
.Clone the MEC172x SPI Image Gen [3] repository or download the files within that directory.
Make the image generation available for Zephyr, by making the tool searchable by path, for example:
-DMEC172X_SPI_GEN=<path to spi_gen tool>/mec172x_spi_gen_lin_x86_64
Note that the tools for Linux and Windows have different file names.
The default MEC172X_SPI_CFG file is spi_cfg.txt located in ${BOARD_DIR}/support. Example of SPI_CFG for 4MBit (spi_cfg_4MBit.txt) and 128MBit (spi_cfg_128MBit.txt) SPI flash can be found in the same folder. If needed, a custom SPI image configuration file can be specified to override the default one.
-DMEC172X_SPI_CFG=<path to spi_cfg file>/spi_cfg.txt
Example command to generate 128MBit spi image for hello_world:
west build -p auto -b mec172xmodular_assy6930 samples/hello_world -- -DMEC172X_SPI_GEN=$HOME/CPGZephyrDocs/MEC172x/SPI_image_gen/mec172x_spi_gen_lin_x86_64 -DMEC172X_SPI_CFG=$HOME/zephyrproject/zephyr/boards/microchip/mec172xmodular_assy6930/support/spi_cfg_128MBit.txt
Wiring
Connect programmer to the header J2 on the ASSY6930 board, it will flash the SPI NOR chip
U2
. Make sure that your programmer’s offset is 0x0. For programming you can use Dediprog SF100 or a similar tool for flashing SPI chips.Dediprog Connector
J2
VCC
1
GND
2
CS
3
CLK
4
MISO
6
MOSI
5
Connect UART1 port of the mec172xmodular_assy6930 (Rev. B) board to your host computer using the RS232 cable.
Apply power to the board via a micro-USB cable. Configure this option by using a jumper between
JP22 1-2
.
Building
Build Hello World application as you would normally do.
The file
spi_image.bin
will be created if the build system can find the image generation tool. This binary image can be used to flash the SPI chip.
Flashing
Run your favorite terminal program to listen for output. Under Linux the terminal should be
/dev/ttyUSB0
. Do not close it.For example:
$ minicom -D /dev/ttyUSB0 -o
The -o option tells minicom not to send the modem initialization string. Connection should be configured as follows:
Speed: 115200
Data: 8 bits
Parity: None
Stop bits: 1
Flash your board using
west
from the second terminal window. Split first and second terminal windows to view both of them.$ west flash
Note
When west process started press Reset button
S1
and do not release it till the whole west process will not be finished successfully.You should see
"Hello World! mec172xmodular_assy6930"
in the first terminal window. If you don’t see this message, press the Reset button and the message should appear.
Debugging
J1
header on the board allows for JTAG connections for debug.
Troubleshooting
In case you don’t see your application running, please make sure
LED1
is lit. IfLED1
is off, check the power-related jumpers again.If you can’t program the board using Dediprog, disconnect and reconnect cable connected to
P1
and try again.If Dediprog can’t detect the onboard flash, press the board’s
S1
Reset button and try again.