Forum: Mikrocontroller und Digitale Elektronik 4 ATtiny13V noch zu retten?


von The Keymaker (Gast)


Lesenswert?

Hallo!
Bin neu auf dem Gebiet "AVR". Hab mich für den ATtiny13V und den 
DIAMEX-AVR USB Programmer entschieden und verwende Bascom 2.0.7.1 und 
AVR-Studio V4. Nach dem setzen der Fusebits (E und DCBA) kann ich nicht 
mehr auf die µC zugreifen.(wird nicht mehr erkannt). hab jetzt schon 4 
Stk. auf dem Gewissen......


Wie kann ich die tinys, wenn überhaupt möglich, wieder beleben?
Geht das noch mit HV-Programieren? Wenn ja, wie mache ich das am 
einfachsten ohne große Unkosten? Ist es möglich, das ich das irgendwie 
mit dem Diamex programmer machen kann oder muß ich mir noch extra ein 
HV-Programmer zulegen? Wenn ja, wo bekomme ich ihn günstig?

Gibts da ne gute Seite, wo man das erfahren kann, wie man am besten 
fehlerfrei die Fusebits setzt?
Was mache ich da falsch?

Danke schon mal im voraus!
Gruß M.S.

von Peter D. (peda)


Lesenswert?

The Keymaker schrieb:
> Nach dem setzen der Fusebits (E und DCBA) kann ich nicht
> mehr auf die µC zugreifen.

Was sollen das für Fuses sein?

Aussperren kann man sich mit Ändern von DWEN, RSTDISBL oder auf externen 
Clock.

Und als erstes immer die Signatur lesen, ob die Kommunikation zum AVR 
überhaupt klappt. Sonst kann es passieren, daß man irgendein Blödsinn in 
die Fuses schreibt.

Zum Wiederbeleben brauchst Du einen Bekannten mit STK500.


Peter

von Peter R. (pnu)


Lesenswert?

Meistens hilft das Anlegen eines externen Taktes an den entsprechenden 
Pin des atiny 13.
Nur wenn der reset-Pin "weggefust" ist, braucht man wirklich 
HV-Programmierung.

In extrem seltenen Fällen  hat man den atiny wirklich gekillt, wenn man 
nämlich ganz langsamen internen Oszillator einstellt, mit falscher 
Hochlaufzeit dazu, dann wird der atiny zum OTP (one-time 
programmable-Objekt.)
Das ist ein bug des atiny13(siehe Datenblatt, errata), natürlich hab ich 
mich schon mehrfach genau in diese Falle verfust.

von Peter D. (peda)


Lesenswert?

Peter R. schrieb:
> Das ist ein bug des atiny13(siehe Datenblatt, errata), natürlich hab ich
> mich schon mehrfach genau in diese Falle verfust.

Interessant, ist mir noch nie passiert.
Ich benutze aber auch immer die längste Startup-Time.
Warum brauchst Du denn die kürzeste Startup-Time?
Muß ich mal sehen, ob ich noch alte mit Revision B habe.


Peter

von Thomas E. (thomase)


Lesenswert?

The Keymaker schrieb:
> Gibts da ne gute Seite, wo man das erfahren kann, wie man am besten
> fehlerfrei die Fusebits setzt?
> Was mache ich da falsch?
Datenblatt, Seite 104, Fuse Bytes

Und da gibt es 3, von denen lässt du Finger weg:
RSTDISBL(4)
DWEN(3)
SPIEN(1)
Mit denen sperrst du dich defintiv aus.

Und hier ist Vorsicht angebracht:
CKSEL1
CKSEL0
Da kannst du dich aussperren, wenn du einen Quarz dran hast und statt 
externem Quarz, externen Takt einstellst.

Und mit der
CKDIV8
wird der Takt /8 geteilt. Das ist aber default! D.h. ein neuer 
Controller läuft immer mit 1 MHz intern.

CKDIV und CKSEL sind die Fuses, die meistens verändert werden. Und meist 
auch die einzigen. Zumindest für den Anfang.

mfg.

von The Keymaker (Gast)


Lesenswert?

Danke für die antworten!

ich meinte diese Fusebits damit ->(siehe anhang). Das bild stammt von 
einem neuen Tiny13V. Von DWEN, RSTDISBL und SPIEN hab ich meine Flossen 
gelassen und ich werde sie auch weiterhin davon lassen lassen.....
Hab mich ja schon ein bißchen schlau gemacht.... ;-)

Ich habe mich nach dem "Kochbuch" (http://reaktivlicht.de/kochbuch.pdf) 
gerichtet, da sollten die beiden Fuses geändert werden. Hatte mir den 
Paralellen Programmer nach gebaut und dann den Programmer 
eingestellt.Fusebits gesetzt (CKDIV8 auf off, Clock auf 128kh +64) ging 
2X Schief. Dann hab ich mir den Diamex geholt und es wieder 2X probiert. 
µC programmieren geht. Fuse setzen mit Bascom und AVR-Studio klappte, 
nur das er danach nicht mehr erkannt wird (Chip ID: FFFFFF)

Muß man die fusebits vielleicht nach der reihe in einer bestimmten 
Reihenfolge setzen?


Wenn ich daß jetzt richtig verstanden hab, könnte ich jezt vesuchen über 
einem anderen tiny einen Takt zu erzeugen und dann dem Patient über pin2 
(PB3) verabreichen und dann testen ob sich der chip mit dem Programmer 
wieder ansteuern lässt, oder? Reichen 1,2 MHz?

von The Keymaker (Gast)


Angehängte Dateien:

Lesenswert?

oh das bild noch

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

The Keymaker schrieb:
> Wenn ich daß jetzt richtig verstanden hab, könnte ich jezt vesuchen über
> einem anderen tiny einen Takt zu erzeugen und dann dem Patient über pin2
> (PB3) verabreichen und dann testen ob sich der chip mit dem Programmer
> wieder ansteuern lässt, oder? Reichen 1,2 MHz?

Mach das. Einfach dieses Programm
1
$regfile = "ATTiny13.dat"
2
$crystal = 1200000
3
4
Config PORTB = Output
5
6
Do
7
  Toggle PORTB
8
Loop
in einen ATTiny13 flashen und du hast an jedem Pin (außer RESET) dieses 
ATTinys einen "Rettungs-Takt", den du auf XTAL1 des "Patienten" geben 
kannst. Aber bitte mit einem Schutzwiderstand von etwa 1k Ohm! Nicht, 
dass du versehentlich (mit genug Pech) den nächsten ATTiny durch 
Überstrom schrottest... Wär ja blöd. Eventuell musst du auch noch den 
Programmer-Takt runterstellen. Du hast einen Diamex-Programmer? Dann 
kannst du bis auf 4kHz runtergehen. Menü "Options" -> "Programmer" und 
dort "Clock" auf 4096 ändern.


Gruß
Jonathan

von Thomas E. (thomase)


Lesenswert?

The Keymaker schrieb:
> Clock auf 128kh +64
Heisst das, du hast den auf 128KHz gestellt?

Dann musst du genau das machen:
Jonathan Strobl schrieb:
> musst du auch noch den Programmer-Takt runterstellen.
Der SPI-takt darf max. F_CPU/4 betragen.

mfg.

von Peter R. (pnu)


Lesenswert?

...Und genau diese 128 kHz sind der kritische Wert, allerdings bei 
kürzester Startzeit. Siehe Datenblatt S.166. (und meine atiny13 sind 
nach meiner Erinnerung sogar mit der Kombination 128 kHz + 64ms 
unzugänglich geworden)

von The Keymaker (Gast)


Lesenswert?

@Jonathan
Habs mal so getestet mit externen Takt auf Pin2 (PB3), nach dem ich den 
Programmer-Takt auf 4KHz gesenkt hab, konnte ich die Fusebits mit 
AVR-Studio wieder neu einstellen. Nach der Behandlung liefen die 4 Tinys 
wieder.
Ich dachte auch, das er ein problem mit denn 128KHz hatte, weil, immer 
wenn ich diesen wert eingestellt hatte, hat der einen auf blöd gemacht.

Hab denn ganzen Nachmittag lang getestet und probiert und habs 
geschafft.
Die Fusebits setze ich jetzt nur noch mit AVR-Studio. Wichtig ist, denn 
Programmer-Takt noch kleiner als 4KHz zusetzen. In Bascom dann die 
Baudrate auch unter 4KHz (2400KHz) und dann läuft es ohne Probleme auch 
mit 128 kHz + 64ms.

Problem also gelöst.... -> Danke nochmal!
Gruß M.S.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Warum benutzt du dieses seltsame Programm ueberhaupt, wenn du doch 
sowieso AVRStudio hast ?

von The Keymaker (Gast)


Lesenswert?

Peter W. schrieb:
> Warum benutzt du dieses seltsame Programm ueberhaupt, wenn du doch
> sowieso AVRStudio hast ?

Ganz einfach:
A) Ich kann weder C noch Assembler...;-)
B) Die Hardware braucht laut der Beschreibung vom Programmer,
   wenn ich Bascom verwenden will, AVR-Studio.
C) Für meine einfachen Anforderungen reicht Bascom völlig aus.

Gruß M.S.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Das erklaert aber noch immer nicht warum du dieses seltsame Programm 
benutzt.
Wenn dein Programmiergeraet doch mit AVRStudio funktioniert und ein 
STK500 kompatibles Protokoll hat, warum machst du dann nicht gleich 
alles mit BASCOM, statt ueber 27 Ecken mit 3 Programmen ? Kein Wunder 
das da nichts gescheites bei rum kommt.
Beitrag "Diamex ALL AVR von Reichelt unter BASCOM"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.