Take an MCU and add Bluetooth or Wi-Fi connection to the internet and you have an Internet of Things (IoT) device, and smart devices that are connected to the internet are everywhere. Smartphones, home automation, fitness bands, and products like the Amazon Echo are all examples of IoT. The problem with millions of internet-connected MCUs […]
FAQ
What are compilers, translators, interpreters, and assemblers?
Translators, compilers, interpreters and assemblers are all software programming tools that convert code into another type of code, but each term has specific meaning. All of the above work in some way towards getting a high-level programming language translated into machine code that the central processing unit (CPU) can understand. Examples of CPUs include those […]
What is differential signaling?
Differential signaling is used in many communication schemes including HDMI, USB, DVI, CAN, LVDS, and more. Differential signaling uses two wires and therefore two signals accomplish transmitting a series of bits from one point to another. In the figure below, the first image demonstrates single-ended signaling, which uses a single wire and pulses 0s and […]
Containerization and how it differs from Virtual Machines
A Virtual Machine (VM) is a machine that runs on another machine. Virtual machines can be used to run several different operating systems on the same computer hardware. For example, a computer (“machine”) running Linux can have a VM installed on it that is running Windows and for all intents and purposes, the Windows machine […]
Need more GPIO on your MCU? Try the Serial Peripheral Interface (SPI)
SPI is a simple serial communication interface that was originally developed by Motorola in the 1980s for use over short distances of a few feet.[i] SPI can move up to several Mbps, is flexible enough to stream raw data in full duplex with little overhead, and is pretty flexible to work with. SPI supports standard […]
Debouncing switches in hardware and software
A switch can be wired to a digital input on a microcontroller (MCU), but the switch contacts can mechanically bounce together and apart a few times within milliseconds before finally closing. It’s also common on relays and solenoids that pull heavier current than PCB-mounted electronics and is sometimes called “chatter” because you can hear the […]
What is I2C a.k.a. “I-squared-C”?
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 […]
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 […]