Hallo ,
ich habe da neuerdings ein Problem mit dem schreiben eines Programms auf einen Attiny.
Nachdem ich schon einige dieser kleinen µC erfolgreich programmiert habe bekomme ich jetzt nur immer die Meldungavrude : please define PAGEL and BS2 signals in the configuration file for part ATtiny 45
avrude : Yikes ! Invalid device signature.Double check connections and try again , or use -F to override this check.
Kann mir jemand sagen wo der Fehler zu suchen ist????
Ich habe schon mehrere neue ATtinys probiert aber auch beim Bootloader , immer das selbe .
Habe es auch mit " BLINK "( um Fehler im Sketch auszuschliessen ) probiert und auch das geht nicht drauf.
Kann mir nicht mehr weiterhelfen , ( da eh nur begrenzte Kenntnisse im Programmieren vorhanden ) , aber bei den ersten Versuchen hat es ja geklappt .
Danke und LG
Carsten
Welcher Prommer, welche IDE, wie angeschlossen ....
Arduino ISP geladen
Arduino as ISP,
ATtiny 20mhz ausgewÄhlt,
Anschluss : GND an GND
VCC an 5V
Pin 10 an PB5
Pin 11 an PB0
Pin12 an PB1
Pin 13 an PB2
10µF 35V an Reset und GND
Hallo Carsten,
so wie das aussieht, hast du keine weitere Beschaltung am Attiny, standardmäßig läuft der mit 1 MHz, wenn du jetzt den Blinksketch draufspielst, nimm doch den Attiny 45 1 MHz.
Gruß
Ardubu
Hallo Ardubu,
ich wollte aber einen Sketch zum steuern eines Servos drauf brennen wo zugleich noch eine LED blinkt .
/*
*belebter Gulli
*
*/
unsigned long altmillis1,altmillis2,altmillis3; //Variablen zur Zeitsteuerung
unsigned long nextAuf, nextZu;
byte gulli; //Gullizustand
byte auf=30; //Servowert für Gulli auf
byte zu=50; //Servowert für Gulli zu
#include <Servo.h>
Servo servo1;
void setup (){
pinMode(13 ,OUTPUT);
servo1. attach (9);
gulli=zu;
nextAuf=5000;
nextZu=5000;
}
void loop(){
//testen ob 1/4 Sek. (=250ms) vorbei sind
if(millis()-altmillis1>250){ //die 250 macht 2Hz Blinkfrequenz, bei Bedarf anpassen
altmillis1=millis(); //Zeit für nächsten test merken
if(gulli==auf) digitalWrite(13,!digitalRead(13)); //LED blinkt
if(gulli==zu) digitalWrite(13,LOW); //LED aus
}
//testen ob Zeit für nächastes Öffnen ist
if(millis()-altmillis2>nextAuf){
altmillis2=millis(); //Zeit merken für nächstes Öffnen
altmillis3=millis(); //Zeit merken für Schließen
nextAuf=random(30000,90000); //nächstes Öffnen zufällig zwischen 30 und 90 Sekunden
gulli=auf;
servo1.write (gulli);
}
//testen ob Zeit zum Schließen ist
if(millis()-altmillis3>nextZu && gulli==auf){
nextZu=random(5000,15000); //nächsten Schließen zufällig nach 5 bis 15 Sekunden
gulli=zu;
servo1.write(gulli);
}
}
das mit Blink war nur ein Versuch ob es damit geht , leider immer die selbe Fehlermeldung : please define PAGEL and BS2 signals in the configuration file for part ATtiny 45
avrude : Yikes ! Invalid device signature.Double check connections and try again , or use -F to override this check.
Hallo Carsten,
hast du denn mal versucht den Blinksketch auf den Attiny 1 MHz internal Clock zu übertragen?
Hast du bei dem Attiny vorher schon irgendwelche Fuses gesetzt?
Hast du mal einen anderen Attiny versucht?
Hast du einen Attiny 45?
Der Sketch ist nicht für einen Attiny 45 geschrieben.
Gruß
Ardubu
wenn du einen Attiny 45 hast, probiere einmal ob du folgenden Sketch hochladen kannst.
/*
Blinksdings für Attiny45
LED am Ausgang PB3 über 220 Ohm blinkt im Sekundentakt bzw. 1 Hz
*/
#define LED_Pin PB2
void setup() {
pinMode(LED_Pin, OUTPUT);
}
void loop() {
digitalWrite(LED_Pin, HIGH); delay(500);
digitalWrite(LED_Pin, LOW); delay(500);
}
Dazu benutzt du deine o. g. Beschreibung allerdings bei Auswahl den Attiny 45 internal 1 MHz.
Meines Wissens nach läuft der Attiny 45 nur bei externer Beschaltung mit 20 MHz
Sehe ich auch so.
Du mußt auf alle eine der Varianten mit (internal clock) auswählen.
Und dann mußt du, vor dem übertragen des Sketches erste den Bootloader installieren.
Der setzt dann auch abhänging davon ob du "Attiny45 (internal 1 Mhz clock)" oder "Attiny45 (internal 8 Mhz clock)" ausgewählt hast, die interne PLL. (Es sein denn, du hast wirklich einen 20MHz Quarz dran)
Erst nachdem du den Bootloader installiert hast, kannst du Sketche hochladen.
ich finde da http://highlowtech.org/?p=1695 ist das ganz gut erklärt.
Ohne externe Taktquelle kann man den Attiny mit max 8Mhz (über internen Oszillator) nutzten. Du musst wenn du einen "Jungfräulichen" Attiny hast einemal auf Bootloader installieren klicken. Beim Tiny wird denn aber kein Bootloader installiert sondern nur die sogenannten Fuses gesetzt.
Welche Core Dateien für den tiny nutzt du denn?
Gruß
DerDani
Hallo an alle ,
erstmal vielen Dank für Eure Antworten! Habe heute malles vom PC gelöscht und neu aufgespielt !
Funktionen am Arduino uno alle o.k.
Beim schreiben auf Attiny das gleiche spiel wie vorher :
please define PAGEL and BS2 signals in the configuration file for part ATtiny 45
avrude : Yikes ! Invalid device signature.Double check connections and try again , or use -F to override this check.
werde es wohl aufgeben ]![]()
LG Carsten
Habe gerade mal nen Attiny 85 genommen und Blink drauf gespielt, kam zwar die gleiche Fehlermeldung ist aber drauf !!??????
Danach voller Erwartung den eigendlich gewollten Sketch für den Servo drauf gespielt, Geht nicht ]:D. Ist villeicht am Sketch was nicht i.o.?
/*
*belebter Gulli
*
*/
unsigned long altmillis1,altmillis2,altmillis3; //Variablen zur Zeitsteuerung
unsigned long nextAuf, nextZu;
byte gulli; //Gullizustand
byte auf=30; //Servowert für Gulli auf
byte zu=50; //Servowert für Gulli zu
#include <Servo.h>
Servo servo1;
void setup (){
pinMode(13 ,OUTPUT);
servo1. attach (9);
gulli=zu;
nextAuf=5000;
nextZu=5000;
}
void loop(){
//testen ob 1/4 Sek. (=250ms) vorbei sind
if(millis()-altmillis1>250){ //die 250 macht 2Hz Blinkfrequenz, bei Bedarf anpassen
altmillis1=millis(); //Zeit für nächsten test merken
if(gulli==auf) digitalWrite(13,!digitalRead(13)); //LED blinkt
if(gulli==zu) digitalWrite(13,LOW); //LED aus
}
//testen ob Zeit für nächastes Öffnen ist
if(millis()-altmillis2>nextAuf){
altmillis2=millis(); //Zeit merken für nächstes Öffnen
altmillis3=millis(); //Zeit merken für Schließen
nextAuf=random(30000,90000); //nächstes Öffnen zufällig zwischen 30 und 90 Sekunden
gulli=auf;
servo1.write (gulli);
}
//testen ob Zeit zum Schließen ist
if(millis()-altmillis3>nextZu && gulli==auf){
nextZu=random(5000,15000); //nächsten Schließen zufällig nach 5 bis 15 Sekunden
gulli=zu;
servo1.write(gulli);
}
}
Kann man den überhaupt auf den Attiny schreiben ?
Bin für jede Hilfe dankbar
LG
Carsten
Hallo Carsten,
wie ich oben schon geschrieben habe, ist der Sketch nicht für einen Attiny 45/85 geschrieben.
servo1. attach (9);
if(gulli==auf) digitalWrite(13,!digitalRead(13)); //LED blinkt
if(gulli==zu) digitalWrite(13,LOW); //LED aus
Es gibt weder einen Pin 9 noch einen Pin 13 beim Attiny 45/85.
Den Sketch mußt du an den Attiny 45/85 anpassen.
Die Fehlermeldung
please define PAGEL and BS2 signals in the configuration file for part ATtiny 45
ist normal, die kannst du ignorieren;
Sorry habe ich vergessen zu sagen , aber habe natürlich die Pinbelegung verändert
Statt Pin 13-Pin 3
Statt Pin9-Pin0
Kommen nachstehende Fehlermeldungen .
Kann der ATtiny villeicht nicht mit Servo h. ????
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp: In function 'void __vector_3()':
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:105: error: cannot convert 'volatile uint8_t*' to 'volatile uint16_t*' for argument '2' to 'void handle_interrupts(timer16_Sequence_t, volatile uint16_t*, volatile uint16_t*)'
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp: In function 'void initISR(timer16_Sequence_t)':
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:151: error: 'TCCR1A' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:152: error: 'TCCR1B' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:159: error: 'TIFR1' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:160: error: 'TIMSK1' was not declared in this scope
schau dir das mal an
vielleicht hilft es dir weiter
Danke für den Link , ist sehr hilfreich gewesen , bin glaube ich schon einen Schritt weiter .