Celsius converter to digital code from remote sensor

This circuit is originally published by Elana Lian and Chan Tran (Analog Devices). This simple single supply system enables to measure remote temperature with less than 1°C error in a range of 0 to 100°C: The circuit consists of the following parts: T1- low-cost AD590 temperature sensor; AD8541 – rail to rail amplifier; four resistors; potentiometer; and ADC AD7416. Use precision resistor RF for amplifier feedback to minimize scale factor.

Continue reading

Review on AVR serial and parallel microcontroller programmers

Its been a lot written about AVR microcontroller programmers. This article concludes most common programmers. The easiest programming method is Serial Downloading so-called ISP. This allows to program AVR microcontroller without removing it from the target board. Usually in such boards are a special ISP connector where you connect an external AVR ISP with standard 6 or 10 headers. AVR ISP usually connects to computers COM or LPT port. COM port has the advantage of the ability to use long cables while LPT is limited up to about 1 metter long. But in the other hand, using a COM port requires an additional complementary circuit to match the voltage levels, while the simplest LPT programmer doesn’t need any parts at all: But it is safer to use some kind of buffering circuit like 74HC244 to add some protection from port failure.

Continue reading

Few words about SMD-Surface Mount components

Today electronics is shifting to SMT (Surface Mount Technology) or SMD (Surface Mount Devices) area. DIP domination has left behind. They won’t vanish from the electronics industries as they are many areas and will be successfully used. But as electronic circuit complexity grows, demand for PCB miniaturization increases, there is no other way to use SMD technology to achieve these goals. Electronic hobbyists noticed that it is harder to find some particular electronic elements in DIP-packages. Many microcontroller types are released only in SMT packages like Atmega128– QFP64, LPC2000 microcontroller series in the LQFP package series. I don’t talk about bigger IC like AVR32 or FPGA, where BGA packages come with 672 connection balls.

Continue reading

Programmable logic devices

In a market, you can find a bunch of programmable logic devices – PLD. They can be small scale integrated – SSI, medium-scale integrated- MSI, mask programmed gate array – MPGA (MPGD – masked programmable logic devices). Now the most popular are FPGA (Field Programmable Gate Arrays). What is the difference between FPGA and MPGA? MPGA is hard-coded during manufacturing and cannot be erased or reprogrammed, while FPGA is programmable – usually EEPROM or SDRAM. Of course, there are other differences between FPGA and MPGA. One of them is speed. MPGA usually is faster as MPGA needs fewer elements to form a logic gate while FPGA needs additional elements to enable programmability – this adds additional resistances and capacitances in circuits. But today’s technology allows reaching significant speeds with FPGAs too.

Continue reading

AVR microcontroller memory map

AVR microcontrollers are using Harvard architecture. This means that separate memory types (program memory and data memory) are used and connected with distinct buses in this architecture. Such memory architecture allows processors to access program memory and data memory at the same time. This allows increasing the performance of MCU comparing to CISC architecture, where the CPU uses the same bus for accessing program memory and data memory. Each memory type has its own address space: For instance few Atmega series memory map examples:

Continue reading

Flash programming of AT89 microcontrollers using ISP adapter

Microcontrollers family AT89C has a parallel programming interface of flash memory. To write information, we need to supply programming voltage +12V, and for controlling, almost all pins of ports are used. This is why parallel programming is done in special devices – programmers. Microcontrollers AT89S, besides parallel programming ability, have ISP programming ability. Using the Serial programming interface doesn’t need +12V of programming voltage because the inside interface is voltage converter included.

Continue reading

Programming and customizing AVR microcontrollers

AVR microcontroller programs can be classified by programming method – how to program is loaded into microcontroller from the computer. One is a Parallel programmer (byte by byte). This isn’t a popular programming method. But it is a fast programming method. Using a parallel programmer, you can set fuses that will protect you from using the ISP method. But the main disadvantage of parallel programming is that you have to remove the microcontroller from the circuit. This might be used when producing a series of the same kind of preprogrammed microcontrollers before they are soldered into the board. The parallel programmer can program the RESET pin to be used as a fully functional I/O line; this is why ISP cannot be used after this procedure. Restoring of the RESET function can only be done with a Parallel programmer. The serial programming interface is more convenient for electronics hobbyists. The main benefit of the ISP programmer that you can program the microcontroller directly on board. ISP programmers can be connected to COM or LPT port. COM port is becoming obsolete as it requires additional circuitry, while LPT programmer can be as simple as few wires connecting AVR to LPT port. Popular…

Continue reading

Embedded C program libraries and linking

What is a compilation of programs? Maybe it is more or less clear? But what is program linking? I am sure many beginners heard of this but done exactly know what it is. In a few words, I can say that linker creates an output file from relocatable objects. The compiler is not one big program. It usually consists of up to a dozen smaller programs. Some programs, so-called program driver, control these programs. This driver can be a makefile and make.exe program. The whole compiler pieces are the preprocessor, the syntactic and semantic checker, code generator, the assembler, the optimizer, the linker, and make program. Lets see a common example of the compiling procedure: These programs are split into pieces for easier design and maintenance as each is a specialized program on its own. In many cases, the same program can be used for different programming languages. One disadvantage of running different tools will take a longer time than running one bigger program because there is a need to send information between programs.

Continue reading

Sensing Sound Wave with microcontroller

A sound wave can be sensed by using a sound sensor. If you are designing a robot, sometimes it is useful to enable sensing of sound. Then you can program your robot to follow your voice commands. In some cases, sound wave sensors are used as collision sensors. A sound wave sensor is a microphone. The microphone is a device that converts sound pressure into electric signals. Let’s see how sound waves can be sensed. As we already know, the sound is a complex signal which consists of multiple different frequency waves. One sound wave can be represented as sin or cos signal: When many of such waves are summed (s called harmonics), we can represent any analog signal- any shape and any frequency.

Continue reading

IrDA interface for an embedded systems

IrDA is a transmission standard commonly used in computers and peripherals like mobile phones. The primary purpose of IrDA is to provide device-to-device communication over short distances. IrDA solves the problem of usage cables, which may differ from machine to machine. With IrDA, no wires are required, so this is easy to connect the same device to multiple device types like your mobile phone to laptops, other mobile phones, or PDA’s. IrDa standard requires close communication of devices. This is low power transmission. It is essential because regulations are guarding the maximum level of IR radiation that can be emitted. It is also reasonable to assume that the two devices to communicate will be physically pointed toward each other before use. And only two devices can communicate at the same time. So IrDA doesn’t have to deal with collisions. And the main thing that IrDa is simple, cheap, and requires low-cost parts. The IrDA standard specification states that supported data rates can be between 2400bps and 115.2kbps over 1-meter distances. Later standard has expanded to support 1.152 and 4 Mbps. The transmitter beam angle is from 15 to 30 degrees, and the receiver has A viewing angle of 15 degrees.…

Continue reading