README.md
1# **NuMaker-IOT-MA35D1**
2
3## **Introduction**
4
5The NuMicro� MA35D1 series is a heterogeneous multi-core microprocessor targeted to high-end edge IIoT gateway. It is based on dual 64-bit Arm� Cortex�-A35 cores with speed up to 1 GHz, and one 180 MHz Arm� Cortex�-M4 core. Based on the high-performance cores, the MA35D1 series facilities the tiny AI/ML for edge computing.
6
7The NuMaker-IoT-MA35D1 evaluation board provides the Ethernet and connectivity features of Nuvoton NuMicro MA35D1 series microprocessors, based on MA35D16F987C (LQFP216 package, and stacking a 512 MB DDR). The NuMaker-IoT-MA35D1 includes rich peripherals such as one set of Gigabit Ethernet, one set of Megabit Ethernet, high-speed USB2.0 Host and device, one set of SD3.0 in MicroSD slot, one set of CAN FD, and RS-485 and RS232 serial communication ports. Furthermore, the NuMaker-IoT-MA35D1 provides discrete power supply to be the reference design. It also provides compatible headers with Raspberry Pi and Arduino UNO for minimizing effort in connecting popular sensors and modules to the system.
8
9|<p align="center">NuMaker-IoT-MA35D1(Frontend view)</p>|<p align="center">NuMaker-IoT-MA35D1(Backend view)</p>|
10|--|--|
11|<p align="center"><img src="./figures/NuMaker-IoT-MA35D1_F.png" alt="fishy" class="bg-primary" width="80%"></p>|<p align="center"><img src="./figures/NuMaker-IoT-MA35D1_B.png" alt="fishy" class="bg-primary" width="80%"></p>|
12
13## **NuMaker-IoT-MA35D1 Features**
14
15<ul>
16<li>Target Chip</li>
17 <ul>
18 <li>MA35D16F987C (LQFP216) MCP package with DDR3L (512 MB), which can run up to 800 MHz</li>
19 </ul>
20<li> Power </li>
21 <ul>
22 <li>5V/2A Power Jack, USB VCOM Port or HUSB0 Device</li>
23 <li>Battery header for RTC power</li>
24 </ul>
25<li>Memory Devices (Power-on Setting DIP switches for system booting selection)</li>
26 <ul>
27 <li>Quad SPI Flash (QSPI0): Winbond SPI-NAND Flash W25N04KWZEIR (512 MB)</li>
28 <li>NAND Flash: Winbond NAND Flash W29N08GVSIAA (1 GB)</li>
29 <li>MicroSD memory card (SD1, supports SD3.0)</li>
30 </ul>
31<li>One Gigabit Ethernet: 1 x RGMII PHY (RTL8211FDI-CG) and RJ45 port connector</li>
32<li>One 10/100 Megabit Ethernet: 1 x RMII PHY (RTL8201FI-VC) and RJ45 port connector</li>
33<li>Two High Speed USB: HSUSB0 (Host/Device) and HSUSB1 (Host)</li>
34<li>One Raspberry Pi 40-pin header connector</li>
35<li>Arduino UNO Compatible Extension Connectors</li>
36<li>One Camera Capture (CMOS sensor) header connector</li>
37<li>One Audio codec (NAU88C22) with microphone input and speaker output</li>
38<li>One set of RS232: Transceiver and header connector</li>
39<li>One set of RS485: Transceiver and header connector</li>
40<li>One set of CAN FD: Transceiver and header connector</li>
41<li>Four Key buttons</li>
42<li>Three user defined LEDs</li>
43</ul>
44
45## **Supported compiler**
46
47Support GCC compiler. More information of these compiler version as following:
48
49| Compiler | Tested version |
50| -- | -- |
51| GCC | Arm Embedded Toolchain 10.3-2021.10 (Env 1.3.5 embedded version)|
52
53## **Build RT-Thread**
54
55You can build rt-thread.bin for NuMaker-IoT-MA35D1 board. Steps as following. Notice, the building will include **ma35-rtp/rtthread.bin** file into **numaker-iot-ma35d1/rtthread.bin** for heterogeneous multi-core demonstration.
56
57```bash
58# cd rt-thread/bsp/nuvoton/numaker-iot-ma35d1
59# menuconfig --generate
60# scons -c
61# pkgs --update
62# scons -j 16
63
64<Path-to-rt-thread>\bsp\nuvoton\numaker-iot-ma35d1\rtthread.bin
65```
66
67## **Program firmware using NuWriter**
68
69To switch SW7 dip-switch on NuMaker-IoT-MA35D1 to do corresponding actions as below.
70
71**Power-on Setting**
72L: OFF dip-switch
73H: ON dip-switch
74
75| Memory Storage | **Burn to** settings | **Boot from** settings |
76|--|--|--|
77| **DDR** | <ul><li>Switch 1(PG0) to ON.</li><li>Switch 3(PG2) to ON.</li><li>Switch 4(PG3) to ON.</li><li>Switch Others to OFF.</li></ul> | |
78| **Raw NAND**<br>(Select Ignore BCH and Page setting) | <ul><li>Switch 1(PG0) to ON.</li><li>Switch 3(PG2) to ON.</li><li>Switch 4(PG3) to ON.</li><li>Switch Others to OFF.</li></ul> | <ul><li>Switch 1(PG0) to ON.</li><li>Switch 4(PG3) to ON.</li><li>Switch Others to OFF.</li></ul> |
79| **Serial NAND**<br>(Select 4-bit mode) | <ul><li>Switch 1(PG0) to ON.</li><li>Switch 3(PG2) to ON.</li><li>Switch 4(PG3) to ON.</li><li>Switch 7(PG6) to ON.</li><li>Switch Others to OFF.</li></ul> | <ul><li>Switch 1(PG0) to ON.</li><li>Switch 7(PG6) to ON.</li><li>Switch Others to OFF.</li></ul>
80
81### **Download to DDR and Run**
82
83You can run windows batch script to download rtthread.bin into memory, then run it. The path of batch script as below.
84
85For 512MB DD3L downloading:
86```bash
87<path-to-rtthread>\bsp\nuvoton\numaker-iot-ma35d1\nuwriter_scripts\nuwriter_ddr3_512mb_download_and_run.bat
88```
89
90For 128MB DD2 downloading:
91```bash
92<path-to-rtthread>\bsp\nuvoton\numaker-iot-ma35d1\nuwriter_scripts\nuwriter_ddr2_128mb_download_and_run.bat
93```
94
95### **Burn to Serial NAND**
96
97You can run windows batch script to download rtthread.bin into SPI-NAND flash, then run it. The path of batch script as below.
98
99```bash
100<path-to-rtthread>\bsp\nuvoton\numaker-iot-ma35d1\nuwriter_scripts\nuwriter_spinand_programming.bat
101```
102
103### **Burn to Raw NAND**
104
105You can run windows batch script to download rtthread.bin into Raw NAND flash, then run it. The path of batch script as below.
106
107```bash
108<path-to-rtthread>\bsp\nuvoton\numaker-iot-ma35d1\nuwriter_scripts\nuwriter_nand_programming.bat
109```
110
111## **Test**
112
113|Connector on board|Wiring|Usage|
114|-|-|-|
115|VCOM(CON9)|Use an USB line| rt-thread@CA35 Console |
116
117You can use Tera Term terminate emulator (or other software) to type commands of RTT. All parameters of serial communication are shown in below image. Here, you can find out the corresponding port number of Nuvoton Virtual Com Port in window device manager.
118
119<p align="center">
120<img src="./figures/SerialSetting.png" alt="fishy" class="bg-primary" width="40%">
121</p>
122<br>
123
124## **Purchase**
125
126* [Nuvoton Direct](https://direct.nuvoton.com/en/numaker-iot-ma35d1-a1)
127
128## **Resources**
129
130* [Download Board Schematics](https://www.nuvoton.com/resource-download.jsp?tp_GUID=HL102022101207193137)
131* [Download User Manual](https://www.nuvoton.com/resource-download.jsp?tp_GUID=UG132022101707255524)
132* [Download Datasheet](https://www.nuvoton.com/resource-download.jsp?tp_GUID=DA00-MA35D16)
133* [Download NuWriter](https://github.com/OpenNuvoton/MA35D1_NuWriter)
134