1.. _npcx9m6f_evb:
2
3Nuvoton NPCX9M6F_EVB
4####################
5
6Overview
7********
8
9The NPCX9M6F_EVB kit is a development platform to evaluate the
10Nuvoton NPCX9 series microcontrollers. This board needs to be mated with
11part number NPCX996F.
12
13.. image:: npcx9m6f_evb.jpg
14     :align: center
15     :alt: NPCX9M6F Evaluation Board
16
17Hardware
18********
19
20- ARM Cortex-M4F Processor
21- 256 KB RAM and 64 KB boot ROM
22- ADC & GPIO headers
23- UART0 and UART1
24- FAN PWM interface
25- Jtag interface
26- Intel Modular Embedded Controller Card (MECC) headers
27
28Supported Features
29==================
30
31The following features are supported:
32
33+-----------+------------+-------------------------------------+
34| Interface | Controller | Driver/Component                    |
35+===========+============+=====================================+
36| NVIC      | on-chip    | nested vector interrupt controller  |
37+-----------+------------+-------------------------------------+
38| ADC       | on-chip    | adc controller                      |
39+-----------+------------+-------------------------------------+
40| CLOCK     | on-chip    | reset and clock control             |
41+-----------+------------+-------------------------------------+
42| GPIO      | on-chip    | gpio                                |
43+-----------+------------+-------------------------------------+
44| I2C       | on-chip    | i2c port/controller                 |
45+-----------+------------+-------------------------------------+
46| PINMUX    | on-chip    | pinmux                              |
47+-----------+------------+-------------------------------------+
48| PM        | on-chip    | power management                    |
49+-----------+------------+-------------------------------------+
50| PSL       | on-chip    | power switch logic                  |
51+-----------+------------+-------------------------------------+
52| PWM       | on-chip    | pulse width modulator               |
53+-----------+------------+-------------------------------------+
54| TACH      | on-chip    | tachometer sensor                   |
55+-----------+------------+-------------------------------------+
56| UART      | on-chip    | serial port-polling;                |
57|           |            | serial port-interrupt               |
58+-----------+------------+-------------------------------------+
59| WDT       | on-chip    | watchdog                            |
60+-----------+------------+-------------------------------------+
61
62Other hardware features are not currently supported by Zephyr (at the moment)
63
64The default configuration can be found in the defconfig file:
65``boards/arm/npcx9m6f_evb/npcx9m6f_evb_defconfig``
66
67
68Connections and IOs
69===================
70
71Nuvoton to provide the schematic for this board.
72
73System Clock
74============
75
76The NPCX9M6F MCU is configured to use the 90Mhz internal oscillator with the
77on-chip PLL to generate a resulting EC clock rate of 15 MHz. See Processor clock
78control register (chapter 4 in user manual)
79
80Serial Port
81===========
82
83UART1 is configured for serial logs.
84
85
86Programming and Debugging
87*************************
88
89This board comes with a Cortex ETM port which facilitates tracing and debugging
90using a single physical connection. In addition, it comes with sockets for
91JTAG-only sessions.
92
93Flashing
94========
95
96If the correct headers are installed, this board supports both J-TAG and also
97the ChromiumOS servo.
98
99To flash using Servo V2, μServo, or Servo V4 (CCD), see the
100`Chromium EC Flashing Documentation`_ for more information.
101
102To flash with J-TAG, install the drivers for your programmer, for example:
103SEGGER J-link's drivers are at https://www.segger.com/downloads/jlink/
104
105The openocd from Zephyr SDK 0.14.2 doesn't include npcx support, so build openocd from source.::
106
107  sudo apt-get install libftdi-dev libusb-1.0.0-dev
108  git clone https://git.code.sf.net/p/openocd/code ~/openocd
109  cd ~/openocd
110  ./bootstrap
111  ./configure --enable-jlink --enable-ftdi
112  make clean
113  make
114  sudo make install
115
116Build and flash the blinky sample.::
117
118  west build -t clean && \
119    west build -c -p auto -b npcx9m6f_evb samples/basic/blinky && \
120    west flash --openocd /usr/local/bin/openocd
121
122Debugging
123=========
124
125Use JTAG/SWD with a J-Link
126
127References
128**********
129.. target-notes::
130
131.. _Chromium EC Flashing Documentation:
132   https://chromium.googlesource.com/chromiumos/platform/ec#Flashing-via-the-servo-debug-board
133