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.
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
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.
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
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.
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?
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
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.
...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)
@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.
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.
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"