| .. _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 |