Embedded Systems - from the Guy Who Started It All
Desktop computers constitute approximately 0% of all microprocessor sales by volume. Who knew? Not very many people as it turns out.
In this short video, the inventor of the microprocessor, Ted Hoff, discusses how the average person doesn't understand the role of embedded control.
(Intel 4004 image by Thomas Nguyen CC BY-SA 4.0)
Read MoreOn the Practice of Writing
Calvin: I used to hate writing assignments, but now I enjoy them. I realized that the purpose of writing is to inflate weak ideas, obscure poor reasoning, and inhibit clarity. With a little practice, writing can be an intimidating and impenetrable fog! ?? Want to see my book report?
Hobbes: (Reading Calvin's paper) "The Dynamics of Interbeing and Monological Imperatives in Dick and Jane: A Study in Psychic Transrelational Gender modes."
Calvin: Academia, here I come!
― Bill Watterson, Homicidal Psycho Jungle Cat
Quadcopter Controller: Buttons and Joysticks
The quadcopter controller has some normal push buttons which work the same way that the karaoke buttons work. The on/off switch is a slide switch (like karaoke’s on/off switch but its action goes side-to-side instead up-and-down), the rest are momentary buttons. From the outside, it may not be obvious that the controller’s flight trimmer inputs are momentary buttons, they look like rocker switches
Read MoreEmbedded Wednesdays: Number Representation
Big is best, small sucks, let's agree to get along. Do you need an escape? This week on Embedded Wednesdays, Andrei looks at how numbers are represented when they get outside of the microcontroller.
Read MoreESE101: Picking a Processor Platform
I’ve covered quite a bit in ESE101 so far. It started with a fictional microcontroller and now you understand how a microcontroller uses instructions, registers, and memory to get its job done.
The fictional microprocessor was good enough for introducing the basics, but it’s time to move on to a real microcontroller. Read on to learn more about the microcontroller I’ve chosen, and more interestingly why I chose it.
Also, dev kits may be given away.
Read MoreAn Idea for a Weasley Clock
In Harry Potter, there was a magical item called a Weasley Clock which showed where everyone in the family was at particular time. Tom from Australia wrote in, wanting to design one but not sure how to get started. He’s new to embedded but is a software developer. I was amused by the idea of such a clock and procrastinating about another project so I put together a response. Happily, Tom says you can read his mail so here it is.
Read MoreButtons and Knobs
Last week, I introduced two inputs on karaoke: the power button and the door-closed switch. Those are simple buttons: one electrical line carries one digital signal.
This week, I’ll show how to put a lot of buttons on a few electrical lines and introduce some non-digital signals.
Read More
Embedded Wednesdays: Getting Started in Embedded Systems
Andrei Chichak writes the Embedded Wednesdays column, for people who want to get started in embedded systems software. For projects, his posts use the STM32 Discovery dev kits (specifically the STM32F407G-DISC1). His articles include introductory information such as a crash course in C and getting started with the board as well as more advanced topics like; DMA with ping-pong buffers, SPI and how to use an oscilloscope, current capacity of processor pins and how to NOT let the smoke out, identifier visibility and scope, new features in C like dot dot dot ranges in case statements, and initializers, and how to schedule events in C using Voodoo underflow math.
Read MoreEmbedded Wednesdays: Tools of the Trade
You need to write your first program for an embedded system. Your IT people say that you can have any software you need as long as it is Microsoft Office. Do you have everything you need to do your job? No, you're in big trouble.
Embedded systems programming uses a set of very specialized tools, and if you've never used them before, you can spend a lot of money and not get what you need.
This week on Embedded Wednesdays, we look at the tools used to produce embedded systems firmware. We give an overview of the compilers, debuggers, and IDEs you will be using. After reading this post, and doing some research, you should have the information you need to go to your boss and say "NO, I can't control that cutting laser with an Excel macro. I need this..."
Read More
ESE101: Microcontrollers Will Make You Jump Jump
So far in ESE101, I’ve introduced a fictional microcontroller that has three instructions: ADD, SUB, and MOVE. The microcontroller uses three simple steps to run each instruction from memory and then move on to the next instruction in memory.
Until now we assumed instructions would be executed sequentially (in order), but this week we’ll add a few new instructions that will let our microcontroller jump around to whichever instruction it wants to.
Press All the Buttons!
Confession time: I hate blinking lights. Oh, I know, I read (and wrote!) the last few posts and I like controlling LEDs as much as the next engineer, but I don’t like seeing lights blink. They’re often too bright, too annoying, and too useless. Pushing buttons, on the other hand… well, if the world ends, it might be because I wanted to know what would happen when I pushed some big red button.
Read More
Embedded Wednesdays: Shifty Acceleration
This week on Embedded Wednesdays, we take a look at bit shifting data, how this relates to 2's complement data, and use this information to fix the data from an accelerometer.
Read MoreESE101: Immediately!
Our existing ADD, SUB, and MOVE instructions move numbers to and from registers and memory. Let’s add a new source for these instructions called an immediate value.
An immediate value is a number that is hardcoded inside the instruction itself; the immediate value doesn’t come from a register or memory location.
Read on - immediately!
Read MoreKaraoke's Disco Lights
Having looked at the voltage of simple LEDs in the quadcopter and used beep mode to figure out BB-8’s more complicated LEDs, this week I look at how to make many lights turn on and off.
Read More
Embedded Wednesdays: My Complements to Numbers
A question was floating around on the reddit Embedded forum as well as in the real life Embedded Wednesdays group; what the heck is a 2's complement integer.
This week Andrei looks at 2's complement and other methods of encoding negative numbers on computers.
Read MoreEmbedded Software Engineering 101
Chris Svec writes the Embedded Software Engineering 101 column (aka ESE101), focused on how microcontrollers work. For projects, his posts use the TI MSP430 LaunchPad dev kits (specifically the MSP-EXP430F5529LP), though the concepts apply for all embedded platforms. Chris writes about microcontroller basics, memory, interrupts, and timers - and more!
Read More