-         

Ergebnis 1 bis 8 von 8

Thema: Brauche HILFE - PIC spinnt wo ist der fehler

  1. #1
    Pitt
    Gast

    Brauche HILFE - PIC spinnt wo ist der fehler

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    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

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.07.2005
    Beiträge
    170
    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.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    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

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.07.2005
    Beiträge
    170
    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

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    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

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.07.2005
    Beiträge
    170
    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

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    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

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •