Category Archives: AVR

Keyboard debouncing and designing a case

      No Comments on Keyboard debouncing and designing a case

One critical issue arises when attaching mechanical switches, as found in computer keyboards, to digital electronics: switch bounce. When switches are opened and closed, the connection across the switch contacts does not cleanly transition from its previous state to its new state. Instead the switch contacts will (literally) bounce between the old state and new state before finally, after a… Read more »

Circuit for a laminator controller and PCB manufacture of the same

I have, for about a month now on and off, been working on the controller board for the toner-transferring laminator. This involved buying some new tools including a drill press add-on for my Dremel multi-purpose tool, a chuck for the Dremel, and a collection of drill bits in various sizes. First of all, here is a picture of the finished… Read more »

PCB ordered, and improvements to homemade PCBs

This last month or so I have been working on two fronts: finalising the circuit for the computer, and working on my home made PCB fascilities. So, the circuit is finished. For power the board has two options: USB, like the previous design, and a Molex harddisk power connector. Because of the high current sourcing with a PC power supply… Read more »

An 8 bit counter with 7-segment display implemented on a CPLD using VHDL

It looks like my problems with the counter were down to the 555 timer.  Replacing the crufty old 555 with an Atmel ATMega8 generating the clock signal caused the counter to start working properly. Here is the ABEL code: MODULE counter // Defined inputs CLOCK                pin 1;RESET                pin 2; // Defined outputs Q3..Q0       … Read more »

An I2C EEPROM programmer with an ATMega8

To learn about I2C I have implemented a serial EEPROM programmer using the same AVR based ATMega8 as my old school paralled programmer. I2C, like SPI, is nice because all signalling between the microcontroller and the memory is along only a handful of wires. This also, at I2C speeds at least, makes it slower but adequate for many applications like… Read more »

EEPROM progammer finished, and perspective on a 1982 progamming book

The EEPROM programmer is finished!  I soldered up the PCB, and after fixing a couple of issues it checks out.  My programmer has some very bright LEDs, and to show them off I’ve added a new “debugdelay” option to set how fast the programming should happen.  In the process I’ve removed the old “debug” option because the 8KByte flash in… Read more »

EEPROM programmer improvements and… stripboard sucks

This Easter weekend I’ve been working on the EEPROM programmer again. The programmer PCB has been “in production” now for about a week, with a few weeks left.  In the meantime I thought I would brush up on my soldering “skills” and make the circuit up on stripboard.  This turned out to be a slightly crazy thing to do; stripboard… Read more »

Adventures with an ATTiny85

      No Comments on Adventures with an ATTiny85

As a little diversion on the bumpy road to the 8bit world of the 6809, I’ve been playing about with some AVR ATTiny’s, specifically the ATTiny85. Mostly to see what they can do and to see if they could be used for interfacing peripherals to an 8bit MPU. These are amazing little beauties; 8Kbyte flash, a tiny amount of RAM,… Read more »

EEPROM programmer source code

      No Comments on EEPROM programmer source code

The software for the programmer is in two parts, the “firmware” that runs on the ATMEGA8, and a program intended to run on a Linux machine which sends a file to the ATMEGA8 which it then writes onto the EEPROM. Both bits of software are available on my github account.  This is not the nicest code I’ve written, but it… Read more »