blob: 457cb85edaa0109ae9edcff421a35699f873ae05 [file] [log] [blame]
.. _mec172xmodular_6930:
Microchip 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.
.. image:: ./mec172xmodular_assy6930.jpg
:width: 576px
:align: center
:alt: MEC172x Modular ASSY 6930
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`_
At difference from MEC172x evaluation board, modular MEC172x exposes the pins in 2 different ways:
1) Standalone mode via headers
- GPIOs
- JTAG port
- eSPI bus
- I2C0, I2C1 and I2C6
- PWM1, PWM2, PWM3
- Shared SPI
- Keyboard Interface
2) 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
:zephyr_file:`boards/arm/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`_
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
=====================================================
Power-Related Jumpers
---------------------
If you wish to power from type A/B connector ``P1`` set the jumper ``JP22 1-2``.
This is required for standalone mode.
If you wish to power through MECC connector ``P2`` and mate to external platform,
set the jumper to ``JP22 2-3``.
NOTE: A single jumper is required in JP22.
If you wish to set VTR2 to 3.3V, set the jumper ``JP26 2-3``.
This is required for Windows application.
If you wish to set VTR2 to 1.8V, set the jumper ``JP26 1-2``.
This is required for Chrome application.
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`_.
Linux version source code can be found at `SF100 Linux GitHub`_.
Follow the `SF100 Linux manual`_ to complete setup of the SF100 programmer.
For Linux please make sure that you copied ``60-dediprog.rules``
from the ``SF100Linux`` folder to the :code:`/etc/udev/rules.s` (or rules.d)
then restart service using:
.. code-block:: console
$ udevadm control --reload
Add directory with program ``dpcmd`` (on Linux)
or ``dpcmd.exe`` (on Windows) to your ``PATH``.
#. Clone the `MEC172x SPI Image Gen`_ repository or download the files within
that directory.
#. Make the image generation available for Zephyr, by making the tool
searchable by path, for example:
.. code-block:: console
-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.
.. code-block:: console
-DMEC172X_SPI_CFG=<path to spi_cfg file>/spi_cfg.txt
#. Example command to generate 128MBit spi image for hello_world:
.. code-block:: console
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/arm/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 :ref:`hello_world` application as you would normally do.
#. The file :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 :code:`/dev/ttyUSB0`. Do not close it.
For example:
.. code-block:: console
$ 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.
.. code-block:: console
$ 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.
If ``LED1`` 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.
References
**********
.. target-notes::
.. _MEC172x Reference Manual:
https://github.com/MicrochipTech/CPGZephyrDocs/blob/master/MEC172x/MEC172x-Data-Sheet.pdf
.. _MEC172x Modular EC Card - Assy_6930 Rev B1p1:
https://github.com/MicrochipTech/CPGZephyrDocs/blob/master/MEC172x/MEC172X-MECC_Assy_6930_B1p1-SCH.pdf
.. _MEC172x SPI Image Gen:
https://github.com/MicrochipTech/CPGZephyrDocs/tree/master/MEC172x/SPI_image_gen
.. _SF100 Linux GitHub:
https://github.com/DediProgSW/SF100Linux
.. _SF100 Product page:
https://www.dediprog.com/product/SF100
.. _SF100 Linux manual:
https://www.dediprog.com/download/save/727.pdf