Nuvoton NPCX9M6F_EVB
Overview
The NPCX9M6F_EVB kit is a development platform to evaluate the Nuvoton NPCX9 series microcontrollers. This board needs to be mated with part number NPCX996F.
Hardware
ARM Cortex-M4F Processor
256 KB RAM and 64 KB boot ROM
ADC & GPIO headers
UART0 and UART1
FAN PWM interface
Jtag interface
Intel Modular Embedded Controller Card (MECC) headers
Supported Features
The following features are supported:
Interface |
Controller |
Driver/Component |
---|---|---|
NVIC |
on-chip |
nested vector interrupt controller |
ADC |
on-chip |
adc controller |
CLOCK |
on-chip |
reset and clock control |
GPIO |
on-chip |
gpio |
I2C |
on-chip |
i2c port/controller |
PINMUX |
on-chip |
pinmux |
PM |
on-chip |
power management |
PSL |
on-chip |
power switch logic |
PWM |
on-chip |
pulse width modulator |
TACH |
on-chip |
tachometer sensor |
UART |
on-chip |
serial port-polling; serial port-interrupt |
WDT |
on-chip |
watchdog |
Other hardware features are not currently supported by Zephyr (at the moment)
The default configuration can be found in the defconfig file:
boards/arm/npcx9m6f_evb/npcx9m6f_evb_defconfig
Connections and IOs
Nuvoton to provide the schematic for this board.
System Clock
The NPCX9M6F MCU is configured to use the 90Mhz internal oscillator with the on-chip PLL to generate a resulting EC clock rate of 15 MHz. See Processor clock control register (chapter 4 in user manual)
Serial Port
UART1 is configured for serial logs.
Programming and 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.
Flashing
If the correct headers are installed, this board supports both J-TAG and also the ChromiumOS servo.
To flash using Servo V2, μServo, or Servo V4 (CCD), see the Chromium EC Flashing Documentation [1] for more information.
To flash with J-TAG, install the drivers for your programmer, for example: SEGGER J-link’s drivers are at https://www.segger.com/downloads/jlink/
The openocd from Zephyr SDK 0.14.2 doesn’t include npcx support, so build openocd from source.:
sudo apt-get install libftdi-dev libusb-1.0.0-dev
git clone https://git.code.sf.net/p/openocd/code ~/openocd
cd ~/openocd
./bootstrap
./configure --enable-jlink --enable-ftdi
make clean
make
sudo make install
Build and flash the blinky sample.:
west build -t clean && \
west build -c -p auto -b npcx9m6f_evb samples/basic/blinky && \
west flash --openocd /usr/local/bin/openocd
Debugging
Use JTAG/SWD with a J-Link