Hallo, ich habe ein Problem mit meinem Reset-Knopf an dem ich langsam wirklich verzweifel. Ich habe 2 unterschiedliche Platinen auf denen u.a ein PIC18F4550 sitzt. Um einen Reset am Controller ausführen zu können habe ich logischerweise auf beiden Platinen einen Resetknopf. Auf den Mikrocontroller habe ich zum Programmieren des PICs eine Bootloadfunktion gebrannt, die aufgerufen wird, wenn der Resetknopf eine paar Sekunden gedrückt wird. Nun habe ich das Problem, dass auf einer Platine diese Reset-"Sonderfunktion" funkioniert und auf der anderen nicht. Das Problem liegt nicht am Controller, denn wenn ich die vertausche ist das Problem das selbe. Auch die Reset-Beschaltung ist identisch, bis auf das die Leiterbahnen anders verlegt sind. Auf der "defekten" Leiterplatte funktioniert der kurzzeitige Reset selbst schon, nur der Reset "rastet" eben nicht ein um in die Bootloadfunktion zu gelangen. Ich dachte zuerst das der Resetknopf selbst kaputt ist und ev. stark prellt, aber auch nach einem Austausch des Bauteils bestand das Problem weiterhin. Im Anhang ist der Schaltplan zu meiner Resetschaltung die auf beiden Platinen gleich ist. Die Schaltung ist ja eigentlich realtiv unspektakulär, daher weiß ich nicht wo da der Fehler liegen könnte. Ich hoffe jemand kann mir einen Tipp geben wo ich suchen muss! Vielen Dank im Voraus!!!
Woher weiss der Bootloader, wie lang der Reset-Knopf gedrückt wird?
Parteivorsitz wrote: > Problem das selbe. Auch die Reset-Beschaltung ist identisch, bis auf das > die Leiterbahnen anders verlegt sind. Wenn die Bauteilwerte die Selben sind, bleibt nur noch ein Verdrahtungsfehler übrig. @Andreas: ...das hab ich mich eigentlich auch schon gefragt... =)
Er wird wohl oft auf LOW abgefragt und gezählt bis Überlauf, geht das?
Läuft ein PIC denn schon los während Reset/MCLR noch auf 0 liegt? Dem Datasheet nach tut er das erst wenn wieder Ruhe eingekehrt ist. Daher ja meine Frage.
... habe ich zum Programmieren des PICs eine Bootloadfunktion gebrannt, die aufgerufen wird, wenn der Resetknopf eine paar Sekunden gedrückt wird... Wie geht das? Meine uPs sind nicht faehig irgendetwas zu tun wenn ich die RESETte... Hast du noch irgendetwas an der RESET Leitung angeschlossen? Mit macht das funktionierende Board mehr Kopfzerbrechen als das nicht funktionierende ... hehe :) Gruesse
Der Bootloader ist beim Microchip Firmware Framework dabei. Zu meiner Schande muss ich leider sagen, dass ich mich darum gekümmert habe, wie das Ding genau funktioniert. Hier wird ein bißchen was dazu erzählt (betrifft zwar anderen Bootloader aber das Prinzip ist ähnlich): http://www.sprut.de/electronic/soft/usboot/usboot.htm#aktiv http://www.sprut.de/electronic/pic/bootloader/bootloader.htm Ich hab aber noch ein bisschen gegoogelt und folgende Homepage gefunden: http://www.holger-klabunde.de/usb/18f2550.htm Bei diesem Experimentierboard wird ebenfalls der Microchip Bootloader verwendet. Doch zu meiner Überraschung wird dort ein zweiten Taster verwendet. Meine 1. Platine funktionierte ja super mit nur einem Taster.... Auf seinen Schaltplan sieht man, dass er mit dem Bootloadtaster den Pin RC2 des PICs auf Masse zieht. Ich habe das mit meinen eigenen Platinen verglichen. Die 1. funktionierende Platine ist nicht von mir - der Pin RC2 wird dort abgegriffen, führt jedoch ins nichts. Auf meiner eigenen 2. Platine habe ich den Pin gar nicht belegt. Meine Vermutung ist jetzt, das die 1. Platine ursprünglich gar für das Bootloaden ausgelegt war und nur zufällig am Pin RC2 der richtige Spannungspegel anliegt, der dann als GND interpretiert wird. Bei der 2. Platine habe an anscheinend dieses Glück nicht. Vielleicht sollte ich einfach einen Draht von RC2 an GND löten, was meint ihr? Oder ist meine Vermutung unsinn? Von einem Verdrahtungsfehler gehe ich nicht aus, weil der nomale Reset ja funktioniert und ich das Ding schon ein paar Mal untersucht habe. Aber das für das Bootloaden noch ein zweiter Taster benötigt wird, klingt irgendwie schon logisch...
Pfiffig ist die Lösung ja schon: Im Register PCON wird wohl das POR-Bit gesetzt, wenn der PIC durch Einschalten der Versorgung hochgefahren ist. Bei einem Reset durch MCLR bleibt das Bit inaktiv, daher voila, eine bemerkenswerte Art zum Starten des Bootloader. Sind die Fuses korrekt gesetzt? Ich würde den 100nF mal ganz weglassen, weil sonst der POR nicht mehr greifen kann: VCC schon lange da und MCLR immer noch low.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.