zephyr/boards/arm/mec1501modular_assy6885/doc/index.rst

320 lines
12 KiB
ReStructuredText

.. _mec1501modular_assy6885:
MEC1501 Modular card ASSY6885
#############################
Overview
********
The MEC1501 Modular card ASSY6885 is a development board to evaluate the Microchip
MEC15XX series microcontrollers. This board can work standalone or be mated with
any platform that complies with MECC specification.
.. image:: ./mec1501modular_assy6885.png
:width: 600px
:align: center
:alt: MEC1501 Modular ASSY 6885
Hardware
********
- MEC1501HB0SZ ARM Cortex-M4 Processor
- 256 KB RAM and 64 KB boot ROM
- GPIO headers
- UART1 using microUSB
- PECI interface 3.0
- 10 SMBUS instances
- FAN, PMW and TACHO pins
- VCI interface
- Independent Hardware Driven PS/2 Ports
At difference from MEC15xx evaluation board, modular MEC1501 exposes the pins
in 2 different ways:
1) Standalone mode via headers
- GPIOs
- PWM5
- JTAG/SWD, ETM and MCHP Trace ports
- eSPI bus
- SMB0
2) Mated mode with another platform that has a high density MECC connector.
- FAN0, PWM0, SMB0, SMB1, SMB4 and SMB5
- eSPI bus
- Breathing/Blinking LEDs
The board is powered through the +5V USB Micro A connector or from the MECC connector.
For more information about the SOC please see the `MEC1501 Reference Manual`_
Supported Features
==================
The mec1501modular_assy6885 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 |
+-----------+------------+-------------------------------------+
| ESPI | on-chip | espi |
+-----------+------------+-------------------------------------+
| I2C | on-chip | i2c |
+-----------+------------+-------------------------------------+
| PINMUX | on-chip | pinmux |
+-----------+------------+-------------------------------------+
| RTOS | on-chip | timer |
+-----------+------------+-------------------------------------+
| TIMER | on-chip | counter |
+-----------+------------+-------------------------------------+
| PWM | on-chip | pwm |
+-----------+------------+-------------------------------------+
| ADC | on-chip | adc |
+-----------+------------+-------------------------------------+
| WATCHDOG | on-chip | watchdog |
+-----------+------------+-------------------------------------+
| PS2 | on-chip | ps2 |
+-----------+------------+-------------------------------------+
Other hardware features are not currently supported by Zephyr (at the moment)
The default configuration can be found in the
:zephyr_file:`boards/arm/mec1501modular_assy6885/mec1501modular_assy6885_defconfig`
Kconfig file.
Connections and IOs
===================
This evaluation board kit is comprised of the following HW blocks:
- MEC1501 Modular Card ASSY 6885 Rev A0 `MEC1501 Modular EC Card - Assy_6885 Rev A0p1`_
System Clock
============
The MEC1501 MCU is configured to use the 48Mhz 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 MEC1501 Modular Assy 6885 Rev A1p0
=====================================================
Power-related jumpers
---------------------
If you wish to power from type A/B connector ``P10`` set the jumper ``JP35 1-2``.
If you wish to power through MECC connector ``P1`` and mate to external platform,
set the jumper to ``JP35 3-4``.
.. note:: A single jumper is required in JP35.
+------+---------+---------+------+------+------+----------+
| JP30 | JP31 | JP32 | JP33 | JP34 | JP40 | JP21 |
| VTR3 | VTR_PLL | VTR_REG | VTR1 | VTR2 | 3.3V | VREF_ADC |
+======+=========+=========+======+======+======+==========+
| 1-2 | 1-2 | 1-2 | 1-2 | 1-2 | 1-2 | 1-2 |
+------+---------+---------+------+------+------+----------+
+------+------------+------+----------+
| JP6 | JP36 | JP27 | JP4 |
| VBAT | VTR_ANALOG | PECI | VREF_VTT |
+======+============+======+==========+
| 2-3 | 1-2 | 2-3 | open |
+------+------------+------+----------+
These jumpers configure nRESETI and JTAG_STRAP respectively.
+-----------+---------------+
| JP22 | JP29 |
| (nRESETI) | (JTAG_STRAP) |
+===========+===============+
| 11-12 | 1-2 |
+-----------+---------------+
Boot-ROM Straps
---------------
These jumpers configure MEC1501 Boot-ROM straps.
+-------------+------------+--------------+-------------+
| JP37 | J6 | JP41 | JP23 |
| (CMP_STRAP) | (CR_STRAP) | (VTR2_STRAP) | (BSS_STRAP) |
+=============+============+==============+=============+
| 1-2 | 1-2 | 1-2 | 3-4 |
+-------------+------------+--------------+-------------+
``JP23 3-4`` pulls SHD SPI CS0# up to VTR2. MEC1501 Boot-ROM samples
SHD SPI CS0# and if high, it loads code from SHD SPI.
This is the recommended setup.
+-------------+------------+----------------------------+
| CR_STRAP | BSS_STRAP | SOURCE |
+-------------+------------+----------------------------+
| 0 | X | Use 3.3V Private SPI |
+-------------+------------+----------------------------+
| 1 | 0 | Use eSPI Flash channel |
+-------------+------------+----------------------------+
| | 1 | Use 3.3V Shared channel(R)|
+-------------+------------+----------------------------+
Power management
----------------
``JP20 2-3`` is required so all GPIOs powered by VTR3 rail worked at 1.8V.
.. note:: External 1.8V needs to be connected to JP13.1
+-------------------+-----------------+
| JP20 | JP13 |
| (VTR3 selection) | (1.8V source) |
+===================+=================+
| 2-3 | 1.8V to pin 1 |
+-------------------+-----------------+
Jumper location map
-------------------
.. code-block:: none
+--------------------------------------------------------------------------------------+
| |------------| +----------+ J10 || |
| [BT1] + +------------+ J50 ++ ++ || |
| | JP38 JP43 ++ || || |
| + + + +-+ JP4 + + JP26 || || |
| JP6 + + + + + + + + || || |
| JP31 ++ JP32 JP36 +-+ JP27 + + + + J6 || |
| JP18 JP37 JP41 JP42 ++ |
| ++ + + +--------+ J48 |
| || JP21 + + +--------+ JP22 +----------+ |
| J2 || + JP34 JP30 J11 ++ |
| ++ + J44 || |
| ++ +----------------+ || |
| +---------------+ || + JP24 |----------------| ++ |
| |---------------| ++ + +----------+ +----------------+ J47 |
| JP20 +---------------+ JP23 JP40 +----------+ ++ |
| + ++ JP29 || |
| + + +----------+ + || |
| J52+---------------+ + + +----------+ J5 +-------------+ ++ |
| J45+---------------+ JP33 TP57 JP25 +-------------+ J4 J49 |
| |
| ++ TP4 +----------+ ++ |
| ++ + + + + + + TP61 +----------+ ++ |
| JP28 + + + + + TP65 + TP60 J51 JP35 |
| TP58 JP16 JP11 JP13 JP15 JP10 |
| TP5 |
| TP6 TP1 |
+--------------------------------------------------------------------------------------+
Programming and Debugging
*************************
Setup
=====
#. Clone the `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, or by setting an environment variable
``EVERGLADES_SPI_GEN``, for example:
.. code-block:: console
export EVERGLADES_SPI_GEN=<path to tool>/everglades_spi_gen_lin64
Note that the tools for Linux and Windows have different file names.
#. If needed, a custom SPI image configuration file can be specified
to override the default one.
.. code-block:: console
export EVERGLADES_SPI_CFG=custom_spi_cfg.txt
Building
==========
#. Build :ref:`hello_world` application as you would normally do.
#. Once you have ``zephyr.bin``, use the `SPI Image Gen`_ microchip tool
to create the final binary. You need the output from this tool to flash
in the SHD SPI memory.
Flashing
========
#. Connect Dediprog into header ``J2``.
#. Flash the SPI NOR ``U3`` at offset 0x0 using Dediprog SF100
or a similar tool for flashing SPI chips.
#. Run your favorite terminal program to listen for output. Under Linux the
terminal should be :code:`/dev/ttyACM0`. For example:
.. code-block:: console
$ minicom -D /dev/ttyACM0 -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
#. Connect the MEC1501MODULAR_ASSY6885 board to your host computer using the
UART1 port and apply power.
You should see ``"Hello World! mec1501modular_assy6885"`` in your terminal.
Debugging
=========
This board comes with a Cortex ETM port which facilitates tracing and debugging
using a single physical connection. In addition, it comes with sockets for
JTAG only sessions.
HW Issues
=========
In case you don't see your application running, please make sure ``LED1`` is lit.
If is off, then check the power related jumpers again.
References
**********
.. target-notes::
.. _MEC1501 Preliminary Data Sheet:
https://github.com/MicrochipTech/CPGZephyrDocs/blob/master/MEC1501/MEC1501_Datasheet.pdf
.. _MEC1501 Reference Manual:
https://github.com/MicrochipTech/CPGZephyrDocs/blob/master/MEC1501/MEC1501_Datasheet.pdf
.. _MEC1501 Modular EC Card - Assy_6885 Rev A0p1:
https://github.com/MicrochipTech/CPGZephyrDocs/blob/master/MEC1501/MEC1501%20Modular%20EC%20Card%20-%20Assy_6885%20Rev%20A0p1%20-%20SCH.pdf
.. _SPI Image Gen:
https://github.com/MicrochipTech/CPGZephyrDocs/tree/master/MEC1501/SPI_image_gen