Programming an ATTiny13A using Arduino & servo interpreter

So there I was, browsing eBay, looking for some cheap deals on Atmel chips when i came across a pair of ATTiny13 chips for £2.50. I just had to have them! After all, how hard can it be?

I needed a small chip to read servo signals from a hobby RC Receiver and control a laser output.

Once they arrived it dawned on me that I actually had no idea how to program these little chips. Dom and I spent hours trying various ways of ATTiny programming we found online with no luck. It was only until he left I sat down at my computer and found Tekstop’s tutorial on ‘Tiny programming that I had any success. With a couple of modifications to his files you will be up and programming these low price chips in no time!

Programming an ATTiny13A using Arduino

Connect your ATTiny13A to your arduino following the diagram below

Arduino pin 13 – ATTiny pin 7
Arduino pin 12 – ATTiny pin 6
Arduino pin 11 – ATTiny pin 5
Ardunio pin 10 – ATTiny pin 1
Arduino +5v      – ATTiny pin 8
Arduino GNd    – ATTiny pin 4

Optional:
GND – negative side of LED
ATTiny pin 3 – resistor (250 ohm) – positive side of LED

ATTINY13A Datasheet: http://www.atmel.com/Images/doc8126.pdf
Arduino ISP info: http://arduino.cc/en/Tutorial/ArduinoISP

Step 2: Setting up the IDE

  • Open the arduino IDE and connect your Arduino
  • Go to file > Examples > ArduinoISP
  • Check you have the correct board & port selected (Tools > Board/Serial Port)
  • Press the upload button

This will program your arduino board to be used as an ISP (in system programmer)

  • Once complete, close the IDE

We now need to set up the IDE to recognise our ATTiny13A as an arduino compatible chip

  • Download and extract this file: https://github.com/tekstop/attiny/tree/Arduino1
  • Copy the folder “attiny” from the extracted ZIP to the /hardware/ folder in your arduino IDE installation directory

Programming an ATTiny13A using Arduino circuit

We then need to offset the clock speed (not a very elegant solution, but i’m working on it!):

  • Open Hardware/attiny/boards.txt
  • Scroll to the bottom of the file, this last few lines contains the data relevant to our chip
  • Change “attiny13.build.f_cpu=9600000L” to “attiny13.build.f_cpu=1000000L”

This will correct delay times etc.

  • Open the Arduino IDE again
  • Go to Tools>Board and select “ATtiny13 (internal 9.6 MHz clock)”

[box color=”#985D00″ bg=”#FFF8CB” font=”verdana” fontsize=”14 ” radius=”20 ” border=”#985D12″ float=”right” head=”Major Components in Project” headbg=”#FFEB70″ headcolor=”#985D00″]Arduino +5v      – ATTiny pin 8
Arduino GNd    – ATTiny pin 4[/box]

For more detail: Programming an ATTiny13A using Arduino & servo interpreter


About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top