Forum: Mikrocontroller und Digitale Elektronik PIC 18F2550 läuft nicht


von Jan Purrucker (Gast)


Lesenswert?

Hallo allerseits,

ich habe eine Testschaltung mit einem PIC 18F2550 aufgebaut.
Nun wollte ich mal nur zum Anfang einen Port als Ausgang setzten und 
einen Pin auf High setzen. Leider ist der Pin nach Anlegen der Spannung 
nur ca. 3 Sekunden High, und dann wieder low. Der PIC scheint irgendwie 
abzustürzen. Ich habe schon alle Oszillatoreinstellungen probiert. 
Quarz-Kondensatoren passen auch. Ich finde einfach den Fehler nicht. 
Kann mir jemand weiter helfen?
Folgenden Code habe ich zum Sezten des Ports verwendet (Ausschnitt)


         movlw   B'00000000'
  movwf   TRISD     ;Port RD komplett als Ausgang
  movlw   B'00001000'
  movwf   LATD               ;Setze RD3 auf High

loop:
goto loop


Für Hilfen wäre ich sehr dankbar. Ich habe vorher mit Atmel AVR 
gearbeitet und steige jetzt um.

Gruß
Jan

von Thorsten (Gast)


Lesenswert?

Ist evtl. der Watchdog aktiv?

von tastendrücker (Gast)


Lesenswert?

> Ich habe vorher mit Atmel AVR gearbeitet und steige jetzt um.

Uhh, darf man hie eigentlich nicht sagen... ;)

Aber wie Thorsen schon meinte: WatchDog ON? Und wie sieht der Rest 
deines Programms aus?

von Jan Purrucker (Gast)


Lesenswert?

Hallo,

ich bin so langsam am Verzweifeln. Ich habe folgenden Code geschrieben:

  LIST P=18F4550    ;directive to define processor
  #include <P18F4550.INC>  ;processor specific variable


  CONFIG    PLLDIV = 1
  CONFIG    CPUDIV = OSC1_PLL2
  CONFIG    USBDIV = 1
  CONFIG    FOSC = HS
  CONFIG    FCMEM = OFF
  CONFIG    IESO = OFF
  CONFIG    PWRT = ON
  CONFIG    BOR = OFF
  CONFIG    BORV = 3
  CONFIG    VREGEN = ON
  CONFIG    WDT = OFF
  CONFIG    WDTPS = 1
  CONFIG    MCLRE = ON
  CONFIG    LPT1OSC = OFF
  CONFIG    PBADEN = OFF
  CONFIG    CCP2MX = OFF
  CONFIG    STVREN = OFF
  CONFIG    LVP = OFF
  CONFIG    XINST = OFF
  CONFIG    DEBUG = ON



    ORG  0x0000
    goto  Main    ;go to start of main code

Main:

         movlw    B'00000000'
  movwf    TRISD     ;RD-PORT als Ausgang
  movlw  B'11111111'
  movwf  LATD    ;Alle RD auf High

loop:
  goto loop

    END

Nun ist es so, dass ich einen 18LF2550 einsetze (also für niedriege 
Spannungen, Quarz ist ein 4MHz HC49U-S mit 20pF) Am CLKO Messe ich mit 
dem Oszi eine wunderschöne Sinusspannung mit 4MHz. Microchip empfiehlt 
aber allerdings 27pF Kondensatoren für 4MHz Quarz-Oszillatoren. Aber er 
müsste ja laufen, wenn ich die 4MHz Sinusspannung mit dem Oszi am 
Quarz-Ausgang (CLK0) Messe.
Nun ist folgendes Phänomen: Mit 5V funktioniert alles einwandfrei. 
Betreibe ich jedoch den PIC mit 4V, dann sind die RD für ca. 4Sekunden 
High und gehen dann auf Low. Hab mir schon gedacht, dass das mit dem 
Brown-Out zusammenhängt, aber das hab ich ausgeschalten. (Die 
Konfiguration habe ich über den Assembler-Text reingeschrieben)
Habe schon mit dem Watch-Dog, Brownout rumgespielt, aber ich weiß nicht, 
warum es bei 4V nicht funktioniert. Es ist ja ein LF-Typ, der bis runter 
zu 2V betrieben kann.
Für Hilfen wäre ich sehr dankbar.

Gruß
Jan

von 1. Rahul nach Moiré (Gast)


Lesenswert?

#include <P18F4550.INC>  ;processor specific variable

Passt das zu deinem 18LF2550?

von Jan Purrucker (Gast)


Lesenswert?

Hallo,

ich habs jetzt mit einen 18LF4550 probiert. Das gleiche.
Aber ich hab jetzt die Lösung. Hab den Pull-up am MCLR vergessen.
Bitte vielmals um Entschuldigung, dass ich hier wegen so einem dummen 
Fehler gefragt habe. Aber wenigstens kenne ich jetzt schon mal alle 
Config-Einstellungen des PICs ;-)
Trotzdem danke.

Gruß
Jan

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.