2016-08-08

ATTinys

I finally have the time to post some old projects (some of witch I'm taking the opportunity to finish). These are all around the now dead Attiny15L from Atmel, but the techniques might be used in the newer tiny Atmel (Attiny25,45 and 85, Attiny10 Attiny104, etc). I write might because this first post probably will not be very useful for these newer devices, as the calibration of the internal oscillator has changed from the ATTiny15 times.
First I'll present my test board, many moons ago, the DIP Attiny15L was much more expensive than the wide SO8, so I built a board with the SO8 and the ISP connector with a 0.6 inch footprint. This way I could save space on the test board and use the cheap Attiny15 in SO8. I've recently uploaded the board to OSHPark so you can order it. You can also use the board for other SO8 Tinys (like the Attiny25,45,85 or tiny13). The board includes a Reset pull up resistor and a supply bypass capacitor (all optional if you know what you are doing).


This program just ouput a PWM sine wave (of 195Hz) on the OC1 output. The makefile takes care of programming flash, eeprom and the clock calibration on the last flash position.
I used an GNU octave script to generate a raw file of 64 bytes of a sampled sine wave.
The program just sets the calibration value, then sets up the Timer 1 for PWM at 12.5kHz and then goes on to read from the EEPROM the values in succession. The idea is to have a basis with the ATTiny to produce sound or voice.
On the bottom there is an Arduino board an a breadboard shield that I use to power the ATTiny and also to use as a serial to usb converter (the ATmega328 on the lower board has been removed).
There is a low pass RC filter on the output to get the 195Hz otherwise the PWM frequency appears. The blue box on the right is my AVRdragon.


One always thinks what will happen when pastebin is gone... and where all this code will end... no I don't... just kidding :-)