[ Log In ]
The STM32 ultra basic kit showing all of the components

STM32 Ultra Basic Kit Special Introductory Price!

$34.95
Qty:
The ARM STM32F030 Advanced kit with the book ARM Microcontrollers Programming and Circuit Building Volume 1

ARM Advanced Kit with Book Vol 1

$158.00
Qty:
ST Link v2 for STM32 and STM8 microcontrollers top view of all components

ST-Link v2 STM32 and STM8 Programmer

$9.95
Qty:
STM32F0 microcontroller and interface board top view

STM32 M0 MCU and Interface to Breadboard

$14.95
Qty:
Top view of the bluetooth module

Bluetooth Module

$17.50
Qty:
The ARM microcontroller beginners kit

ARM Microcontroller Beginners Kit (STM32F0)

$39.95
Qty:

ARM Microcontroller Intermediate Kit (STM32F0)

$89.95
Qty:

ARM Microcontroller Advanced Kit (STM32F0)

$119.95
Qty:
Image of the Atmega324p

Atmega324P

$8.50
Qty:
USB 2.0 Cable 10 Foot Type A Male to Type B Male

USB 2.0 Cable Type A Male to Type B Male - 10 FT

$4.80
Qty:

Developing with ARM Microcontrollers/Processors - Introduction

This is the first in an ongoing series on the ARM microcontroller, how to program the microcontroller and the circuit building asociated with this controller. This will be a series very similar to the Arduino or AVR series that you can find on newbiehack.com. I will be demonstrating many different types of circuits, control, communication and sensing using the ARM M0 through the Latest M series that is av­ailable at the time of the video creation.

For those of you that may not know what a microcontroller is, or what is does: a microcontroller can do what its name implies, control. But it can also sense, receive input, respond to events, and communicate with other devices and peripherals such as external computers, other microcontrollers, or other devices that have integrated circuitry that enables it to communicate.

The ways that microcontrollers can sense is that they can receive analog input from a sensor and have that input converted into a digital format enabling the microcontroller to sense things such as temperature, light, sound, pressure, anglular momentum, gravity, movement, etc.

Mircocontrollers can communicate to other devices and computers using serial communication such as I2C, UART, SPI, and all of these can enable wireless communication like wifi, bluetooth, radio frequency, etc.

Microcontrollers can also receive digital input not related to serial communication, such as button presses, encoder pulses, PWM signal, and other types of on/off signals coming in.

The style of instrution I like to give is based on the lowest level fundamentals with circuit building, which means using the single processor and building off of that, not using a platform like th e arduino, discovery board, or Raspberry P (RPi). Learning in this more fundamental way will engender better foundational knowledge on how to design efficiently and prototype for large production. If you start with a platform that alreaqy has a large buildup of circuitry, once you embark on making a real design for production, you need to take steps backward to get to an efficient prototype. Keep arduinos and other interface platforms to one off projects, and learn the fundamentals if you want to get into design that is efficient and cost effective.

The programming language used will be c++ and in most cases, I will create the libraries rather than using existing libraries. This will alow you to understand the code fundamentals on how the peripherals and external devices really work and you will be able to code more efficiently. There will be cases that I use libraries where the creation of a library would be far too complex and that the library in question has already gone through quite a bit of scrutiny. One library that comes to mind is accessing a file system on an SD card where the library has functions to read, write and manipulate a FAT File allocation system.

Since the microcontroller is a surface mount device, we can't just plug this into a breadboard. We need a way to get the pins into a breadboard and we will be using this card and interface. The card simply contains the ARM microcontroller and a way to get the legs of the microcontroller into the tie strips of the breadboard. The card was design to specifically use three breadboards, one for each of three sides of the card. The configuration works well since there are many tie strip connections for each pin and there is a break between the breadboard to add a resistor or other component to another tie strip. For instance, a resistor can be placede here and the LED placed here which is more visually coherent than placing the components in a zigzag on neighboring tie strips.

We will delve into the reference manual for this microcontroller from time to time. The STM32F030 reference manual is complete with all the information you will need to access all of the features of the STM32F030 microcontroller.

Next Page: Installing and Setting up the IDE

ARM STM32 Microcontroller Series Index:

Introduction
Installing and Setting up the IDE
Connect the ST-Link v2 Interface to your Computer
Introduction to the CoIDE
Connecting the ST-Link v2 to the STM32 Microcontroller

STM32 PCB Brreakout Diagram and Pinout

Use the scroll bars to pan the diagram to see the pins on the right and at the bottom.
Pin 1:VDD Digital Power Supply
Pin 2: PC13 - RTC_TAMP1, RTC_TS, RTC_OUT, WKUP2
Pin 3: PC14 - OSC32_IN
Pin 4: PC15 - OSC32_OUT
Pin 5: PF0 - OSC_IN
Pin 6: PF1 - OSC_OUT
Pin 7: NRST RESET INPUT OR INTERNAL RESET OUTPUT
Pin 8: PC0 - EVENTOUT - ACD_IN10
Pin 9: PC1 - EVENTOUT - ADC_IN11
Pin 10: PC2 - EVENTOUT - ADC_IN12
Pin 11: PC3 - EVENTOUT - ADC_IN13
Pin 12: VSSA ANALOG GROUND
Pin 13: VDDA ANALOG POWER SUPPLY
Pin 14: PA0 - USART2_CTS - ADC_IN0, RTC_TAMP2, WKUP1
Pin 15: PA1 - USART2_RTS, EVENTOUT - ADC_IN1
Pin 16: PA2 - USART2_TX, TIM15_CH1 - ADC_IN2
Pin 17: PA3 - USART2_RX, TIM15_CH2 - ADC_IN3
Pin 18: PF4 - EVENTOUT
Pin 19: PF5 - EVENTOUT
Pin 20: PA4 - SPI1_NSS, USART2_CK, TIM14_CH1 - ADC_IN4
Pin 21: PA5 - SPI1_SCK - ADC_IN5
Pin 22: PA6 - SPI1_MISO, TIM3_CH1, TIM1_BKIN, TIM16_CH1, EVENTOUT - ADC_IN6
Pin 23: PA7 - SPI1_MOSI, TIM3_CH2, TIM14_CH1, TIM1_CH1N, TIM17_CH1, EVENTOUT - ADC_IN7
Pin 24: PC4 - EVENTOUT - ADC_IN14
Pin 25: PC5 - ADC_IN15
Pin 26: PB0 - TIM3_CH3, TIM1_CH2N, EVENOUTOUT - ADC_IN8
Pin 27: PB1 - TIM3_CH4, TIM14_CH1, TIM1_CH3N - ADC_IN9
Pin 28: PB2
Pin 29: PB10 - SPI2_SCK, I2C1_SCL, I2C2_SCL
Pin 30: PB11 - I2C1_SDA, I2C2_SDA, EVENTOUT
Pin 31: VSS GROUND
Pin 32: VDD DIGITAL POWER SUPPLY
Pin 33: PB12 - SPI2_NSS, TIM1_BKIN, EVENTOUT
Pin 34: PB13 - SPI2_SCK, I2C2_SDA, TIM1_CH1N
Pin 35: PB14 - SPI2_MISO, TIM1_CH2N, TIM15_CH1
Pin 36: PB15 - SPI2_MOSI, TIM1_CH3N, TIM15_CH1N, TIM15_CH2
Pin 37: PC6 - TIM3_CH1
Pin 38: PC7 - TIM3_CH2
Pin 39: PC8 - TIM3_CH3
Pin 40: PC9 - TIM3_CH4
Pin 41: PA8 - USART1_CK, TIM1_CH1, EVENTOUT, MCO
Pin 42: PA9 - USART1_TX, TIM1_CH2, TIM15_BKIN
Pin 43: PA10 - USART1_RX, TIM1_CH3, TIM17_BKIN
Pin 44: PA11 - USART1_CTS, TIM1_CH4, EVENOUT
Pin 45: PA12 - USART1_RTS, TIM1_ETRM EVENTOUT
Pin 46: PA13 - IR_OUT, SWDIO
Pin 47: PF6 - I2C2_SCL
Pin 48: PF7 - I2C2_SDA
Pin 49: PA14 - USART2_TX, SWCLK
Pin 50: PA15 - SPI1_NSS, USART2_RX, EVENTOUT
Pin 51: PC10
Pin 52: PC11
Pin 53: PC12
Pin 54: PD2 - TIM3_ETR
Pin 55: PB3 - SPI1_SCK, EVENTOUT
Pin 56: PB4 - SPI1_MISO, TIM3_CH1, EVENTOUT
Pin 57: PB5 - SPI1_MOSI, I2C1_SMBA, TIM16_BKIN, TIM3_CH2
Pin 58: PB6 - I2C1_SCL, USART1_TX, TIM16_CH1N
Pin 59: PB7 - I2C1_SDA, USART1_RX, TIM17_CH1N
Pin 60: BOOT0 BOOT MEMORY SELECTION
Pin 61: PB8 - I2C1_SCL, TIM16_CH1
Pin 62: PB9 - I2C1_SDA, IR_OUT, TIM17_CH1, EVENTOUT
Pin 63: VSS GROUND
Pin 64: VDD DIGITAL POWER SUPPLY