I2C stands for “Inter-integrated circuit,” or “inter-IC,” and is a simple, 8-bit, serial communication bus protocol that uses just two bus wires; a serial data wire (SDA) and a serial clock wire (SCL). I2C is integrated into many ICs and allows devices to communicate directly with each other, avoiding CPU cycles. I2C operates on a […]
FAQ
The Internal Processor Bus: data, address, and control bus
A bus is a pathway for digital signals to rapidly move data. There are three internal buses associated with processors: the data bus, address bus, and control bus. Together, these three make up the “system bus.” The system bus is an internal bus, intended to connect the processor with internal hardware devices, and is also […]
MCU vs FPGA — What’s the diff?
FPGAs are highly configurable, general-purpose integrated circuits (ICs) filled with small programmable digital logic building blocks called “logic cells” or “logic elements”. A custom IC, or Application Specific Integrated Circuit (ASIC), is very similar, but with ASICs, a custom circuit design is set in silicon and is difficult to change after the fact (lasers can […]
What is an In-Circuit Emulator?
Embedded systems tend to lack a display, keyboard, and mouse with which to manipulate the microcontroller that you’re trying to program. So a host computer is used for this function, and typically communicates over a serial cable or more recently, Wi-Fi. Once you create, edit, and compile code for your embedded system on a host […]
What is machine learning?
Machine learning, as a type of Artificial Intelligence, is typically used to create models with which to analyze data. Machine learning is a programming process whereby instead of coding a program as with traditional computer architectures, the computer is fed from dozens to thousands of sample data sets that demonstrate what will and will not […]
Writing Efficient C code for Embedded Systems: The cost of unnatural data sizes
Different architectures have different “natural” data sizes. Most MCUs have the same CPU width as data bus width, which makes sense. Some MCUs might have memory that is not consistent with their available data bus width, however. In other words, for some MCUs, there can be a difference between the CPU’s “natural” word length and […]
Avoiding stack overflow in embedded processors
A stack is like a special buffer, or working memory, where processes are tracked. The stack is where processes or tasks “keep notes” on what they need to do the next time the processor becomes available. The stack works “last in, first out,” and tracks local variables as they get pushed onto and popped off […]
Selecting an AC Adapter for your MCU development platform
How do you select an AC adapter to safely power your microcontroller (MC) development board? Most people don’t think much about the AC adapter (power supply) for their development platform, especially if it is included in the development kit. But more often these days, kits come in small boxes with minimal accouterments, perhaps following the […]
Microcontrollers with neural networks: what are they?
Artificial neural networks (ANNs) are silicon-based processor architectures inspired by, and very simply patterned after, the human brain, which learns by example and “prunes” connections that don’t get used anymore. What exactly is an artificial neural network? Dr. Robert Hecht-Nielson, Adjunct Professor of Electrical and Computer Engineering at USCD, was paraphrased by Maureen Caudill as […]
Optimizing power efficiency in microcontrollers
Power efficiency is more important now than in the past, as portable, battery-powered devices compete for market share on features and battery life. Battery technology has not improved radically in the recent past, and attempts at innovation can wreak havoc with overheated batteries that sometimes burst into flames. Therefore, using less energy to do more […]