DMA - Monster Machines Moving Massive Memory Mounds

Need to move big amounts of dirt? You could use a tea spoon or something designed for the job, like a dump truck, or a really big dump truck.

In our programs, occasionally, we have to move large blocks of data.  We can move it item by item, or bring out the data moving dump truck of computing, DMA.

This week, Andrei presents two examples of using DMA (with code included).

Read More

DMA - A Little Help From My Friends

Do you need to shoot out a block of data to your SD card and polling is getting you down? Is your system getting crushed by UART interrupts? Direct Memory Access (DMA) is the answer.

DMA is really useful, but it's treated like computer voodoo by many. This week Andrei introduces us to the concepts behind DMA and gives a few examples.

Read More

Discovery: UART Input

Andrei is back from his Christmas hiatus and brings us a post introducing getting input from a UART.

Previously he had covered output using printf, a helper function called _write, and the HAL routine to send data out of the UART. This time we use the other half of the UART, a different HAL routine, _read, and getchar.


Read More

Discovery: UARTs Part 3 - The Final Step

This week Andrei explains how to get a UART working using Cube. How to get printf working. And introduces the newlib standard library.

This is Andrei's final blog post of 2016, and it'll be useful for your Christmas break project where you learn about ARM processors using CubeMX and ST's Discovery board.

Read More

ESE101: Configuring MSP430 Timers

Last time I explained the basics of what a microcontroller timer is and gave an overview of how timers are configured.

This time I’ll walk you through how to configure an MSP430 timer. We’ll use it to blink a light! (By now you’ve probably realized that most embedded system demos involve blinking a light. I’m pretty sure the singularity will look a lot like a rave.)

Read More