Introduction to Microcontrollers - Timers

Mike Silva September 27, 20132 comments

Timers - Because "When" Matters

Computer programs are odd things, for one reason because they have no concept of time.  They may have the concept of sequential execution, but the time between instructions can be essentially any number and the program won't notice or care (unless assumptions about time have been built into the program by the programmer).  But the real world is not like this.  In the real world, especially the real embedded world,...


Introduction to Microcontrollers - More On Interrupts

Mike Silva September 25, 2013

A Little More Detail About The Interrupt Mechanism

It's time to look a little closer at what happens in an interrupt request and response.  Again this is in general terms, and different microcontroller designs may do things somewhat differently, but the basics remain the same.  Most but not all interrupt requests are latched, which means the interrupt event sets a flag that stays set even if the interrupt event then goes away.  It is this latched flag...


Introduction to Microcontrollers - Interrupts

Mike Silva September 18, 20135 comments

It's Too Soon To Talk About Interrupts!

That, at least, could be one reaction to this chapter.  But over the years I've become convinced that new microcontroller programmers should understand interrupts before being introduced to any complex peripherals such as timers, UARTs, ADCs, and all the other powerful function blocks found on a modern microcontroller.  Since these peripherals are commonly used with interrupts, any introduction to them that does not...


Introduction to Microcontrollers - More On GPIO

Mike Silva September 13, 20134 comments

Now that we have our LED Blinky program nailed down, it's time to look more closely at outputs, add button/switch inputs, and work with reading inputs and driving outputs based on those inputs.

It's ON - No, It's OFF - No, It's ON...

I have to confess, I cheated.  Well, let's say I glossed over something very important.  In our LED Blinky program, we never cared about whether an output '1' or an output '0' turned on the LED.  Since we were just...


Introduction to Microcontrollers - Hello World

Mike Silva September 11, 201314 comments

Embedded Hello World

A standard first program on an embedded platform is the blinking LED.  Getting an LED to blink demonstrates that you have your toolchain set up correctly, that you are able to download your program code into the μC, and that the μC and associated circuitry (e.g. the power supply) is all working.  It can even give you good evidence as to the clock rate that your microcontroller is running (something that trips up a great many people,...


Introduction to Microcontrollers - Further Beginnings

Mike Silva September 1, 20133 comments
Embedded Programming Basics

This tutorial entry will discuss some further embedded programming basics that you will need to understand before proceeding on to the LED blinky and other example programs. We will do this by looking at the general organization and types of instructions found in most microcontrollers, and how that organization and those instructions are reflected (or, in some cases, ignored) by the C programming language.

Basic CPU...

Introduction to Microcontrollers - Beginnings

Mike Silva August 20, 201312 comments

Welcome to this Introduction to Microcontroller Programming tutorial series. If you are looking to learn the basics of embedded programming for microcontrollers (and a bit of embedded hardware design as well), I hope these tutorials will help you along that journey. These are my first postings here, and I am writing this tutorial series because over the years I have seen countless newbies asking the same questions and tripping over the same stumbling blocks, and I thought I might be able to...


Essential Elements to choose a right Processor

Sathyanarayana Hadadi July 23, 2013

         Recently I was working for an automotive client where I was supposed to choose a suitable microcontroller for my project. I started listing down the various microcontrollers available in the market, finally I made a big list and it became tough to finalize the best one. Most of the selected controllers were meeting my requirements, and it was really a tough task to choose the right one.

Then I started listing down the aspects...


Intro to Microcontrollers Part 2: AVR Microcontrollers

July 11, 2013
Introduction

This is part 2 of my playing around with AVR microcontrollers. Last time, I had a basic setup which could program an AVR using the Arduino ISP. I used it to drive a simple 7-segment, multiplexed 4-digit LED display. This is a follow up where I try out some of the other features the ATTiny24A has to offer. I also decided to invest some money in an AVR Dragon programmer/debugger so I'll go over some basic playing and setup with this device. I'll also discuss some of the problems...


Improving the Reload2 active load

Fabien Le Mentec April 23, 2015
Introduction

With another colleague at work, we are currently developing an electronic board that will eventually be powered over Ethernet. To gain more experience with this technology, we prototyped a standalone power supply stage.

We want to test this stage with different load profiles. While we already have professional grade active loads at work, I had previously read about the Reload2 product from Arachnidlabs, a low cost active load sold on Hackaday:


Metal detection: beat frequency oscillator

Fabien Le Mentec January 30, 20161 comment
Plan Introduction Theory Electronics Software Tests ReferencesNext part: building the detector 1. Introduction

This article discusses the implementation of a beat frequency oscillator (BFO) stage for metal detector. While they are mentioned here and there, the article does not detail other important electronic stages such as the power supply, and user interface, the coil or the detector frame. I may write other articles on these topics, and other detection methods.Before...


Embedded Systems - free EdX course by UT-Austin!

Lonnie Honeycutt October 29, 20131 comment

I was very excited to see that there will be an Embedded Systems class available for free at https://www.edx.org/course/utaustin/ut-6-01x/embedded-systems-shape-world/1172

It's free to sign up and take the online class at the EdX website.

More exciting is that the class is based on a TI Launchpad Tiva microcontroller development board.  The Tiva Launchpad features an 80-MHz ARM Cortex M-4 MCU with 256 KB of flash storage, 32 KB of RAM and 43 general purpose I/O pins.  


Introduction to Deep Insight Analysis for RTOS Based Applications

Jacob Beningo September 20, 2017

Over the past several years, embedded systems have become extremely complex. As systems become more complex, they become harder and more time consuming to debug. It isn’t uncommon for development teams to spend more than 40% development cycle time just debugging their systems. This is where deep insight analysis has the potential to dramatically decrease costs and time to market.

Defining Deep Insight Analysis

Deep insight analysis is a set of tools and techniques that can be...


Choosing a Microcontroller for Your Vehicle

Ed Nutter June 7, 20161 comment

There are many things to take into consideration when choosing a microcontroller or microprocessor for your autonomous vehicle.

Voltage

Some processors run on 5V and others use 3.3V.  Be sure to check the documentation before you buy.  Make sure your supply has a high enough amp rating that your microcontroller doesn't lose pwer.

Power

Can the system run using batteries?  Large, automotive sized vehicles can be run from large batteries or inverters in the vehicle.  Smaller...


Cutting Through the Confusion with ARM Cortex-M Interrupt Priorities

Miro Samek February 26, 2016

The insanely popular ARM Cortex-M processor offers very versatile interrupt priority management, but unfortunately, the multiple priority numbering conventions used in managing the interrupt priorities are often counter-intuitive, inconsistent, and confusing, which can lead to bugs. In this post I attempt to explain the subject and cut through the confusion.

The Inverse Relationship Between Priority Numbers and Urgency of the Interrupts

The most important fact to know is that ARM...


Mounting plate for Arduino

Ed Nutter November 30, 2015

While having a breadboard with your microcontroller is necessary, it is very cumbersome if the two aren't fastened together somehow.  You can buy mounting plates, but I choose to make one.

I am using thin plexiglass type glazing material from the hardware store.  You can use the thicker material, but may have to purchase longer screws for stand-offs depending on what you use.

I like using the small Plano tackle boxes, because they can hold the plate, a few parts, batteries and a...


Intro to Microcontrollers Part 2: AVR Microcontrollers

July 11, 2013
Introduction

This is part 2 of my playing around with AVR microcontrollers. Last time, I had a basic setup which could program an AVR using the Arduino ISP. I used it to drive a simple 7-segment, multiplexed 4-digit LED display. This is a follow up where I try out some of the other features the ATTiny24A has to offer. I also decided to invest some money in an AVR Dragon programmer/debugger so I'll go over some basic playing and setup with this device. I'll also discuss some of the problems...


Essential Elements to choose a right Processor

Sathyanarayana Hadadi July 23, 2013

         Recently I was working for an automotive client where I was supposed to choose a suitable microcontroller for my project. I started listing down the various microcontrollers available in the market, finally I made a big list and it became tough to finalize the best one. Most of the selected controllers were meeting my requirements, and it was really a tough task to choose the right one.

Then I started listing down the aspects...