Forum: Mikrocontroller und Digitale Elektronik Prozessor retten - Software-PWM sperrt ISP-Zugang


von Squat *. (squat)


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?

von Benny (Gast)


Lesenswert?

warum soll das nicht gehen?

von Carsten (Gast)


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

von Squat *. (squat)


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.

von peter (Gast)


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

von Hansi (Gast)


Lesenswert?

Den AVR vorher auf Dauerreset setzen. Dann geht das Programmieren auch 
wieder.

von Squat *. (squat)


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).

von Peter D. (peda)


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

von MO (Gast)


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

von Squat *. (squat)


Angehängte Dateien:

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.

von Squat *. (squat)


Angehängte Dateien:

Lesenswert?

Hier noch der Platinenaufbau. Die blauen Kreise zeigen an, wo die 
Leitungen zum ISP angelötet wurden.

Über welchen Widerstand sollte ich den Reset denn dauerhaft herstellen?

von Squat *. (squat)


Lesenswert?

Wie mache ich das mit dem Reset-Pin? Wenn ich diesen direkt gegen Masse 
schalte, startet zwar das Programm auf dem Controller nicht, jedoch kann 
ich auch so nicht den Prozessor löschen.

von Peter D. (peda)


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

von Markus F. (5volt) Benutzerseite


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.

von Simon K. (simon) Benutzerseite


Lesenswert?

500 Ohm ist vermutlich zu niederohmig für das Programmiergerät. Bei, 
AVRIISP mkII steht bei Debugwire dabei, dass der Reset Pullup > 10kOhm 
sein soll (oder so).

Aber das mit dem Hard-Reset ist Quatsch. Der Programmer resettet den AVR 
vor dem Programmieren. Da muss man nichts von Hand resetten.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Ich tippe einfach auf zu hohe ISP Frequenz, stell die mal gaaanz runter 
und probiers nochmal

von Squat *. (squat)


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.

von Peter D. (peda)


Lesenswert?

Probiers dochmal mit dem AVRStudio.

Wenns damit nicht geht, schreib nen Bugreport an den Entwickler des USB 
AVR Lab.


Peter

von Squat *. (squat)


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.

von Peter D. (peda)


Lesenswert?

Da es mit dem STK500 geht, muß es ja an dem USB AVR LAB liegen.


Peter

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.