Attiny85 programozás Arduino Nano-val

E remekbe szabott leírás alapján tegyünk össze egy Attiny85 programozásra alkalmas eszközt. Ilyen módon meglehetősen kevés hozzáadott értékkel, de talán érthetőbben közöljük. Jó lesz!

Hozzávalók:

  • Arduino Nano
  • Attiny85
  • 10 uF kondenzátor
  • LED

ISP mód

Tegyük az eszközünket ISP módba. Ehhez szerencsére találunk példát az Arduino IDE-ben: File -> Examples -> ArduinoISP – töltsük fel módosítás nélkül.

Installáljuk az Attiny85 támogatást

File -> Preferences -> Additional Boards Manager URLs alatt adjuk meg a következőt: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json.

(Ha időközben használhatatlanná válna az URL, David A. Mellis Githubján nézzünk körül.)

Tools -> Board -> Boards manager alatt válasszuk ki az “attiny”-t (David A. Mellis félét) és installáljuk.

Ha minden jól megy, a Tools->Board alatt van Attiny szekciónk.

Kössük be az Attiny85-öt

Ehhez tekintsük meg az Attiny85 pinoutot (az Arduino könnyebb, rá van írva):

https://components101.com/microcontroller/attiny85-pinout-datasheet
  • 5V – VCC
  • GND – GND
  • D13 – PB2
  • D12 – PB1
  • D11 – PB0
  • D10 – PB5 (RESET)
  • RST – 10 uF C – GND*

*Itt máris hozzáadott értékről tudunk számot adni: az eredeti leírásban hibásan szerepel, hogy az elektrolitkondenzátor anódját (+) csatlakoztassuk a GND-hez, természetesen forítva kell eljárnunk.

Felkészülés Attiny85 feltöltésre

Az alábbiakat állítsuk be:

  • Tools -> Board: Attiny25/45/85
  • Tools -> Processor: Attiny85
  • Tools -> Clock: Internal 8MHz
  • Tools -> Programmer: Arduino as ISP*

*jegyezzük meg, hogy AVRISP mkii-n szoktuk használni…

Alapból 1MHz-n működik az Attiny85, ezért kell még egy Tools -> Burn Bootloader.

Izgi!

Puding

Elvileg jók vagyunk, nyissuk meg a blink example-t (File -> Examples -> Basics -> Blink). Módosítsuk a pin-t 13-ról 0-ra. (Vagy LED_BUILTIN-ről 0-ra.) Upload.


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(0, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(0, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Na és ezt most nehezebb tesztelni, kell külön áramforrás, amiről meghajtjuk az Attiny-t. A példában 3V gombelemet használnak – a ledet már-már szokásosnak mondható módon fordított polaritással bekötve. De a szükséges áramot lehozhatjuk az Arduinoról is (az eredeti bekötéseket természetesen megszakítva):

  • PB0 – LED – GND
  • 3.3V – VCC
  • GND – GND

Profit!