PulseRain M10 User manual

10555 Scripps Trl, San Diego, CA 92131 |858-877-3485 |850-408-9550 | info@pulserain.com
PulseRain M10 Board
Hardware Manual
Oct, 2017
Doc# HWM-0922-1001, Rev 0.0.9
Copyright © 2017
PulseRain Technology, LLC.
10555 Scripps Trl, San Diego, CA 92131
http://www.pulserain.com
858-877-3485 858-408-9550

This page is intentionally left blank.

Table of Contents
REFERENCES............................................................................................................................................. 1
ACRONYMS AND ABBREVIATIONS ........................................................................................................... 2
1INTRODUCTION ............................................................................................................................... 3
2FORM FACTOR................................................................................................................................. 4
3PCB .................................................................................................................................................. 5
4POWER ............................................................................................................................................ 5
5MAJOR COMPONENTS..................................................................................................................... 7
5.1 CLOCK AND RESET.............................................................................................................................. 9
5.2 LED ................................................................................................................................................ 9
5.3 USB /UART BRIDGE ....................................................................................................................... 10
5.4 VOICE CODEC, ONBOARD MICROPHONE AND SPEAKER JACK .................................................................. 10
5.4.1 Analog Interface ..................................................................................................................... 10
5.4.2 Digital Interface ...................................................................................................................... 11
5.5 SERIAL SRAM................................................................................................................................. 11
5.6 MICROSD ....................................................................................................................................... 12
5.7 IOS............................................................................................................................................... 12
5.7.1 IO Voltage ............................................................................................................................... 12
5.7.2 IO Pin Map .............................................................................................................................. 12
5.8 FPGA............................................................................................................................................ 12
5.8.1 Onchip ADC ............................................................................................................................. 12
5.8.2 Onchip TSD (Temperature Sensor Diode)................................................................................ 12
5.8.3 Pin Assignment ....................................................................................................................... 12
5.8.4 FPGA Image Download ........................................................................................................... 12
5.8.5 Simulation............................................................................................................................... 12
5.8.6 Repository............................................................................................................................... 12

PulseRain M10 Board –Hardware Manual
1 | P a g e
References
1. MCS-51 Programmer's Guide and Instruction Set, Intel Corporation.
2. Building Embedded Systems –Programmable Hardware, Changyi Gu, APress Media, July 2016
http://www.apress.com/us/book/9781484219188
3. FT232R USB UART IC Datasheet, Version 2.13, Doc# FT 000053, Future Technology Devices
International Ltd, 2015
4. Si3000 Voice Band CODEC with Microphone / Speaker Drive, Rev 1.4, Silicon Laboratories, 12/2010
5. PulseRain M10 –I2C, Technical Reference Manual, Doc# TRM-0922-01007, Rev 1.0.0, 09/2017
https://github.com/PulseRain/M10I2C/raw/master/extras/M10_I2C_TRM.pdf
6. PulseRain M10 –PWM, Technical Reference Manual, Doc# TRM-0922-01009, Rev 1.0.1, 10/2017
https://github.com/PulseRain/M10PWM/raw/master/extras/M10_PWM_TRM.pdf
7. PulseRain M10 –microSD, Technical Reference Manual, Doc# TRM-0922-01006, Rev 1.0.0, 09/2017
https://github.com/PulseRain/M10SD/raw/master/extra/M10_SD_TRM.pdf
8. PulseRain M10 –Voice CODEC, Technical Reference Manual, Doc# TRM-0922-01001, Rev 1.0.3,
09/2017, https://github.com/PulseRain/M10CODEC/raw/master/extras/M10_CODEC_TRM.pdf
9. PulseRain M10 –ADC, Technical Reference Manual, Doc# TRM-0922-01003, Rev 1.0.0, 09/2017
https://github.com/PulseRain/M10ADC/raw/master/extra/M10_ADC_TRM.pdf
10. PulseRain M10 –JTAG, Technical Reference Manual, Doc# TRM-0922-01008, Rev 1.0.0, 09/2017
https://github.com/PulseRain/M10JTAG/raw/master/extras/M10_JTAG_TRM.pdf
11. PulseRain M10 –SRAM, Technical Reference Manual, Doc# TRM-0922-01004, Rev 1.0.0, 09/2017
https://github.com/PulseRain/M10SRAM/raw/master/extras/M10_SRAM_TRM.pdf
12. PulseRain M10 –DTMF, Technical Reference Manual, Doc# TRM-0922-01002, Rev 1.0.0, 09/2017
https://github.com/PulseRain/M10DTMF/raw/master/extras/M10_DTMF_TRM.pdf
13. PulseRain M10 –Serial Port, Technical Reference Manual, Doc# TRM-0922-01005, Rev 1.0.0,
09/2017, https://github.com/PulseRain/M10SerialAUX/raw/master/extras/M10_Serial_TRM.pdf
14. PulseRain M10 –Quick Start Guide, Doc#QSG-0922-0039, Rev 1.1, 09/2017
https://github.com/PulseRain/Arduino_M10_IDE/blob/master/docs/M10_quick_start.pdf
15. TXS0108E 8-Bit Bi-directional, Level-Shifting, Voltage Translator for Open-Drain and Push-Pull
Applications, Texas Instruments, SCES642D –Revised Feb, 2016

PulseRain M10 Board –Hardware Manual
2 | P a g e
Acronyms and Abbreviations
Acronyms /
Abbreviations
Definition
ACK
Acknowledge
ADC
Analog to Digital Converter
BCD
Binary-Coded Decimal
CISC
Complex Instruction Set Computer
CODEC
Coder-Decoder
DPTR
Data Pointer
DTMF
Dual Tone Multi Frequency
ENIG
Electroless Nickel Immersion Gold
FPGA
Field Programmable Gate Array
I2C
Inter-Integrated Circuit
IO
Input and Output
IRQ
Interrupt Request Line
ISA
Instruction Set Architecture
ISR
Interrupt Service Routine
JTAG
Joint Test Action Group
LDO
Low Dropout Regulator
LED
Light Emitting Diode
LSB
Least Significant Bit
MCU
Microcontroller Unit
MSB
Most Significant Bit
NOP
No Operation
OCD
On-chip Debugger
PC
Personal Computer or Program Counter
PCB
Printed Circuit Board
PSW
Program Status Word
PWM
Pulse Width Modulation
RISC
Reduced Instruction Set Computer
RoHS
Restriction of Hazardous Substances
SDCC
Small Device C Compiler
SFR
Special Function Register
SRAM
Static Random-Access Memory
UART
Universal Asynchronous Receiver-Transmitter
Wi-Fi
Wireless Fidelity

PulseRain M10 Board –Hardware Manual
3 | P a g e
1Introduction
Over the past 10 years, FPGA device has grown into main stream. Instead of using a hardcore MCU,
embedding a soft-core MCU into FPGA, with all the peripherals customized, is now within the reach of
makers. And that's where PulseRain M10 comes into play, an open source design down to the silicon level!
Figure 1-1 The Whole Picture
As illustrated in Figure 1-1, the M10 board takes a distinctive technical approach by embedding an open
source soft MCU core (96MHz) into an Intel MAX10 FPGA, while offering an Arduino compatible software
interface and form factors. And it features onboard resources like voice CODEC, microSD socket, SRAM,
onchip ADC etc, and it also supports dual IO voltages (3.3V / 5V).
The M10 board can serve as a core module and easily morph into various cool things. In fact, it can
completely replace Arduino in all respects. And this document serves as its hardware manual.
USB / RS232
Button
Arduino Connector, 3.3 V / 5V
Button
Arduino Connector
Digital IO
Analog IO
JTAG / GPIO
128KB SRAM
Voice CODEC
3.5mm
Speaker Jack
Onboard
Microphone
Push Button
LED
DC Power Jack
MicroSD Socket
SPI
SPI
SPI
Potentiometer
12 MHz
OSC
FPGA
96MHz soft core MCU
ADC / TSD
Power / Ground
OP Amp
Flash
PLL x 8

PulseRain M10 Board –Hardware Manual
4 | P a g e
2Form Factor
The M10 board has a form factor that is compatible with the Arduino UNO Rev 3. The mechanical metrics
for the M10 board are as following in Table 2-1:
Metric Name
Value
Description
Width
2.1 Inch
The width of the PCB
Length
3.2 Inch
The length of the PCB
PCB Thickness
62 mil
Thickness of the finished PCB
Maximum Height
0.5 Inch
The sum of maximum component height on both sides of the PCB
Table 2-1 Mechanical Metrics
There are 4 mounting holes on the M10 board, and their positions are compatible with those on the
Arduino UNO Rev 3. The coordinates of those mounting holes are shown in Figure 2-1. (All Units are in
Inch.)
Figure 2-1 The Mounting Holes of M10 (All Units are in Inch)

PulseRain M10 Board –Hardware Manual
5 | P a g e
3PCB
The basic metrics of the M10 PCB are shown below in Table 3-1:
Metric Name
Value
Description
Width
2.1 Inch
The width of the PCB
Length
3.2 Inch
The length of the PCB
PCB Thickness
62 mil
Thickness of the finished PCB
Num of layers
4
2 signal layers. 1 Power layer, 1 Ground layer
Solder Mask Color
Blue
Blue solder mask on both sides
Surface Finish
ENIG - RoHS
Electroless Nickel Immersion Gold –RoHS
Copper Weight
1 oz
Minimum Trace Width
8 mil
Num of Blind Vias
0
All Vias are through-hole vias
Number of Micro Vias
0
Minimum Trace Clearance
8 mil
Table 3-1 PCB Metrics
4Power
The power of M10 board can be supplied either from the low-profile DC jack or from the microUSB port, as
shown in Figure 4-1 and Figure 4-2. And the block diagram of the power regulation circuit is shown in
Figure 4-3.
Figure 4-1 Supply Power through DC Jack

PulseRain M10 Board –Hardware Manual
6 | P a g e
Figure 4-2 Supply Power through microUSB
Figure 4-3 Power Regulation Block Diagram
DC Power Jack
PMEG3020ER AZ1117IH-5.0TRG1
AP3429A
microUSB
Comparator
+5 V
+3.3 V

PulseRain M10 Board –Hardware Manual
7 | P a g e
As illustrated in Figure 4-3, the power from the DC jack will first go through a Schottky rectifier
(PMEG3020ER). The purpose of this rectifier is to protect the rest of the circuit from accidental polarity
reverse. The incoming DC power (6.5V –15V) will then go through a LDO (AZ1117IH, with an output current
up to 1.35A) to get a stable +5V output. And this +5V output will also produce a +3.3V through a step-down
buck converter (AP3429A).
And instead of using the DC Jack and LDO to produce +5V rail, the +5V could also come from the microUSB
port. The comparator in Figure 4-3 will determine which power source to be the active one. When both the
DC Jack power and the USB power are present, the power from the DC Jack will always prevail and become
the active power source.
5Major Components
The M10 board has the following major components: (The packages of those components are carefully
chosen to avoid BGA or QFN packages.)
•Intel/Altera MAX10 FPGA (with on-chip A/D Converter and Temperature Sensor Diode)
•12MHz Crystal Oscillator
•2 Push Button
•6 LEDs
•USB/UART Bridge (FT232R)
•Voice CODEC, onboard microphone and Speaker Jack
•1Mbit Serial SRAM
•microSD Socket
•3.3 V / 5V voltage translator to support dual IO voltage
•OpAmp and Potentiometer for Analog Input
•IO connectors that are compatible with Arduino UNO Rev 3
•JTAG Header for the FPGA
•Jumpers for IO voltage selection and FPGA programming

PulseRain M10 Board –Hardware Manual
8 | P a g e
Figure 5-1 Major Components (Top Side)
Figure 5-2 Major Components (Bottom Side)

PulseRain M10 Board –Hardware Manual
9 | P a g e
5.1 Clock and Reset
Figure 5-3 Clock and Reset
As illustrated in Figure 5-3, the FPGA's PLL is fed by the 12MHz onboard oscillator to produce an internal
clock of 96MHz. The FP51-1T processor core and peripherals are all driven by this 96MHz clock.
As shown in Figure 5-1, there are two push buttons available on the M10 board. One is located close to the
microUSB connector. The other is located next to the DC Jack. To follow Arduino convention, the one close
to the microUSB will be used as the default reset button. And inside the FPGA, the input from this reset
button will go through a hardware de-bouncer before it is used to reset the PLL. (The PLL's "locked" output
will be used to reset the rest of the circuit.)
On the other hand, the push button next to the DC Jack can be used for general purpose input. And it can
be handled inside the soft core MCU by software de-bouncing approach.
5.2 LED
There are 6 LEDs on the M10 board, and they are assigned as the following:
•UART_RX (Red), UART_TX (Green)
Those two LEDs are located next to the FT232RL chip (USB/UART bridge). They are the activity
indication for the microUSB port.
•IO Power Indicator (Blue)
This LED is located close to the jumper for IO voltage selection. It will be on when the IO pins are
powered (3.3V or 5V).
ACHL-12.000MHZ-EK
(12 MHz Oscillator) PLL
FPGA
96MHz
Push Button Hardware
Debouncer
Reset
Locked
Push Button Soft Core MCU

PulseRain M10 Board –Hardware Manual
10 | P a g e
•General Purpose LED (Blue, Red and Green)
Those 3 LEDs are located close to the onboard microphone, as illustrated in Figure 5-1.
5.3 USB / UART Bridge
The M10 board can interface with a host computer through microUSB port, for which a USB/UART bridge
chip (FT232R) is used. The FT232RL can support a baud rate up to 921600 bps, and the details of this chip
can be found in Ref [3].
5.4 Voice CODEC, Onboard Microphone and Speaker Jack
5.4.1 Analog Interface
The M10 board carries a voice CODEC (Si3000) from the Silicon Lab. And it has been integrated with an
onboard microphone (CMC-5044PF-A) and a 3.5 mm speaker jack for analog in and out, as illustrated in
Figure 5-4.
Figure 5-4 Si3000 Analog Interface
Users can hook a headset or active speaker to the 3.5 mm speaker jack for voice output.

PulseRain M10 Board –Hardware Manual
11 | P a g e
5.4.2 Digital Interface
The voice CODEC's digital interface is connected to the FPGA, with the following signal pins:
•MCLK: the master clock (4MHz), from FPGA to Si3000
•SCLK: the slave clock (2048KHz), from Si3000 to FPGA. The SCLK runs at 256 bits per frame. For M10
board, the default sample rate is set to be 8KHz, so 8KHZ * 256 = 2048KHz
•FSYNC_N: Frame Sync, level sensitive signal that goes all the way low during the active cycles
•SDO: Serial Data from Si3000 to FPGA
•SDI: Serial Data from FPGA to Si3000
The datasheet of Si3000 (Ref [4]) suggests to put pull-up or pull-down resistors on SDO and SCLK for Serial
Mode selection (The Si3000 on the M10 board currently works in the slave mode.). Those pull-up and pull-
down resistors are omitted on the M10 board as the FPGA can provide weak pull-up in its pin assignment.
And the SDO can be driven to low by default. The Verilog code for the SCLK and SDO are as following:
assign Si3000_SCLK = (Si3000_RESET_N) ? 1'bZ : 1'b0;
assign Si3000_SDO = (Si3000_FSYNC_N) ? 1'b0 : 1'bZ;
List 5-1 SCLK and SDO assignment for Si3000
And the rest of the details for Si3000 digital interface can be found in
Ref [8]: PulseRain M10 –Voice CODEC, Technical Reference Manual, Doc# TRM-0922-01001, Rev 1.0.3,
09/2017, https://github.com/PulseRain/M10CODEC/raw/master/extras/M10_CODEC_TRM.pdf
In addition, with a DTMF software library, the voice CODEC can be used for DTMF decoding. The technical
details of the DTMF decoding can be found in
Ref [12]: PulseRain M10 –DTMF, Technical Reference Manual, Doc# TRM-0922-01002, Rev 1.0.0, 09/2017
https://github.com/PulseRain/M10DTMF/raw/master/extras/M10_DTMF_TRM.pdf
5.5 Serial SRAM
The M10 board carries a 1Mbit Serial SRAM from Microchip (Part Number 23LC1024), and the FPGA has full
access to this SRAM. The correspondent technical details can be found in
Ref [11]: PulseRain M10 –SRAM, Technical Reference Manual, Doc# TRM-0922-01004, Rev 1.0.0, 09/2017
https://github.com/PulseRain/M10SRAM/raw/master/extras/M10_SRAM_TRM.pdf

PulseRain M10 Board –Hardware Manual
12 | P a g e
5.6 microSD
With a soft-core MCU, a microSD controller inside FPGA, plus a software library, the M10 board is capable
of accessing the microSD card at file system level. The details of the microSD controller and the
correspondent software library can be found in
Ref [7]: PulseRain M10 –microSD, Technical Reference Manual, Doc# TRM-0922-01006, Rev 1.0.0, 09/2017
https://github.com/PulseRain/M10SD/raw/master/extra/M10_SD_TRM.pdf
5.7 IOs
5.7.1 IO Voltage
The M10's FPGA (Intel/Altera MAX10) only supports 3.3V IO. But with the onboard voltage translator
(TXS0108E, Ref [15]), dual IO voltage is supported.
5.7.2 IO Pin Map
5.8 FPGA
5.8.1 Onchip ADC
5.8.2 Onchip TSD (Temperature Sensor Diode)
5.8.3 Pin Assignment
5.8.4 FPGA Image Download
5.8.5 Simulation
5.8.6 Repository
Table of contents