Attiny84 Nrf24l01 – Mirf

Hallo.

Nachdem ich Stundenlang gebraucht habe um einen Attiny84 mit einem NRF24l01+ ans laufen zu bekommen, poste ich hier mal eine Anleitung um es einfacher zu machen.

Nichts desto trotz vielen Dank an alle Autoren für die vielen Librarys, Fixes etc.

Ich möchte keine Problembeschreibung und Gründe für die Fehler abgeben (kann ich zumeist nicht), eher eine Problemlösung. Daher beschreibe ich einfach die Schritte, die notwendig waren um eine neue Arduino 1.05 R2 Version „funktionsfähig“ zu machen.

1. Laden und installieren der Arduino-Version. (kein Problem)

2. Attiny-Core hinzufügen:

  • https://arduino-tiny.googlecode.com/files/arduino-tiny-0150-0020.zip
  • Enpacken ins Hardware-Verzeichnis z.B. „C:\Program Files\Arduino\hardware“, allerdings anders als in der Readme beschrieben! Bei mir wurde der Attiny erst angezeigt als ich den Zwischenordner avr entfernt habe. C:\Program Files\Arduino\hardware\tiny\<dateien>.  Zudem muss man noch eine Textdatei „boards“ erstellen und aus „Prospective Boards“ die gewünschten Attinys rauskopieren. Der Einfachheit halber habe ich die Datei einfach in boards umbenannt.
  • Wenn man die Arduino-IDE jetzt startet sollten unter Tools -> Boards die Attinys auswählbar sein.

3 Mirf-Library für den Attiny84: https://codeload.github.com/stanleyseow/arduino-nrf24l01/zip/master herunterladen.

Nur die Unterverzeichnisse „Mirf und SPI85“ müssen in den Library-Ordner.

4. Versucht man jetzt den Beispiel Code zu kompilieren bekommt man eine nette Fehlermeldung: „… relocation truncated to fit: R_AVR_13_PCREL against symbol `exit‘ defined in .fini9…“

  • Lösung: https://github.com/TCWORLD/ATTinyCore/tree/master/PCREL%20Patch%20for%20GCC -> WINDOWS ld.zip
  • Arduino\hardware\tools\avr\avr\bin\ld.exe durch die Exe aus dem Zip ersetzen, oder die Alte vorher umbenennen, damit man die wiederherstellen kann.

5. Verkabelung Attiny-Programmieren:

Die Anleitungen sind vielfältig und gut im Internet. Trotzdem hier das Bild, dass ich benutzt habe: http://playground.boxtec.ch/lib/exe/detail.php/arduino/attiny-ispx4_bb.png?id=arduino%3Aattiny

Der Kondensator ist hier wichtig! Außerdem sollte man, wenn man 8Mhz ausgewählt hat nicht vergessen, dass man auch den Bootloader installiert. Die Pinbelegung vom Attiny steht im Sketch bzw. in Punkt 6 meiner Beschreibung. Die Bezeichnungen „D 0“ etc. sind die Wichtigen für das Programmieren.

6. Verkabelung NRF24l01 am Attiny:

Attiny - Nrf24l01

Ist das gleiche wie in dem Mirf -> Attiny84-Beispiel beschrieben, aber ich habe Miso und Mosi ergänzt. In den Pin-Belegungen im Internet sind Miso und Mosi genau vertauscht, aber nur so funktioniert es bei mir…

7. Letztes Problem:

Obwohl man den Pin 0 vom Attiny an den TX-Pin angeschlossen hat kommt nichts oder nur ÿ, wenn man TinyDebugSerial nutzen will:

Lösung: Ich hatte den NRF gleichzeitig mit der Verkabelung zum Programmieren angeschlossen. Das funktioniert auch, aber man muss den Kondensator abstecken und stattdessen ein Kabel direkt von GND auf Reset einstecken. Danach stimmt die Ausgabe.

Das war es. Hoffentlich viel Spaß! 🙂

 

 

 

 

Kommentar verfassen