Intro To ARM Microcontrollers

So you’ve played around with an Arduino board and maybe a couple of other 8 bit microcontroller development boards and now you want to move to something a bit more powerful.

How about a 32bit ARM based microcontroller?

In this course I’ve selected two inexpensive development boards and will use them as examples to explain how they are alike and what you might expect from other devices. We’ll install the Eclipse IDE and GCC open source compiler then investigate some examples of accessing the most common peripherals. We will explore the device datasheets and discuss what attributes to choose when selecting a device.

We’ll also investigate the peripheral device library code supplied by the device vendors.

When we’re finished you should be able to install the IDE and related software and download code to these inexpensive devices.

You will know how to access the most common features and apply them to your own projects.

Bring your projects and questions as the final class segment will be dedicated to whatever topics the class is most interested in.

Prerequisites: You should know the basics of working with files and programs on a PC be able create and understand a simple C program. If you’re not familiar with C programming, there are numerous online tutorials that can bring you up to speed in just a few evenings.

Please bring a Windows based laptop with you.

The classroom has several desktop PCs available for those that do not have access a laptop.

Optional Hardware: Although not required, if you’re interested in running the examples at home, you may want to purchase one or both of the subject devices used in the class. These are:

Option1: STM32f103 Minimum System Development Board (sometimes called the “Blue Pill Board”)

with this you’ll also need a USB-Serial TTL adapter (preferred based on CP2102 or CH340G chip)

get the adapter that comes with a set of 4 connecting wires.

A solderless breadboard (400 or 830 tie points) is handy but not required.

*This option will require some soldering to attach the header pins

Here's some links to the above components (may be outdated)

https://www.amazon.com/HiLetgo-STM32F103C8T6-Minimum-Development-Learning/dp/B01DLIJOAO/ref=sr_1_12?dchild=1&keywords=STM32f103+Minimum+System+Development+Board&qid=1569932174&sr=8-12

https://www.amazon.com/HiLetgo-CP2102-Converter-Adapter-Downloader/dp/B00LODGRV8/ref=sr_1_4?keywords=CP210x+USB+to+Serial&qid=1569932250&sr=8-4

https://www.amazon.com/HiLetgo-Solderless-Breadboard-Circuit-Prototyping/dp/B00LSG5BJK/ref=sr_1_20?crid=6V9CBPJMY2MD&keywords=solderless+breadboards&qid=1569932289&sprefix=Solderless+%2Caps%2C162&sr=8-20

Option 2: Arduino DUE (or SAM3x8E based clone) with USB cable.

https://store.arduino.cc/usa/due

OR

https://www.amazon.com/SAM3X8E-32-bit-Cortex-M3-Arduino-Compatable/dp/B077GNMQ17

Course Outline

Day 1 Introductions, Microcontroller review,

What Is ARM? Software Installation and Configuration.

Day 2 Subject Devices Demo, Programming Tools:

Driver Libraries, Peripheral Examples – Part

Day 3: USART, Interrupts, Timers, ADC and DMA

Day 4: Students Choice:

Description of download links:

BLUEPILL_CP2102_Connections.png Connection ciagram for USB Serial adapter to BluePill board.

SAM3x8E_DMA1.zip DMA example project for Arduino DUE board

SAM3x8E_INT1.zip External Interrupt example eroject for Arduino DUE board

SAM3x8E_UART_INTx.zip UART with interrupt example eroject for Arduino DUE board

SAM3x8E_UARTx.zip Basic UART (improved) example eroject for Arduino DUE board

STM32F103_EXTI.zip External Interrupt example project for BluePill board

STM32F103_SK6812A.zip Addressable RGB LED (neopixel) example project for BluePill board

STM32F103_UART_INTx.zip UART with interrupt example project for BluePill board

Toolchain_Reinstall_Procedures.pdf Detailed instructions for fixing toolchain install in eclipse

pspad501_setup_int.zip PSPad text editor setup

putty.zip puTTY terminal software