PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Brauche HILFE - PIC spinnt wo ist der fehler



Pitt
30.09.2005, 18:40
hi,

leute ich brauch wieder mal eure hilfe.
ich bin neu auf dem gebiet microcontroller.
ich hab nen pic 18f452.

hab jetzt alles an der platine festgelötet.
jetzt hab ich ne led am PORTD 3
wenn ich jetzt strom anschalte dann kommt es mir so vor als wäre da irgendwo ein wackel kontakt.
manchmal leuchtet die led manchmal wieder net schüttelt man ein bisschen mit der paltine geht die Led an oder aus.

aber es ist alles richtig gelötet.

komm ich mit nem schraubenzieher an mclr hin gehts wieder oder wenn die led aus ist dann geht se an.

mclr liegt frei, ist also nicht angelötet bzw nirgends angeschlossen.

mess ich den strom an dem pin an dem die led anglötet ist dann ist manchmal strom drauf und manchmal nicht, also von der led bis zu pic ist alles richtig, d.h. ab dem pic kann der fehler sein.

mein programm:

list p=18f452
#include <P18f452.INC>

__config _CONFIG2L, _PWRT_ON_2L
__config _CONFIG2H, _WDT_OFF_2H
__config _CONFIG1H, _HS_OSC_1H



clrf PORTD
clrf LATD
movlw B'00000000'
movwf TRISD


aaaa
bsf PORTD,3
nop
nop
nop
nop
bcf PORTD,3
nop
nop
nop
nop
goto aaaa
end

Fritzli
30.09.2005, 20:28
Hallo


mclr liegt frei, ist also nicht angelötet bzw nirgends angeschlossen.

Des ischt ganz schlecht! Kann so gar nicht funktionieren. Der gehört angeschlossen! Der Pin sagt dem PIC, ob er laufen soll, oder resetten. Wenn der frei rumhängt hat er irgendeinen Zustand, der sich je nach Luftfeuchte, Feldern, Schraubenziehern ändert.
Für Normalbetrieb an V+

Ich kenn mich mit den 18er'n nicht so aus, aber ist PORTx nicht das Eingangsregister und LATx der Ausgang? D.h. müsste man nicht die bsf/bcf auf dem LATx Register machen, damit sich was tut?

Ich nehm mal an, der Oszillator ist korrekt.

Gruess
Fritzli

Pitt1986
30.09.2005, 22:26
hi,

ja ok also des mit dem mclr mach ich jetzt.

des mit dem portx und latx les ich mir jetzt noch mal durch.
heisst es dann jetzt dass man gar nicht mehr trisx braucht?? weil man kann ja dann mit den befehlen immer entscheiden ob ausgang oder eingang.

und des mit dem oszillator des is auch so ein prob. und zwar ich habe des aus nem radio bzw anlage ausgebaut und es heisst ja da wo der eingang ist, da ist das beinchen länger und am ausgang kürzer.
oder anderst rum, jedenfalls hab ich es aus ner anlage rausgelötet und die beinchen sind abgeschnitten und gleich lang.
also kann ich nur hoffen dass ich den richtig eingebaut habe.

Fritzli
01.10.2005, 08:28
Hallo

TRIS brauchts weiterhin, er muss ja wissen ob ein Pin ein Output oder Input ist. Je nachdem macht dann aber jeweils ein Schreiben von LATx oder Lesen von PORTx keinen Sinn.

Ich nehm mal an, das Ding aus dem Radio ist, wenn's nur zwei Beinchen hat, ein Quarz, kein Oszillator. Der wär dann symmetrisch. Was hat der für ne Frequenz? Hast Du die Kondensatoren von OSC1 und OSC2 nach Masse eingebaut.

Würde allerdings einen neuen Quarz kaufen, der gleich die korrekte Frequenz hat, da ist dann auch ein Datenblatt verfügbar.

Foto vom ganzen Aufbau?

Gruess
Fritzli

Pitt1986
04.10.2005, 17:23
hi,

also jetzt habe ich den mclr an den plus-pol gelegt.

jetzt geht es schon besser, aber irgendwas stimmt nicht.

der pic steuert ein display.

aber machmal wird das display nicht initalisiert man mach wieder schon dann soll "Hallo" am display ausgegeben werden was aber 1 mal in 20 mal ein und wieder ausschalten klappt. und es wird nie "Hallo" sondern nur "Hlo" ausgegeben.
also ich bin mir ziemlich sicher dass es nicht am programm liegt.
ich glaube eher es liegt an der paltine bzw lötstellen.

ich habe eine gebrauchte platine genommen und diese abgeschmirgelt, damit keine leiterbahnen mehr drauf sind.
dann habe ich die löcher für pic und display usw gebohrt.
dann den pic, usw. reingesteckt und angelötet.
ich muss aber sagen ich habe alles mit drähten verlötet.
und die lötstellen sind auch nicht so toll, des sieht so aus als wäre da immer ein tropfen auf nem pin.

kann es sein das ich mir mehr zeit für löten und leiterbahen nehmen sollte oder kann es noch an etwas anderem liegen??

mfg
pitt

Fritzli
04.10.2005, 17:39
Hallo

Wie schaut die Oszillator-Schaltung aus, Kondensatoren dabei? Wie gross?
Kannst Du ein Photo der Platine (oben & unten) posten?

Ist ev. das Timing des Programms zu schnell fürs Display?
(z.B. die Länge des Enable-Impulses, etc.)


mfg
Fritzli

Pitt1986
04.10.2005, 18:05
hi,

also jetzt hab ich rausgefunden warum immer nur "HAL" und nicht "HALLO" geschrieben wird.
Weil die geschwindigkeit für das display zu schnell war.

hab ein kondensator dran mit 47uf, dann hängt noch ein oszilator mit 4mhz am pic und des wars eigentlich.
des soll nur ein test versuch werden deswegen hab ich da nicht viel angelötet bzw. nicht richtig berechnet.

und was mir jetzt aufgefallen ist, wenn ich das strom einschalte dann geht alles wie ich es will mach ich den strom aus und nach ca. 1-5 sekunden wieder an dann wird es nicht richtig intialsiert. wenn ich jedoch so 5-10 sekunden warte dann geht es wieder wie ich es will.
woran könnte das liegen

mfg
pitt

Fritzli
04.10.2005, 19:45
hab ein kondensator dran mit 47uf, dann hängt noch ein oszilator mit 4mhz am pic


a) Hängt der Kondensator zwischen V+ und GND?
b) Oszillator: Ist das ein fixefertiger Oszillator-Modul oder ein Quarz / Kermaikschwinger?

Falls a), dürfte das daran liegen. Wenn Du ausschaltest, entlädt sich der Kondensator nur langsam. Kann sein, dass er nach ein paar Sekunden noch so viel Spannung liefert, dass der PIC keinen sauberen Reset generiert, d.h. er macht dann nix oder irgendwas.
Der PIC sollte Brow-Out-Detect haben. Das einzuschalten dürfte helfen. Andere Methode wäre , nach dem Kondensator eine LED (natürlich mit Vorwiderstand) einzubauen. Die leert den Kondensator dann schnell. Ich mach das immer so. Ausserdem hat man dann eine Anzeige, dass Spannung anliegt.

mfg
Fritzli