Tiny Computers
Microcontrolles are very powerful devices. They are different from Microprocesors in the aspect that they have things like RAM and code ROM included within the chip, whats more, they come enabled with a host of on-chip peripherals. I had some time to kill after a very busy official and personal schedule and went back, dusted my 10W (Rs. 30) Tony soldering iron.
My interest in embedded systems started when I first progammed the 8051 microcontroller. I got this 40-pin beauty manufactured by Atmel and was easily guided by the electronics shop guy to a person who could “program” this chip for me. By program I mean burn code into its Flash memory. I decided that to master the 8051 programming(this time I mean coding) and I needed a development board that would let me try out silly programs. I searched the Internet and quickly came out with the PJRC board. This board allows one to write programs, download them to an external, off-chip RAM and execute it from there. A simple monitor program is provided for this purpose. I remember building the first revision of this hardware on a general purpose PCB. At that point in time, I never understood the importance of Bread boards. A friend of mine who was a VB-programer turned Linux programmer borrowed my board to try his hands at microcontroller programming and never returned it.
I used to say “Dont trust VB programmers”. From then on, I have improved the scope of the meaning of my statement by changing it to “Don’t trust VB or Ex-VB programmers”. They can run away with your hardware, because that is the last thing they deal with and they are curious about it.
I quickly realized that for permanent projects the development board was too much and I needed a 8051 device programmer. I made one and it worked well. And with it, I helped out several college students do interesting projects related to microcontrollers. Soon enough it was evident that the 8051 was too large for most of my projects. The Atmel 20-pin 2051 was a better choice. A few years ago, I built a programmer for that and it survives till this day. I followed a schematic provided here. You can also find Windows based software to go with it. But you don’t need Windows to run it. It works great on Wine. I uses a simple serial protocol, these days I am planning to write a simple Python program to replace the Windows program.

When I had once been to Thrissur, Pramode gave me an ATMega8, AVR architecture based microcontroller. This is a very interesting chip. It features in-system programming, thus the higher voltage needed to burn the on-chip Flash memory is generated internally and the device programmer becomes drastically simple. It also has a GCC port and can be programmed in C! The AVR series can also work without an external crysal oscillator circuit, which is optional, if you want to operate in higher frequencies. So for a blinking LED circuit, you only need a couple of resistors and a capacitor apart from the chip and the LED itself. Of course, you need power supply.

Since then, I have also bought myself some ATTiny15L microcontrollers that are tiny 8 pin ones and can clock up tp 1.6MHz. Since most instructions are single cycle, they can execute 1.6 million instructions per second. Just look at the 2051 programmer and at the breadboard, which is an ATMega8 programming circuit, the sheer lack of additional components is striking. That board also serves as a blinking LED test circuit. A blinking LED in microcontroller programming is the usual “Hello world!” equivalent.
One microcontroller family I haven’t touched is the PIC family, need to pic’ it up




