
Use DPLL to Lock Digital Oscillator to 1PPS Signal
Introduction There are occasions where it is desirable to lock a digital oscillator to an external time reference such as the 1PPS (One Pulse Per Second) signal output from a GPS receiver. One approach would be to synchronize a fixed frequency...

The habitat of hardware bugs
The Moscow apartment which little me called home was also home to many other creatures, from smallish cockroaches to biggish rats. But of course we rarely met them face to face. Evolution has weeded out those animals imprudent...

Digital PLL's -- Part 2
In Part 1, we found the time response of a 2nd order PLL with a proportional + integral (lead-lag) loop filter. Now let’s look at this PLL in the Z-domain [1, 2]. We will find that the response is characterized by a loop natural...

From Baremetal to RTOS: A review of scheduling techniques
●5 commentsTransitioning from bare-metal embedded software development to a real-time operating system (RTOS) can be a difficult endeavor. Many developers struggle with the question of whether they should use an RTOS or simply use a bare-metal scheduler....

Choosing a Microcontroller for Your Vehicle
There are many things to take into consideration when choosing a microcontroller or microprocessor for your autonomous vehicle.VoltageSome processors run on 5V and others use 3.3V. Be sure to check the documentation before you buy. ...

Digital PLL's -- Part 1
1. Introduction Figure 1.1 is a block diagram of a digital PLL (DPLL). The purpose of the DPLL is to lock the phase of a numerically controlled oscillator (NCO) to a reference signal. The loop includes a phase detector to compute ...

Best Firmware Architecture Attributes
●1 commentArchitecture of a firmware (FW) in a way defines the life-cycle of your product. Often companies start with a simple-version of a product as a response to the time-to-market caveat of the business, make some cash out...

A few uses for an autonomous vehicle
From the time technology that we have come to know was invented, it has been used to gain an advantage militarily or to make life easier. Military usage seems to be a driving factor, but it is not the only factor. Guerilla tactics played...

Stability or insanity
I've just spent over two weeks getting ready to do my next video. It was a combination of one of those vast underestimations one occasionally makes, combined with falling into a bit of an obsession.I am, at this point, not only wondering if...

Beyond the RTOS: A Better Way to Design Real-Time Embedded Software
An RTOS (Real-Time Operating System) is the most universally accepted way of designing and implementing embedded software. It is the most sought after component of any system that outgrows the venerable "superloop". But it is also the design...

Byte and Switch (Part 1)
●1 commentImagine for a minute you have an electromagnet, and a microcontroller, and you want to use the microcontroller to turn the electromagnet on and off. Sounds pretty typical, right?We ask this question on our interviews of entry-level electrical...

Introduction to Microcontrollers - Hello World
●3 comments[quicklinks] 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...

How to Succeed in Motor Control: Olaus Magnus, Donald Rumsfeld, and YouTube
Almost four years ago, I had this insight — we were doing it wrong! Most of the application notes on motor control were about the core algorithms: various six-step or field-oriented control methods, with Park and Clarke transforms,...

Introduction to Microcontrollers - More On Interrupts
[quicklinks] 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...

VHDL tutorial - Creating a hierarchical design
[quicklinks]In earlier blog entries I introduced some of the basic VHDL concepts. First, developing a function ('VHDL tutorial') and later verifying and refining it ('VHDL tutorial - part 2 - Testbench' and 'VHDL tutorial - combining clocked and...

Coroutines in one page of C
A coroutine is a function that you can jump back into after returning from it - and it remembers where it was in the code, and all the variables. This is very useful at times. One use is generating a sequence of values. Here's how you can...

An overview of Linux Boot Process for Embedded Systems
●2 commentsThis Text provides an insight in to the Embedded Linux Boot Process. Reader should have a basic Knowledge of Boot Process in general and should be familiar with Embedded Linux Boot Process..................PART-A................(1) Software...

Using the C language to program the am335x PRU
Introduction Some weeks ago, I published an article on how we used the PRU to implement a power supply control loop having hard realtime constraints: http://www.embeddedrelated.com/showarticle/586.php Writing this kind of logic in assembly...

Using the Beaglebone PRU to achieve realtime at low cost
●4 commentsIntroduction I work as an engineer in a synchrotron facility. A few weeks ago, I helped the people in charge of the power supply developments to integrate a realtime control algorithm on a prototype platform: a BeagleBone Black (BBB) running...

Slew Rate Limiters: Nonlinear and Proud of It!
I first learned about slew rate limits when I was in college. Usually the subject comes up when talking about the nonideal behavior of op-amps. In order for the op-amp output to swing up and down quickly, it has to charge up an internal capacitor...