Eye diagrams are a quick, visual means to quickly identify whether there are any signal integrity issues before moving on to more refined analysis. Eye diagrams help with the effective analysis of serial data, and offer both qualitative and quantitative insight regarding the data communications signal path itself and what might be affecting signal integrity. […]
FAQ
General tips on debugging embedded hardware
When you first start out after graduating from college with a B.S. in electrical engineering, you have a bright, shiny new degree that might not be exactly what you expected. You had to take a series of fundamental courses in math and science for the first year or two. The third year is spent learning […]
Multicore processors terminology
Multicore processors have two or more processors in the same integrated chip. Early on in practical applications, multiple cores were used independently of each other. Concurrency isn’t as much of an issue if cores are not working in tandem on the same problem. Supercomputers and high-performance computing (HPC) saw multiple cores first. One difference between […]
The security of connected devices
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 […]
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 […]