Prozessor retten - Software-PWM sperrt ISP-Zugang

OP #1962672
Lesenswert?

Hallo,

ich glaube, ich lerne nicht aus meinen Fehler. Mittlerweile ist es wohl 
der 4 ATtiny13, den ich Platt gemacht hab.

Dabei habe ich keine FuseBits falsch gesetzt.

Ich teste mich gerade an der PWM. Dabei habe ich den Ports PB0-2 (Miso, 
Mosi, SCK) eine wiederkehrenden Signalausgabe im 10 bis 1000us Takt 
vorgegeben. Jetzt lassen sich die Prozessor nicht mehr bespielen.

Gibt es eine Möglichkeit, den ATtiny noch zu löschen?
Gast #1962707
Lesenswert?

Evtl. stört die Schaltung an den Pins den Programmiervorgang. Das 
Programm selber kann es eigentlich nicht sein. Denn das interessiert 
während des Programmierens oder eines Reset nicht.

Sicher, dass die Fuses stimmen und der Resetpin nicht deaktivert wurde?


Carsten
OP #1962710
Lesenswert?

Weil er es nicht macht. Nachdem ich den Quelltext drauf kopiert habe, 
lässt sich weder an den FuseBits noch am EEprom was auslesen oder hinein 
schreiben.

Ich glaube, dass kommt daher, dass die Pinns so schnell Signale geben 
und jeder Versuch ihm andere Daten mitzuteilen deshalb fehlschlägt.

Der Prozessor als solches funktioniert auch noch, da die gedimmte LED 
leuchtet immer noch schwach.
Gast #1962716
Lesenswert?

Squat *** schrieb:
> Ich glaube, dass kommt daher, dass die Pinns so schnell Signale geben
> und jeder Versuch ihm andere Daten mitzuteilen deshalb fehlschlägt.

Kann nicht sein, weil der Controller beim Programmieren Resettet wird 
und damit das Programm nicht mehr läuft. Hast du die LED vielleicht ohne 
Vorwiderstand angeschlossen?

Entferne mal die angeschlossene Schaltung und probiers dann nochmal
OP #1962719
Lesenswert?

Ich habe die FuseBits anfangs eingstellt. Da ich nun was anderes mit dem 
Prozessor machen wollte, habe ich alles gelassen und nur die Software 
drüber gepackt. Anfangs habe ich nur einen Pin geändert, aber als ich 
dann zusätzlich  die anderen Pins Aufgaben zugeteilt habe, führen diese 
das Leuchten aus, jedoch kann ich seitdem nichts mehr programmieren.

Ich habe an den Pins jeweils einen 4k7 Widerstand und dahinter einen 
Transitor für die Ansteuerung der LEDs. Und das Lauflicht funktionierte 
auch immer (ist jedoch viel langsamer).
#1962728
Lesenswert?

Was für nen Programmer hast Du denn?

Häng mal das Hex-File an. Ich werds dann mal aufspielen und probieren, 
ob das ISP wirklich tot ist.

Setzt Du vielleicht den CPU-Prescaler auf nen sehr langsamen Takt?
Dann mußt Du den SPI-Takt auch runtersetzen.
Ich glaub, die werden bei nem externen Reset nicht zurück gesetzt.


Peter
Gast #1962744
Lesenswert?

Hi Squat

Wo sind denn die ISP-Leitungen verbunden, zwischen dem µC und dem 
Widerstand oder zwischen dem Widerstand und dem Transistor?

Ich vermute mal zw. Widerstand und Transistor...oder?

Es ist besser wenn du die Schaltung einstellst so kann man besser 
"raten" ;)

MfG
OP #1962756
Lesenswert?

Die ISP-Leitungen sind direkt am ATtiny. Ich habe auch bisher ohne 
Probleme damit programmiert. Ich habe mittlerweile schon 8 dieser 
Platinen programiert. und nicht nur einmal, da die Software anfangs 
nicht so passte. Jetzt habe ich diese Platine zweckentfremdet, um statt 
dem Lauflicht, die LED zu dimmen.

Momentan programmiere ich mit dem USB AVR LAB mit dem AVRISPMKII 
Protokoll. Zum Brennen verwende ich AVR8 Born-O-Mat v2. Zwischenzeitlich 
hatte ich auch mal mit der Sercon SI-Prog unter PonyProg2000 probiert.

Weder die FuseBits noch den Timer habe ich von der Letzten zur jetigen 
Version geändert.

Im Anhang findet Ihr den hex-Datei.
Angehängte Dateien:
#1963716
Lesenswert?

Squat *** schrieb:
> Momentan programmiere ich mit dem USB AVR LAB mit dem AVRISPMKII
> Protokoll. Zum Brennen verwende ich AVR8 Born-O-Mat v2.

So, ich habe das Hex reingeladen. Es brennen die LEDs an PB0,1,2 und 4.
Wenn man das STK schüttelt, sieht man an PB0,1,2 ne PWM.

Ich kann weiterhin über ISP die Signatur lesen und den Flash löschen und 
programmieren. Keinerlei Probleme.

Ich verwende STK500 und AVRStudio.


Peter
Persönliche Seite #1963738
Lesenswert?

Squat *** schrieb:
> Über welchen Widerstand sollte ich den Reset denn dauerhaft herstellen?
Hängt vom Programmer ab. Vom AVR her darfst du RESET direkt mit Masse 
verbinden.
Wenn der Programmer aber selbst RESET auf Plus legen will (und keine 
Schutzwiderstände hat), dann könnte er dadurch beschädigt werden.
Mit so 300...500 Ohm von RESET nach Masse bist du auf der sicheren 
Seite.

Also dann folgende Reihenfolge:
- RESET über z.B. 300...500 Ohm auf Masse legen
- Programmer anschließen und Versorgungsspannnug für den Tiny13 
einschalten
- Programmieren

Wichtig ist, dass der Tiny13 keine Versorgungsspannung bekommt, solange 
RESET nicht auf Masse gelegt ist. Somit können nämlich im Programm evtl. 
gesetzte Clock-Prescaler nicht aktiv werden.
OP #1964052
Lesenswert?

Also ich habe es bei zweien schonmal hinbekommen.

Irgendwie hatte es was mit dem Reset und meinem Programmer (USB AVR Lab 
mit AVRISPMKII) zu tun, aber so richtig habe ich es nicht verstanden.

Ich habe nochmal die Sercon angeschlossen (unter PonyProg wird er unter 
SI Prog AVR geführt). Da ich in PonyProg leider keinen ATtiny13 gefunden 
habe, musste ich auf AVRdude zurückgreifen.

Als Befehl habe ich folgendes eingegeben.
1
avrdude -c ponyser -P com1 -p t13 -U flash:w:test.hex -u

Während des Vorganges habe ich dann kurz Reset mit Masse verbunden und 
dann löschte er auch schon den Chip. Da ich als Quelltext eine imaginäre 
Datei angegeben hatte, brach er ab. Nun kann ich jedoch in gewohnter 
Weise mit dem AVR USB LAB drauf zugreifen, Fuse lesen und den Tiny 
beschreiben.

Schön, wäre es, wenn wir das Problem vielleicht doch noch genauer 
aufschlüsseln könnten, damit ich hier nicht mit zwei Programmern 
arbeiten muss. Außerdem kann das ja nicht der normale Weg sein.
OP #1964083
Lesenswert?

Na ich glaube, dass ist der falsche Weg. USB AVR LAB ist ein privater 
Entwickler Christian Ulrich, der uns Usern die Möglichkeit gegeben hat, 
mit einem kleinen Tool mehrere Aufgaben zu ermöglichen (STK500V2, 
AVRISPMKII, JATGICEmkII, OpenOCD, USBasp, Taktgenerator, Oszilloskop, 
etc.)

Naturlich werde ich Ihm davon berichten und hoffen, dass ihm dazu was 
einfällt, jedoch ist das kein kommerzielles Produkt und so kann ich 
keine Ansprüche stellen.

Mir ging es jedoch eher darum, zu verstehen, welcher technische 
Hintergrund eventuell dazu geführt hat, dass das Gerät den Dienst 
verweigert hat. Aber du hast Recht am ehsten sollte ich diese Frage 
Christian stellen.

Wenn doch noch jemand was dazu einfällt, freue ich mich über jeden 
Ansatz.

Ansonsten möchte ich mich bei Allen bedanken.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren