Category Archives: Microcontrollers

Using USART or UART on a Microcontroller

First, what is the difference between these terms, UART and USART? UART stands for Universal Asynchronous Receiver and Transmitter, and USART means Universal Synchronous and Asynchronous Receiver and Transmitter. Most microcontrollers today, like PIC and AVR, have USART, but the Synchronous function is not often used as they have other synchronous devices like I2C and SPI. So this post will concentrate on asynchronous transmission, which is the same on both devices.

Continue reading “Using USART or UART on a Microcontroller” »

Firmware Updates in the Field

All microcontroller based applications include the microcontroller code called firmware but it is surprising how many people forget that they may need to update it when their products are scattered at customer locations. This may be because (heaven forbid) that they discover a bug in the system that needs to be corrected or, more commonly, that the product needs new features in response to customer feedback or competitor’s actions. So how do we simplify firmware updates?

Continue reading “Firmware Updates in the Field” »

What is AVR microcontroller?

An AVR microcontroller is a type of device manufactured by Atmel, which has particular benefits over other common chips, but first what is a microcontroller?

The easiest way of thinking about it is to compare a microcontroller with your PC, which has a motherboard in it. On that motherboard is a microprocessor (Intel, AMD chips) that provides the intelligence, RAM and EEPROM memories and interfaces to rest of system, like serial ports (mostly USB ports now), disk drives and display interfaces.

A microcontroller has all or most of these features built-in to a single chip, so it doesn’t need a motherboard and many components, LEDs for example, can be connected directly to the AVR. If you tried this with a microprocessor, bang!

Continue reading “What is AVR microcontroller?” »

AVR Microcontroller Default Clock

One feature of AVR devices that can baffle new users is the default clock setting on new AVR microcontrollers. They are set to run from their internal RC oscillator, usually 1 MHz, which throws out the timing on code samples, such as UART.

If the code is configured for an 8MHz clock and there is a 8MHz clock on the target board, you expect it to work but instead you get nothing or garbled characters. This is due to the default Internal RC. How do you change it?

Continue reading “AVR Microcontroller Default Clock” »