AN4624
Application note
Getting started with the STM32 Nucleo
and the M24SR expansion board X-NUCLEO-NFC01A1
Introduction
This document describes how to develop a M24SR based application using the STM32
Nucleo platform and the M24SR expansion board (X-NUCLEO-NFC01A1), within the
STM32Cube software environment (X-CUBE-NFC1). The M24SR expansion board is a
dynamic NFC tag board with a 64kbits M24SR device and 3 LEDs.
Type
Firmware
Tool
Table 1. Applicable firmware and tool
Part number
X-CUBE-NFC1
X-NUCLEO-NFC01A1
December 2014
DocID027186 Rev 1
1/17
www.st.com
1
Contents
Contents
AN4624
1
2
3
4
5
6
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2
Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1
Hardware description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
STM32F401RE Nucleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.1
3.1.2
M24SR expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Software description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
STM32Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1
Firmware for STM32 Nucleo with X-NUCLEO-NFC01A1 expansion
3.2.2
board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Hardware software and system setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Hardware setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3.1
3.3.2
Software setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
System setup guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.3
3.3
Software overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1
STM32Cube HAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2
4.3
Board support package (BSP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4
Guide for writing application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Relevant APIs for M24SR application . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1
5.1.1
Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1.2
Writing data to M24SR expansion board . . . . . . . . . . . . . . . . . . . . . . . . 15
Application description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.2
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2/17
DocID027186 Rev 1
AN4624
List of tables
List of tables
Table 1.
Table 2.
Table 3.
Applicable firmware and tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
DocID027186 Rev 1
3/17
3
List of figures
List of figures
AN4624
Figure 1.
Figure 2.
Figure 3.
Figure 4.
Figure 5.
STM32-F4 Nucleo board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
X-NUCLEO-NFC01A1 M24SR expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Keil µVision installed version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
STM32 packages for Keil µVision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4/17
DocID027186 Rev 1
AN4624
1
References
References
[1]: STMicroelectronics databrief X-CUBE-NFC1, “STM32Cube expansion software for X-
NUCLEO-NFC01A1 Expansion Board”.
[2] STMicroelectronics databrief X-NUCLEO-NFC01A1, “Dynamic NFC tag expansion
board based on M24SR for STM32 Nucleo”.
DocID027186 Rev 1
5/17
16
Acronyms and abbreviations
AN4624
2
Acronyms and abbreviations
BSP
GUI
HAL
I2C
IDE
LED
Table 2. Acronyms and abbreviations
Acronym
Description
Board support package
Graphical user interface
Hardware abstraction layer
Inter-integrated circuit
Integrated development environment
Light emitting diode
6/17
DocID027186 Rev 1
AN4624
3
3.1
3.1.1
Getting started
Getting started
Hardware description
This section describes the hardware components needed for developing a M24SR based
application.
The X-NUCLEO-NFC01A1 expansion board is compatible with all the STM32 Nucleo
boards. In this document the STM32F401RE Nucleo board is used as an example.
The following sub-sections describe the individual components.
STM32F401RE Nucleo
STM32F401RE Nucleo board belongs to STM32F401xD/xE family which is based on the
high-performance ARM® Cortex®-M4 32-bit RISC core operating at a frequency of up to
84 MHz. The Cortex-M4 with FPU core features a single precision floating point unit (FPU)
which supports all ARM single-precision data-processing instructions and data types. It also
implements a full set of DSP instructions and a memory protection unit (MPU) which
enhances application security. It provides an affordable and flexible way for users to try out
new ideas and build prototypes with any STM32 microcontroller lines. The Arduino™
connectivity support and ST Morpho headers make it easy to expand the functionality of the
Nucleo open development platform with a wide choice of specialized expansion boards. The
STM32 Nucleo board does not require any separate probe as it integrates the ST-LINK/V2-
1 debugger/programmer. The STM32 Nucleo board comes with the STM32 comprehensive
software HAL library together with various packaged software examples.
The STM32F401RE Nucleo firmware and related documentation is available on
www.st.com.
Figure 1. STM32-F4 Nucleo board
DocID027186 Rev 1
7/17
16
Getting started
AN4624
3.1.2
M24SR expansion board
The X-NUCLEO-NFC01A1 is a dynamic NFC tag expansion board usable with the STM32
Nucleo system. It is also compatible with Arduino UNO R3 connector layout, and is
designed around the STMicroelectronics M24SR dynamic tag. The X-NUCLEO-NFC01A1
interfaces with the STM32 MCU via I2C.
Figure 2. X-NUCLEO-NFC01A1 M24SR expansion board
8/17
DocID027186 Rev 1