Home‎ > ‎Sergey's Projects‎ > ‎

Intel(r) Quark(tm) Microcontroller D2000 based Environmental Sensors Board

Introduction

This is a fairly small (51 x 51 mm) board, equipped with a low power Intel Quark D2000 microcontroller, and several sensors (accelerator, temperature, humidity, atmospheric pressure), as well as a mikroBUS compatible header and a Grove compatible connectors, that can be used to connect additional sensors, memory, or radio modules. The board can be used to monitor the environment conditions, and store or transmit the data to a remote system for further processing.

Design Overview

Microcontroller

Microcontroller Overview

The board uses the Intel Quark D2000 microcontroller (U1). This microcontroller contains a 32-bit x86 processor core, 25 GPIOs, I2C, SPI interfaces, JTAG, two UART interfaces, PWM module, timers, and so on. It includes 32 KiB of the instruction Flash ROM, 8 KiB of the SRAM, and a few kilobytes of the OTP memory (which is actually a Flash ROM which can be write/erase protected).

Clocks

The microcontroller runs on a 32 MHz clock provided by quartz resonator Y1, it also uses a 32768 Hz quartz resonator Y2 for RTC clock.

Power Supply

The microcontroller includes an on-chip 1.8V buck converter voltage regulator to supply voltage for the CPU core. The 47 uH inductor L1 and the 4.7 uF capacitor C11 are the external components used by the voltage regulator. The ferrite EMI filter FB1 and the capacitor C7 form an LC filter for filtering the analog supply voltage AVDD. The I/O power supply IOVDD rail, as well as all the on-board sensors are connected directly to the CR2032 battery BT1 (nominally 3V). All the power supply rails are bypassed using 1 uF capacitors.

Reset

The board uses a simple RC reset circuit implemented using the resistor R4, the capacitor C1, and reset switch SW1. The Quark D2000 MCU has a hysteresis on RST_N input, which ensures the proper reset signal generation using an RC circuit.

GPIO Pins Allocation

The GPIO pins of the Quark D2000 MCU are allocated on this board as shown in the table below. Note that GPIO pins have multiple functions (modes), and they need to be configured in the software according to the function used by this board. The suggested pin functions are marked with italic bold.
 Quark D2000 pin number Quark D2000 pin name Function used by the board Mode 0 Mode 1 Mode 2
 31 F0_SPI_M_SS0 mikroBUS - SPI chip select - SS0 GPIO0 AI0 SPI_M_SS0
 32 F1_SPI_M_SS1 Battery monitor (analog input) GPIO1 AI1 SPI_M_SS1
 33 F2_SPI_M_SS2 User switch SW2, 560k pull-up, 1 == switch not pressed GPIO2 AI2 SPI_M_SS2
 34 F3_SPI_M_SS3 mikroBUS - analog input A0 GPIO3 AI3 SPI_M_SS3
 35 F4_RTC_CLK_OUT Accelerometer interrupt - INT1 GPIO4 AI4 RTC_CLK_OUT
 36 F5_SYS_CLK_OUT mikroBUS - interrupt input - INT2 GPIO5 AI5 SYS_CLK_OUT
 37 F6_I2C_SCL I2C SCL - on-board sensors, mikroBus, Grove header P7 GPIO6 AI6 I2C_SCL
 38 F7_I2C_SDA I2C SDA - on-board sensors, mikroBus, Grove header P7 GPIO7 AI7 I2C_SDA
 39 F8_SPI_S_SCLK Grove header P5 - D7 GPIO8 AI8 SPI_S_SCLK
 11 F9_SPI_S_SDIN mikroBUS - reset RST, Grove header P5 - D8 GPIO9 AI9 SPI_S_SDIN
 2 F10_SPI_S_SDOUT Grove header P6 - D3 GPIO10 AI10 SPI_S_SDOUT
 3 F11_SPI_S_SCS Grove header P6 - D2 GPIO11 AI11 SPI_S_SCS
 4 F12_UART_A_TXD FTDI compatible UART header P2 - TXD, mikroBus - TXD GPIO12 AI12 UART_A_TXD
 5 F13_UART_A_RXD FTDI compatible UART header P2 - RXD, mikroBus - RXD GPIO13 AI13 UART_A_RXD
 6 F14_UART_A_RTS_DE FTDI compatible UART header P2 - RTS GPIO14 AI14 UART_A_RTS/UART_A_DE
 7 F15_UART_A_CTS_RE FTDI compatible UART header P2 - CTS GPIO15 AI15 UART_A_CTS/UART_A_RE
 8 F16_SPI_M_SCLK mikroBUS - SPI SCLK GPIO16 AI16 SPI_M_SCLK
 9 F17_SPI_M_TXD mikroBUS - SPI MOSI GPIO17 AI17 SPI_M_TXD
 10 F18_SPI_M_RXD mikroBUS - SPI MISO GPIO18 AI18 SPI_M_RXD
 18 F19_PWM0_TDO JTAG header P1 - TDO TDO GPIO19 PWM0
 13 F20_UART_B_TXD_TRST_N JTAG header P1 - TRST TRST GPIO20 UART_B_TXD
 14 F21_UART_B_RXD_TCK JTAG header P1 - TCK TCK GPIO21 UART_B_RXD
 15 F22_UART_B_RTS_DE_TMS JTAG header P1 - TMS TMS GPIO22 UART_B_RTS/UART_B_DE
 16 F23_UART_B_CTS_RE_TDI JTAG header P1 - TDI TDI GPIO23 UART_B_CTS/UART_B_RE
 21 F24_PWM1 mikroBUS - PWM output, on-board LED D1 GPIO24 - PWM1

UART Interface

The UART interface A of the Quark D2000 is exposed on an FTDI compatible header P2. Normally this is used to connect the FTDI USB to serial cable to provide a debug output. The UART interface A TXD and RXD signals are also available on the mikroBUS header, and that can be used to connect sensors that use UART interface.

JTAG interface

The board uses a standard ARM 10-pin JTAG connector P1. The board has been tested with Tin Can Tools Flyswatter2 JTAG adapter and Olimex ARM JTAG 20 pin to 10 pin adapter.

On-board Sensors

Accelerometer and Magnetometer

The board uses Bosch Sensortec BMC150 3-axis accelerometer and magnetometer (U2). This sensor is configured in I2C mode, and uses I2C addresses 0x11 for accelerometer, and 0x13 for magnetometer. The interrupt output INT1 of the accelerometer is connected to GPIO4 of Quark D2000. The interrupt outputs INT2 (accelerometer) and INT3 (magnetometer), as well as DRDY output are available on header P8.

Atmospheric Pressure, Humidity and Temperature Sensor

The board uses Bosch Sensortec BME280 environmental sensor (U3). This sensor provides atmospheric pressure, relative humidity, and temperature measurements. The sensor is configured in I2C mode, and uses I2C address 0x76.

Ambient Light Sensor

The board uses Vishay VEML7700 ambient light sensor (U4). The sensor I2C addess is 0x10.

Bill of Materials

Link to the project on Mouser.com - View and order all components except of PCB.

Link to the project on OSHPark.com - View and order PCB.

 Component type Reference Description Quantity Possible sources and notes
 PCB  D2000 Environmental Sensors PCB, V2.1 1 Order from OSH Park or your favorite PCB manufacturers using Gerber files provided below.
 Battery BT1 CR2032 lithium battery 1 Mouser 658-CR2032.
 Note: Due to shipping restrictions battery is not included in Mouser's project BOM
 Battery Holder BT1 CR2032/CR2025 battery holder, THM 1 Mouser 712-BAT-HLD-001-THM
 Capacitor C1 - C3 0.1 uF multilayer ceramic capacitor, 0603 SMT 3 Mouser 77-VJ0603Y104JXJPBC
 Capacitor C4 - C10 1 uF multilayer ceramic capacitor, 0603 SMT 7 Mouser 810-C1608X7R1E105K
 Capacitor C11 4.7 uF multilayer ceramic capacitor, 0603 SMT 1 Mouser 81-GRM188R61A475KE5D
 LED D1 Green LED, 0603 SMT 1 Mouser 78-VLMG1300-GS08
 Ferrite Bead FB1 Ferrite EMI filter, 120 ohm, 0603 SMT 1 Mouser 81-BLM18PG121SN1D
 Inductor L1 47 uH, 1008 SMT 1 Mouser 810-NLV25T-470J-EF
 Connector P1 2x5 pin header, 1.27 mm pitch, THM 1 Mouser 649-221111-00010T4LF
 Connector P2 1x6 pin header, 2.54 mm pitch, THM 1 Mouser 855-M20-9990645
 Connector P3, P4 1x8 socket, 2.54 mm pitch, THM 2 Mouser 517-929850-01-08-RB
 Connector P5 - P7 4 pin connector, 2 mm pitch, THM 3 Mouser 538-35362-0450
 Resistor R1 220 ohm resistor, 0603 SMT 1 Mouser 71-CRCW0603220RFKEB
 Resistor R2, R3 5.6 kohm resistor, 0603 SMT 2 Mouser 71-CRCW0603-5.6K-E3
 Resistor R4 - R9 560 kohm resistor, 0603 SMT 6 Mouser 71-CRCW0603-560K-E3
 Resistor R10 10 Mohm resistor, 0603 SMT 1 Mouser 71-CRCW060310M0FKEB
 Resistor R11, R12 Do not populate 2 Note: These resistors can be used to set up voltage divider for analog reference voltage.
 Tactile Switch SW1, SW2 Tactile Switch, C&K Components PTS820 series 2 Mouser 611-PTS820J25MSMTR
 Integrated Circuit U1 Intel Quark D2000 MCU 1 Mouser 607-FND2000SR2KF
 Integrated Circuit U2 Bosch BMC150 accelerometer and magnetometer 1 Mouser 262-BMC150
 Integrated Circuit U3 Bosch BME280 atmospheric pressure and humidity sensor 1 Mouser 262-BME280
 Integrated Circuit U4 Vishay VEML7700 ambient light sensor 1 Mouser 78-VEML7700-TR
 Crystal Y1 32 MHz crystal oscillator 1 Mouser 581-CX3225GB32PHPQCC
 Crystal Y2 32768 Hz crystal oscillator 1 Mouser 581-ST2012SB32H5HPWA

ą
Sergey Kiselev,
Jun 7, 2016, 3:57 PM
ċ
D2000 - Gerber - 2.0.zip
(57k)
Sergey Kiselev,
Jun 7, 2016, 3:57 PM
ċ
D2000 - KiCad - 2.0.zip
(50k)
Sergey Kiselev,
Jun 7, 2016, 4:00 PM
Ċ
Sergey Kiselev,
Jun 7, 2016, 3:57 PM
Ċ
Sergey Kiselev,
Jun 7, 2016, 3:57 PM
Comments