Alles was hier beschrieben ist, habe ich mit Arduino 1.18.19 getestet und programmiert.
1.Schritt: Einen Arduino Nano zum jtag2updi Programmer machen:
Lade die Zip-Datei von meinem Github-Verzeichnis herunter:
Expandiere die Datei und öffne die Datei jtag2updi.ino in der Arduino IDE. Programmiere den Arduino Nano damit. (Die Hauptdatei ist leer, das ist ok so.)
2.Schritt: megaTinyCore in Arduino IDE laden:
In der Arduino IDE unter "Datei" - "Einstellungen" im Feld
"Zusätzliche Boardverwalter-URLs" folgendes Verzeichnis hinzufügen:
http://drazzy.com/package_drazzy.com_index.json
Dann unter "Werkzeuge" - "Board" die "Boardverwaltung" öffnen.
Hier nach megaTinyCore suchen und installieren.
3.Schritt: Ein kleines Programm testen:
Beim Programmieren der physischen IO Pins in der Arduino IDE studiere die obige Grafik. Die neue Generation der Attiny´s hat keine eigenen analogen Pins. Ob ein Pin analog oder digital ist, hängt von seiner Programmierung ab.
Um das jtag2updi-Programm des Arduino Nano beim Programmieren des Attiny nicht zu überschreiben, müssen wir den RESET deaktivieren. Mit einem 10µF Elektrolytkondensator zwischen RESET und GND kann man das bewerkstelligen.
Mit einem 4k7 Widerstand verbinden wir D7 des Arduino NANO mit dem UPDI Eingang am 406er Board.
GND und +5V noch vom NANO mit dem 406er Board verbinden, und wir können mit dem Programmieren beginnen.
In der Arduino IDE öffnen wir unter "Datei" - "Beispiele" - "01.Basics" das Blink Programm.
Hier fügen wir vor der setup Funktion folgenden Befehl ein:
#define LED_BUILTIN 4 //PB5 (Pin 2)
Das komplette Skript:
-----------------------------------------------------------------------------------------------------------------------------
/*
Blink
Turns an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Products
modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman
This example code is in the public domain.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/
#define LED_BUILTIN 4 //PB5 (Pin 2)
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
-----------------------------------------------------------------------------------------------------------------------------
Nun wählen wir unter "Werkzeuge" das richtige "Board" den "Prozessor" und "Port" aus, als ''Programmer'' wählen wir jtag2updi aus.
Nach dem Hochladen haben wir erfolgreich das 406er Board zum Blinken gebracht.