Version 4

    Part 2: A Tour Around The STM32L4R9I-DISCOVERY + ARM Processors


    <<< Previous Blog:      ST32L4R9I-DISCO Kit: Part 1                    >>>Next Blog:               STM32L4R9I-Discovery Board: Part 3 (the development cycle)



    1.     Tour of STM32L4R91-DISCOVERY

    Although I could have made this second blog about the STM32L4R9I-discovery board I really wanted to make a cool infographic detailing the various parts. Well, a week later playing around this GIMP and MS Paint and I'm still no nearer. Therefore it is probably time to jump-ahead to list and discuss what this board can offer. The following shows the front and rear of the basic board.


    {gallery} STM32L4R9I-DISCOVERY


    The front of the board.


    The rear of the board

    The STM32L4R9I-discovery board contains the main following parts:


    1.1     Main Processor

    The board contains the STM32L4R9A116 which is an ultra-low power MCU with a 32-bit Cortex-M4 CPU. This device comes with 2MBytes of internal flash program memory and 640KBytes of internal RAM. This device also has a Floating Point Unit (FPU) so complex mathematical functions can be run with less impact on the program's performance. Many of the other device's specifications are probably best answered by the sub-sections below detailing what has been connected up to other board peripherals and connectors.


    1.2     The Display

    This is the most obvious part when looking at the board, and in truth the fun part that wanted me to apply for this roadtest. The 1.2" 390x390 pixel AMOLED display also incorporates a capacitive touch panel; this technology is often used in smart watches.


    There are two micro USB connectors to this board. One is for connecting to the development platform (the onboard ST-LINK/V2-1) for debugger/programmer and connects to a dedicated ST-LINK MCU. The other USB connector is labeled as USB On-The_Go (OTG) which will enable other USB devices to be connected into the board and interfaced to the local firmware that is running e.g. as a USB host perfect for adding a mouse or keyboard. Alternatively the board could be used as a USB device.


    1.4     Audio Capability

    The board comes with a great many features for audio interaction by the nature of the inbuilt Serial Audio Interface (SAI). An interesting training article on SAI can be found here on the STMicroelectronics Website. Additionally the board has two ST-Micro-Electro-Mechanical System (MEMS) microphones. There is an amplified 3.5mm stereo headphone jack which also has a microphone input; very useful for taking directly to some desk speakers.


    1.5     Board Memory

    In addition to the memory allocated internal to the MCU, the board also has the following additional external memory:

    • 16Mbit asynchronousPSRAM
    • 512 MBitOcto-SPI Flash
    • MicroSD Card Slot


    The PseudoStatic RAM (PSRAM) provides fast high density RAM for the program to use, whilst at the circuit level being easy to operate just like SRAM. The octo-SPI flash allows a large memory capability to be added to the MCU with minimal pin count/interfacing. A useful application note on the octal-SPI interface can be found here. The MicroSD slot allows additional large flash memory to be added to any application being designed.


    1.6     Buttons and Lights

    There is limited extra on board lights and buttons, but enough for general testing out. There are:

    • 2 user LEDs
    • 1 reset push-button
    • 4-way joystick + selection button (the blue square in the photographs)
    • a 5v power LED
    • A multi-colour LED on the ST-LINK input.


    1.7     Expansion Connectors

    The main board has several main connectors to allow interfacing to external peripheral boards and shields. These are:

    • camera connector - for connecting to this camera module Product LinkProduct Link
    • external I2C connector - always useful for quickly breaking out to other boards
    • PMODconnector - I actually purchased my first PMOD specifically for trying out with this board. It is a compass/gyro unit so should add some extra cool functionality to the board.
    • STMod+ connector
    • Arduino Connector (Uno v3) - the Arduino shields (Uno style) can be added to the STM board for additional functionality. That is really great as many developers will have a few of these from old Arduino projects. From the data sheets it appears caution must be exercised as many Uno shields are 5v whereas the STM32 can only allow 3.3v inputs.


    1.8     Breakout Board

    Additionally the DISCOVERY kit comes with a board that plugs into the STMod+ connector. This adds capability to utilise MikroBUS shields as well as Grove connectors. This STM32L4R9I-discovery board appears to be able to connect physically to almost any of the commonly available shields and maker community addons - that is neat.

    STM32L4R9I breakout board for MikroBUS and Grove System

    2.     ARM Processors General

    I didn't know much about ARM and had concentrated on the PIC range of microcontrollers? Therefore I did some newcomer reading and this is my interpretation of what I read...please feel free to discuss, correct or add and I can amend this article if required.


    2.1     What is ARM - it seems like lots of people make them?

    There are many manufacturers of microcontrollers, take for example the Microchip range of a few years ago. If you bought a Microchip MCU (the PIC range) you had a device with a core designed by Microchip Technology Inc. Back in 2016 Microchip bought the Atmel company, who's MCU range was ARM based, and now the Microchip range also sports ARM devices. This can be confusing if you have already noticed another company making an ARM device, like STMicrocontrollers STM32 and NXP. How can it be that they all make ARM devices? You may have even heard that ARM chips are in iPhones and other smart phones.


    If you search for ARM devices you'll find plenty. But you won't find any that are manufactured by ARM themselves. ARM design the devices, and do a fantastic job of that, and then sell that Intellectual Property (IP) to anyone who wants to manufacturer it, be that Microchip, NXP, STM etc Many of these companies buy in the ARM IP, place it on their silicon and couple it with RAM, program memory and with the other peripherals and interfaces to produce their final product. This is now a 'system on a chip'. That is why these devices have different specifications but will all detail a certain ARM core. A selected ARM family core will be the same across those devices....well almost....the big players, like Apple, will pay ARM extra money to adjust certain aspects of their ARM IP to suit their requirements. The popular Raspberry Pi 3 is an ARM based Single Board Computer (SBC) but the actual processor device is made by Broadcom (who have licensed IP for one of the ARM cores).


    An interesting article can be read here on the history and formation of ARM


    2.2     Companies currently using ARM cores

    The following companies are currently using ARM cores in their devices: Amazon Annapurna Labs, Analog Devices, Apple, MACOM Technology Solutions, Atmel, Broadcom, Cypress Semiconductor, NXP Semiconductors, NVidia, Xilinx, Qualcomm, Renesas, Samsung Electronics, ST Microelectronics and Texas Instruments.


    The actual architecture and instruction set of the baseline is, like most things, evolving with time and so ARM produce different versions of their architecture e.g. ARMv6, ARMv7


    These architectures are also 'tweaked' to produce different profiles that are more specialised for their end application. This gives rise to some of these architecture profiles:

    • 'M' for microcontroller: smaller instruction set, often no inbuilt floating point maths unit, no memory management and no cache. They can manage FreeRTOS. They are low cost.
    • 'A' for Application: often includes memory management, cache and floating point maths unit. Can run full OS like Linux. Cost is higher than 'M' profiles.
    • 'R' for Realtime: specifically for safety critical applications with features to make it more resilient and fault tolerant.


    A good summary of the current ARM range can be found here


    2.3     The Main Microcontroller(M) ARM Cores


    • Cortex-M0
    • Cortex-M0+
    • Cortex-M1



    • Cortex-M3



    • Cortex-M4                    <<< The STM32L4R9I16
    • Cortex-M7



    • Cortex-M23
    • Cortex-M33

    Cortex-M Series - ARM

    [Image source:]


    2.4     Where Does the STM32L4R9I-DISCOVERY Fit Into This Range?

    From the STMicroelectronics website here they describe the STM32L4R9 as "...extends the ultra-low power portfolio and performance with an ARM Cortex-M4 core with DSP and floating-point unit (FPU) at 120MHz."


    In summary, STMicroelectronics have licensed the ARM Cortex-M4 core, matched it with a FPU, added program memory, RAM and a whole host of peripherals such as I2C, USART, SPI and implemented all of that into their own silicon die fabric to create one very powerful but low energy consumption device.


    3.     Reference Material


    4.     Future Steps For Me

    This blog content, and those preceeding it, will be used to summarise my roadtest report which is due in a few weeks time. In my next blog I aim to be discussing the basic development cycle that I have been undertaking over the last week - the highs and lows of that.