Introduction
DFRduino M0 is the only Arduino main board that supports 5V standard Logic level and adopts ARM Cortex-M0. [null It is unsatisfactory to make projects with most boards in the market. To be specify,] traditional Arduino UNO is lacking of pins, low-performance… Mega boards are better but too expensive; Arduino ZERO boards are not compatible with 5V power supply device. Luckily, DFRduino M0 is a great soul solves all.
DFRduino M0 selects 32 bytes Nuvoton SCM (Single Chip Micyoco) of high-performance as the core. Besides built-in ARM Cortex M0 infrastructure, DFRduino M0 supports 5V Logic level, equipped with 1 USB port and 2 serial ports, providing 31 digital pins (parts AFIO) and 6 analog pins, offering more IO resources. Moreover, DFRduino M0 is compatible with Arduino Leonardo package/encapsulation and the clock speed is 72MHz.
Additionally, DFRduino M0 supplies another IIS interface, supporting play &record wav files. Once put DFRduino M0 with advanced IIS chip, professional HIFI audio is available.
NOTE: Different from official Arduino M0, DFRduino M0 adopts a unique chip solution which should be installed independently. It supports Windows, Linux and MAC. The default IDE version should be 1.6.0 and above, other versions should be modified according to FAQ instructions.
Features
- Arduino IDE Compatible
- 32-Bit 72MHz Cortex-M0
- Supports 5V reference voltage
- Supports standard IIS audio interface
- Support USB and dual physical hardware serial port
- Compatible with Leonardo pin packages
- Support wireless programming upload code
Specification
- Microcontrollers: Nuvoton NUC123ZD4AN0 (Cortex M0)
- Clock Speed: 72MHz
- Operating Voltage: 5V
- Recommended Input Voltage: 7-12V
- Limit input voltage: 6-20V
- Digital I/O Pins: 31
- Analog input Pins: 6
- External Interrupt: 4
- SRAM: 20K
- Flash: 68K (of which 12 KB used by bootloader, 55K used by the user code area, 1K used by EEPROM)
- EEPROM: 1K
- SPI: 1 port (D14, D15, D16)
- IIC / I2C: 1 port (D2, D3)
- USB serial port: 1 (Serial)
- Physical serial port: 2 (Serial1, Serial2)
- Serial1 0 (Rx1) and 1 (Tx1)
- Serial2 24 (Rx2) and 25 (Tx2)
- Xbee interface: 1 (Serial1)
- Size: 68 * 53 mm/ 2.68 * 2.09 inches
- Weight: 30g
Board Overview
Num | Label | Description |
---|---|---|
1 | USB | USB Power |
2 | External Power | 7~12V |
3 | Digital IO D0~D13 | Digital IO D0~D13 (Leonardo Compatible) |
4 | Digital IO D24~D31 | Digital IO D24~D31 |
5 | SPI Interface | D14, D15, D16 (Pin Multiplexing) |
6 | Analog A0~A5 | Analog A0 |
7 | MCU | NUC123LD4AN0 |
8 | Xbee Socket | Serial1, support wireless programming |
PinMap
DFRduino M0 Pins | IC pin | Multiplex | Note |
---|---|---|---|
D0 | PC4 | RXD1 | INT2 |
D1 | PC5 | TXD1 | INT3 |
D2 | PF2 | SDA | INT0 |
D3 | PF3 | SCL | INT1 |
D4 | PC0 | I2S LRCLK | / |
D5 | PC3 | PWM0 | / |
D6 | PA13 | PWM1 | / |
D7 | PC2 | I2S DI | / |
D8 | PC3 | I2S DO | / |
D9 | PA14 | PWM2 | / |
D10 | PA15 | PWM3 | / |
D11 | PB8 | PWM4 | Software PWM |
D12 | PC1 | I2S BCLK | / |
D13 | PB14 | PWM5 | Software PWM |
D14 | PA10 | SPI MISO | / |
D15 | PA11 | SPI SCK | / |
D16 | PC11 | SPI MOSI | / |
D17 | PB6 | RX LED | / |
D18 | PD0 | A0 | / |
D19 | PD1 | A1 | / |
D20 | PD2 | A2 | / |
D21 | PD3 | A3 | / |
D22 | PD4 | A4 | / |
D23 | PD5 | A5 | / |
D24 | PB4 | RXD2 | RX2 |
D25 | PB5 | TXD2 | TX2 |
D26 | PC10 | NULL | / |
D27 | PC9 | NULL | / |
D28 | PC13 | NULL | / |
D29 | PC12 | NULL | / |
D30 | PB9 | NULL | / |
D31 | PB10 | NULL | / |
D32 | PB7 | TX LED | / |
Tutorial
Requirements
Hardware
- DFRduino M0 x 1
- Micro USB Cable x1
Software
- Arduino IDE (Version requirements: V1.6.X and later), [https://www.arduino.cc/en/software| Click to Download Arduino IDE from Arduino®]
Setup DFRduino M0 Software Development Environment
- Open Arduino IDE, File->Preferences, find Additional Boards Manager URLs, copy the below link, and paste in the blank.
https://raw.githubusercontent.com/DFRobot/DFRobotDuinoBoard/master/package_dfrobot_index.json
File->Preferences
paste url here
- Click OK
- Open Tools->Board->Boards Manager, enter DFRduino in the search box, click Install
Now, the development environment has been installed, you can use it like a normal Arduino board.
Driver Installation
- Connect M0 to your computer, and you will find an unknown device in the device manager.
- Update Driver Software --> '''Browse my computer for driver software '''.
- Generally, this driver is located in the SDK folder C:\Users\yourUserName\AppData\Local\Arduino15\packages\nucDuino\hardware\nucDuino\1.0.0\driver
Special Function
Hardware Serial port x2 & USB Serial Port x1
- Just like Arduino Leonardo, M0 has USB Serial Port and Hardware Serial Port.
USB Serial Port | Serial |
---|---|
Hardware Serial Port 1 | Serial1 |
Hardware Serial Port 2 | Serial2 |
- Sample Code
void setup() { // put your setup code here, to run once:
Serial.begin(115200);
while(!Serial);
Serial1.begin(115200);
Serial2.begin(115200);
}
void loop() { // put your main code here, to run repeatedly:
Serial.println("I am USB CDC Serial");
Serial1.println("I am Serial 1");
Serial2.println("I am Serial 2");
delay(1000);
}
- Tested Platform:
- Windows: win7 32bit/64bit, win8 32bit/64bit, win10 32bit
- Linux: ubuntu 12.04 32bit
- Mac book:
FAQ
Q&A | Some general Arduino Problems/FAQ/Tips |
---|---|
Q | No permission under Linux system |
A | Input ’‘’sudo usermod -a -G USER NAME dialout‘’‘ to add user into dialout group. Log out and log back in |
More Documents
- [DFRduino M0 Schematic](https://github.com/Arduinolibrary/DFRobot_DFRduino_M0/raw/master/DFR0392 DFRduino M0 Mainboard_V1.1_.pdf)
- NUC123 Series Datasheet