Hallo,
ich (Anfänger) experimentiere aktuell ein wenig mit dem Attiny85 und
habe Probleme mit einer SMD Version (Attiny85V-10SU).
Ich bekomme einfach kein Programm aufgespielt oder den Bootloader
gebrannt.
Hier mal die Ausgabe der Arduino IDE:
Double check connections and try again, or use -F to override
60
this check.
61
62
63
avrdude done. Thank you.
Zum Programmieren nutze ich einen Arduino Nano.
Warum in der obigen Ausgabe 0,0V angezeigt wird, weiß ich nicht.
Die Kableverbindungen sollten alle in Ordnung sein und einen 10uF Elko
habe ich zur Sicherheit auch an den Nano geklemmt (zwischen RST und
GND). Der Attiny85V-10SU wird mit Hilfe eines SOP-8 zu DIP-8 Adapters
auf ein Steckbrett gesteckt. Genau auf den selben Platz, auf den ich
zuvor einen Attiny85-20 (DIP) gesteckt habe, mit dem alles einwandfrei
funktioniert. Ich habe nichts verändert, nur die Chips ausgetauscht und
dennoch funktioniert es nicht.
Die Pins des Adapters habe ich auf Kurzschluss geprüft, alles in
Ordnung. Die Verbindung zwischen den unteren Steckpins des Adapters und
den Pins direkt am eingeklemmten Chip habe ich auf Durchgang geprüft und
auch hier ist alles Ordnung.
Ich habe auch beim Brennen keinen externen Oszillator eingestellt.
Einen USBAsp habe ich auch versucht, gleiches Szenario: Die DIP Version
funktioniert, die SOIC Version nicht.
Hier mal meine Einstellungen in der IDE:
1
Board: Attiny25,45,85 (no bootloader)
2
Chip: Attiny85
3
Clock secure: 1Mhz, 8MHz external oder internernal, ja nach dem.
4
Timer 1 Clock "CPU (CPU frequenzy)"
5
LTO (1.6.11+only): "Enabled"
6
millis()/ micros(): "Enabled"
7
Save EEpPROM (only set on bootload); "EEPROM retained"
8
B.O.D. Level (Only set on bootload): B.O.D. Desabled (Saves power)
9
Port:/dev/TTYUSB0
10
Programmer: "Arudino as ISP"
Hat jemand eine Ahnung, was hier das Problem sein könnte?
Grüße
Benno B. schrieb:> Warum in der obigen Ausgabe 0,0V angezeigt wird, weiß ich nicht.
Weil dein Programmieradapter (der Arduino Nano) die Spannung nicht
messen kann. Ich glaube das ist in der "Arduino as ISP" Firmware nicht
implementiert. Das ist kein Hindernis.
Die Chips reagieren nicht auf der ISP Schnittstelle. Lies dazu mal die
Tipps auf http://stefanfrings.de/avr_verfused/index.html
Benno B. schrieb:> So, hier die Richtigen.>> Der ganze vorherige Beitrag mit dem falschen Bildern kann gelöscht> werden.
Fälschungen wohl nicht, aber refurbished. Gut möglich, dass du einen
Takt einspeisen musst, oder einen HV-Programmer nehmen.
Benno B. schrieb:> So, hier die Richtigen.
Dieses seltsame "270 R-1" ist sehr schräg, sowas hat Atmel nie drauf
geritzt. Die Losnummer (Rückseite) könnte passen.
Der nächste Schritt beim Debuggen wäre es jetzt, einen Logikanalysator
auf die Pins zu klemmen und zu gucken, was passiert.
Jörg W. schrieb:> Dieses seltsame "270 R-1" ist sehr schräg, sowas hat Atmel nie drauf> geritzt.
Das dürfte von einem Brennservice stammen.
> Die Losnummer (Rückseite) könnte passen.
Die passt. Fälscher lassen die ja gerne weg, oder sie machen dabei
Fehler.
Danke Euch!
Als Anfänger sind die Teile dann für mich wohl unbrauchbar?
Vom Debuggen habe ich keine Ahnung und einen HV habe ich auch nicht.
Einen USBAsp, einen Arduino Nano und einen 8 MHz Oszillator (3 Pins)
habe ich hier nur zur Verfügung.
Das wird wohl nicht reichen, um die Dinger gangbar zu machen?
Den Text von stefanfrings.de verstehe ich auch nicht wirklich. Auf jeden
Fall habe ich aber an den Fuses nichts verändert. Trotzdem hatte ich
zwischenzeitlich einfach mal den 8 MHz Oszillator angeklemmt, für den
Fall, dass da irgendwas auf extern eingestellt ist. War aber scheinbar
nicht der Fall, denn es hat ebenfalls nicht funktioniert.
Benno B. schrieb:> 8 MHz Oszillator (3 Pins)
Für gewöhnlich haben die schon vier Pins, wenngleich einer davon oft
ohne Funktion ist, aber nicht immer.
Und an welchen Pin des Tiny85 hast du den Takt angelegt?
Wenn du willst, kannst du mir den ATtiny85 in einen Briefumschlag
stecken und her schicken, ich teste ihn dir. Wenn er funktioniert (von
mir aus auch mit HV oder externem Takt), programmiere ich dir die Fuses
nach deiner Wahl und stecke ihn in einen Briefumschlag zurück. Wenn
nicht, ist es vermutlich preiswerter, wenn ich ihn dann in den Müll
werfe.
Die nötige Ausrüstung habe ich.
H. H. schrieb:> Das dürfte von einem Brennservice stammen.
Ja, wäre 'ne Möglichkeit.
@hhinz
Ich habe einen 8 MHz Keramik Resonator mit 3 Pins (an die beiden
XTAL-Pins + GND geklemmt) und diesen hier habe ich auch noch
https://www.reichelt.de/smd-resonator-8-00-mhz-cstcc-8-00-p42491.html?&trstct=pos_0&nbc=1
Letzteren habe ich noch nicht probiert, aber der Keramik (bei mir blaues
Gehäuse) hat mit der DIP Version gut funktioniert.
@dl8dtl
Vielen Dank für das Angebot. Ich komme ggf. darauf zurück. Habe hier 4
von den Dingern.
Worauf muss ich denn in Zukunft achten, dass ich nicht noch mal so ein
Zeug kaufe?
Benno B. schrieb:> Worauf muss ich denn in Zukunft achten, dass ich nicht noch mal so ein> Zeug kaufe?
Originale kaufen?
Ist ja nichts grundsätzlich dagegen einzuwenden, dass jemand das Zeug
"refurbished", aber dann sollte er zumindest in der Lage sein, 1.) nicht
nur die Flash-Inhalte zu löschen, sondern auch die Fuses auf Werkzustand
zurückzusetzen und 2.) wenigstens die grundlegende Funktion zu testen.
Aber mit so viel Arbeit ließe sich mit dem Recycling wahrscheinlich kein
Geld mehr machen. Einen ATtiny85 bekommst du von einem Distri für einen
reichlichen Euro, und da vedient der noch was dran. Wenn nun jemand die
recycelten Teile verkaufen will, muss er nochmal eine ganze Runde da
drunter bleiben, da kannst du dir vorstellen, wieviel Arbeit er damit
zubringen darf, damit der Laden rentabel bleibt. So billig sind auch
chinesiche Arbeitsstunden halt nicht.
Benno B. schrieb:> Worauf muss ich denn in Zukunft achten, dass ich nicht noch mal so ein> Zeug kaufe?
Bei einer seriösen Quelle kaufen. Händler auf Aliexpress, Ebay und
Amazon sind das häufig nicht.
Bei Mouser und Digikey bekommt du immer originale Neuware.
Benno B. schrieb:> Ich habe einen 8 MHz Keramik Resonator mit 3 Pins (an die beiden> XTAL-Pins + GND geklemmt) und diesen hier habe ich auch noch>> https://www.reichelt.de/smd-resonator-8-00-mhz-cstcc-8-00-p42491.html?&trstct=pos_0&nbc=1>> Letzteren habe ich noch nicht probiert, aber der Keramik (bei mir blaues> Gehäuse) hat mit der DIP Version gut funktioniert.
Der funktioniert aber nicht in jeder Einstellung des µC.
Eben weil es nur ein Resonator ist, kein Oszillator.
Besten Dank für Eure Informationen und Tipps! Das war sehr hilfreich!
@dl8dtl Auch an Dich noch mal vielen Dank für das Angebot! Ich werde
mich ggf. noch mal über PN bei Dir melden.
H. H. schrieb:> Der funktioniert aber nicht in jeder Einstellung des µC.>> Eben weil es nur ein Resonator ist, kein Oszillator.
Gut zu wissen! Welche Einstellungen wären das?
Benno B. schrieb:> Welche Einstellungen wären das?
Die Fusebits CKSELx in der low fuse. Worst case: 0b0000 = "external
clock". Aber auch nicht jede der Einstellungen für einen externen
Resonator muss deiner funktionieren.
Jörg W. schrieb:> Benno B. schrieb:>> Welche Einstellungen wären das?>> Die Fusebits CKSELx in der low fuse. Worst case: 0b0000 = "external> clock". Aber auch nicht jede der Einstellungen für einen externen> Resonator muss deiner funktionieren.
Danke! :)
Benno B. schrieb:> Das wird wohl nicht reichen, um die Dinger gangbar zu machen?
Du könntest noch versuchen, einen 1MHz Takt auf XTAL1 einzuspeisen. Dazu
könntest du z.B. PWM auf dem Attiny85 benutzen, der schon einen
Bootloader drauf hat, oder jeden anderen Arduino. GND zu GND nicht
vergessen.
LG, Sebastian
Es könnte ja auch sein, dass da noch ein altes Programm drauf ist, bei
dem der Takt über clkpr runter gesetzt wurde. Der lässt sich dann nur
mit einem entsprechend langsamen Takt programmieren. Oder mit der
brutalen Methode: bevor Vcc angelegt wird, den Reset hart auf Gnd legen
und Reset erst nach dem Programmieren wieder freigeben. Das hatten wir
mal hier rausgefunden:
Beitrag "Re: ATmega1284p lässt sich nur einmal laden"
Hermann W. schrieb:> Es könnte ja auch sein, dass da noch ein altes Programm drauf ist, bei> dem der Takt über clkpr runter gesetzt wurde.
ISP erfolgt während Reset, da interessieren nur die Fuses.
Kommt sehr darauf an, Jörg Wunsch - probieren Sie es einmal mit Ihrem
eigenen Programmiergerät: 'Low Frequency Crystal Oscillator' mit einem
Programm, das den Teiler auf 256 setzt, und schauen Sie, was
anschließend passiert.
PS:
Für einen solchen Fall geht mein Selbstbaugerät bis auf 29 Hz herunter -
vielleicht haben Sie ja etwas Besseres.
Jörg W. schrieb:> ISP erfolgt während Reset, da interessieren nur die Fuses.
Es ist aber so, dass beim normalen Programmieren zuerst Vcc angelegt
wird, dann läuft das vorhandene Programm los und wird über clkpr auf
niedrigen Takt gesetzt. Dann geht der normale Programmiertakt nicht
mehr. Die Fuses werden erst gesetzt, wenn er aus dem Powerdown oder
Reset heraus kommt. Also beim Start zu früh, da danach clkpr gesetzt
wird und dann geht schon nichts mehr.
Hatte ich gerade wieder, als ich einen schon mal programmierten Chip
nutzen wollte, da hat AVR-Studio gleich über falsche Signatur gemeckert,
weil er sie nicht lesen konnte. Mit dem Trick über Hart-Reset ging alles
wieder.
Jörg W. schrieb:> ISP erfolgt während Reset, da interessieren nur die Fuses.
Das ist nicht ganz richtig. Der Clock Prescaler wird nicht beim Eintrit
in den Reset Zustand zurück gesetzt, sondern beim Verlassen.
Nehmen wir an, das Programm läuft und hat die Taktrate herunter gesetzt.
Jetzt zieht der Programmieradapter die Reset Leitung auf LOW, um in den
ISP Modul zu wechseln. Dann ist die Taktrate immer noch niedrig!
Um dieses Problem zu umgehen besteht die Möglichkeit (und ich glaube
dein Avrdude macht das auch), die Reset Leitung kurz auf LOW zu Pulsen,
und dann ein zweites mal auf LOW zu ziehen (und zu halten). Wenn das
Programm die Taktfrequenz bis dahin nicht schon wieder herab gesetzt
hat, dann funktioniert die ISP Kommunikation nun schnell. Deswegen gibt
es den Tipp, am Anfang des Programms eine Sekunde zu warten, bevor man
die Taktrate herunter setzt. Wer das bisher immer so gemacht hat, kennt
das "Problem" womöglich gar nicht.
Steve van de Grens schrieb:> Um dieses Problem zu umgehen besteht die Möglichkeit (und ich glaube> dein Avrdude macht das auch), die Reset Leitung kurz auf LOW zu Pulsen,> und dann ein zweites mal auf LOW zu ziehen (und zu halten)
Das ist letztlich die seit Jahr und Tag*) von Atmel empfohlene
Vorgehensweise.
*) Einzige Ausnahme: beim AT90S1200 stand dies noch nicht in der
Vorschrift drin. Der hatte aber auch keinen clock prescaler. ;-)
Ansonsten spricht natürlich auch nichts dagegen, dass man /RESET vorab
auf low zieht und dann erst Vcc anlegt.