If you do some prototyping with different AVR controllers on breadboards, you have to setup the same parts over and over again. Connect MISO, MOSI and SCK for programming, a button and a pull up resistor for reset and bypass capacitors. This small prototyping board will save you these steps and you can start with your project right away.
Schematic
All pins of the controller are available on the headers and so on the breadboard. That means even PA0 and PA1 are available, although they are used by the resonator. To use these two pins as outputs, you can run the controller on the internal oscillator. The resonator is still in place, but seems not to hurt. I am not sure, if you can use both pins even as inputs.
Parts
First check if you have all needed parts:
- ATTINY2313-20PU, microcontroller, Digikey
- Socket 20 pins, Digikey
- Capacitor, 100n, Digikey
- Electrolytic capacitor 100u, Digikey
- Resonator 8 MHz, Digikey
- Header, straight, single row, Digikey
- Header, straight, double row, Digikey
- Header, right angle, single row, Digikey
- Resistor, 10 kOhm, Digikey
- Button, Digikey
- Tiny2313 header PCB, Tinker Store
The following tools are needed:
- Soldering iron and solder
- Diagonal cutters
- Breadboard
- ISP programmer with 6-pin connector
- Third hand or Panavise, optional
- FTDI-cable, optional
Unfortunately other 20-pin AVR devices, as ATtiny261/461/861, can not be used with this board, as they have a different pin layout. But you could choose another resonator with different speed settings.
Solder it
Insert the resistor and the 100n capacitor. Bend the leads a bit so the components will not fall off when you turn the PCB for soldering.
Solder the resistor and the capacitor. Cut the leads afterwards.
Next insert the resonator and the 100u electrolytic capacitor. The capacitor has a long (+) and a short (-) lead. On the PCB is a small plus sign to guide you how to insert the capactitor the right way.
Solder both and then cut the leads.
Next snap the button in place and solder it. The leads of the button are short but you may still want to cut them off.
Now take the 6-pin ISP header, insert it and solder it.
Next is the right angle header row for the serial connection.
The 20-pin socket has a little notch. Insert it with the notch pointing to the resistor. You can bend two leads a bit to prevent falling off. Now solder it.
Soldering the two straight header rows becomes very easy if you use your breadboard. Insert the rows and put the PCB on top.
Make sure the board lays flat on the two header rows. And solder them.
To insert the controller, you have to bent it’s leads a bit. Put the micro with one side flat on the table and bent the leads slightly. Turn the controller around and do it again. Now the controller should easily snap into the socket. Take care that the notch if the controller points into the same direction as the socket does.
Yes, that’s it. Building is complete.
Final testing
To check if everything is working as expected, we do some basic testing. First, hook up an LED and a resistor to your header board. Next connect your ISP programmer to the header. There is a small 1 next to the ISP header to show you which pin is the one. The controller is powered by my programmer (USBtinyISP). If your programmer can’t do so, you have to attach an extra power supply. Then grab the test source code and unzip it. You may have to adapt the makefile to your needs, e.g. configure your programmer and adjust the FUSE settings, if you want to use another than the 8 MHz resonator. Then type make, make fuse flash. You should see the first heart beat of your controller.
If you have an FTDI-cable at hand, we can check if the serial connection is working. Mine is a 3.3V type but I think all others should work as well. Now the FTDI-cable will be used as a power supply so pull of the programmer. Near the right angle header is a small 1 to show you how to connect the cable. On the cable the black one is 1. Start your terminal program and connect it to the serial port of your FTDI-cable. The test program uses 9600 baud so adjust your terminal. I used: screen /dev/tty.usbserial-FTE4ZV7M 9600. You should see “A”s coming in from the controller. One every second. You can type something into your terminal, the controller will echo your input.
Alright, now you’re ready for faster prototyping.
Links and Downloads
- Source code and Eagle schematics, tiny2313.zip