MikroE Quail

Overview

MikroE Quail for STM32 is a development board containing an STM32F427 [2] microcontroller. It is equipped with four mikroBUS sockets. The edges of the board are lined with screw terminals and USB ports for additional connectivity.

Hardware

The Quail board contains the following connections:

  • Four mikroBUS connectors

  • 32 screw terminals

  • two USB ports, one for programming and one for external storage

Furthermore the board contains three LEDs that are connected to the microcontroller.

Supported Features

The mikroe_quail board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
mikroe_quail
/
stm32f427xx

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M4F CPU1

arm,cortex-m4f

ADC

on-chip

STM32F4 ADC1

st,stm32f4-adc

on-chip

STM32 ADC1 1

st,stm32-adc

CAN

on-chip

STM32 CAN controller2

st,stm32-bxcan

Clock control

on-chip

STM32 RCC (Reset and Clock controller)1

st,stm32-rcc

on-chip

STM32 HSE Clock1

st,stm32-hse-clock

on-chip

Generic fixed-rate clock provider2 1

fixed-clock

on-chip

STM32F4 Main PLL1

st,stm32f4-pll-clock

on-chip

STM32F4 PLL I2S1

st,stm32f4-plli2s-clock

on-chip

STM32 Microcontroller Clock Output (MCO)2

st,stm32-clock-mco

Counter

on-chip

STM32 counters12

st,stm32-counter

DAC

on-chip

STM32 family DAC1

st,stm32-dac

DMA

on-chip

STM32 DMA controller (V1)2

st,stm32-dma-v1

Ethernet

on-chip

STM32 Ethernet Controller1

st,stm32-ethernet-controller

on-chip

ST STM32 Ethernet MAC, a child node of the Ethernet controller1

st,stm32-ethernet

Flash controller

on-chip

STM32 Family flash controller1

st,stm32-flash-controller

GPIO & Headers

on-chip

STM32 GPIO Controller11

st,stm32-gpio

on-board

GPIO pins exposed on Mikro BUS headers4

mikro-bus

I2C

on-chip

STM32 I2C V1 controller1 2

st,stm32-i2c-v1

I2S

on-chip

STM32 I2S controller2

st,stm32-i2s

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

on-chip

STM32 External Interrupt Controller1

st,stm32-exti

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MDIO

on-chip

STM32 MDIO Controller1

st,stm32-mdio

Memory controller

on-chip

STM32 Battery Backed RAM1

st,stm32-bbram

on-chip

STM32 Flexible Memory Controller (FMC)1

st,stm32-fmc

on-chip

STM32 Flexible Memory Controller (SDRAM controller)1

st,stm32-fmc-sdram

MMC

on-chip

STM32 SDMMC Disk Access1

st,stm32-sdmmc

MTD

on-chip

STM32F4 flash memory1

st,stm32f4-nv-flash

on-board

Properties supporting Zephyr spi-nor flash driver (over the Zephyr SPI API) control of serial flash memories using the standard M25P80-based command set1

jedec,spi-nor

PHY

on-chip

This binding is to be used by all the usb transceivers which are built-in with USB IP2

usb-nop-xceiv

Pin control

on-chip

STM32 Pin controller1

st,stm32-pinctrl

Power management

on-chip

STM32 power controller1

st,stm32-pwr

PWM

on-chip

STM32 PWM12

st,stm32-pwm

Reset controller

on-chip

STM32 Reset and Clock Control (RCC) Controller1

st,stm32-rcc-rctl

RNG

on-chip

STM32 Random Number Generator1

st,stm32-rng

RTC

on-chip

STM32 RTC1

st,stm32-rtc

Sensors

on-chip

STM32 quadrature decoder6

st,stm32-qdec

on-chip

STM32 family TEMP node for production calibrated sensors with two calibration temperatures1

st,stm32-temp-cal

on-chip

STM32 VREF+1

st,stm32-vref

on-chip

STM32 VBAT1

st,stm32-vbat

Serial controller

on-chip

STM32 USART4

st,stm32-usart

on-chip

STM32 UART4

st,stm32-uart

SMbus

on-chip

STM32 SMBus controller3

st,stm32-smbus

SPI

on-chip

STM32 SPI controller2 2

st,stm32-spi

SRAM

on-chip

Generic on-chip SRAM1

mmio-sram

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

on-chip

STM32 timers14

st,stm32-timers

USB

on-chip

STM32 OTGFS controller1

st,stm32-otgfs

on-chip

STM32 OTGHS controller1

st,stm32-otghs

Watchdog

on-chip

STM32 watchdog1

st,stm32-watchdog

on-chip

STM32 system window watchdog1

st,stm32-window-watchdog

Connections and IOs

The four mikroBUS interfaces are aliased in the device tree so that their peripherals can be accessed using mikrobus_N_INTERFACE so e.g. the SPI on bus 2 can be found by the alias mikrobus_2_spi. The numbering corresponds with the marking on the board.

For connections on the edge connectors, please refer to Quail for STM32 User Manual [1].

Programming and Debugging

The mikroe_quail board supports the runners and associated west commands listed below.

flash debug attach debugserver rtt
dfu-util ✅ (default)
jlink ✅ (default)

Applications for the mikroe_quail board can be built and flashed in the usual way (see Building an Application and Run an Application for more details).

Flashing

The board ships with a locked flash, and will fail with the message:

Error: stm32x device protected

Unlocking with OpenOCD makes it possible to flash.

$ openocd -f /usr/share/openocd/scripts/interface/stlink-v2.cfg \
    -f /usr/share/openocd/scripts/target/stm32f4x.cfg -c init\
    -c "reset halt" -c "stm32f4x unlock 0" -c "reset run" -c shutdown

Here is an example for the Hello World application.

# From the root of the zephyr repository
west build -b mikroe_quail samples/hello_world
west flash

You should see the following message on the console:

Hello World! mikroe_quail

Debugging

You can debug an application in the usual way. Here is an example for the Hello World application.

# From the root of the zephyr repository
west build -b mikroe_quail samples/hello_world
west debug

References