PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit PIC16F877



M!ni M0nk3y
12.05.2013, 12:55
Hallo zusammen.

Ich experimentiere derzeit mit einem PIC16F877 herum, aber leider verhält der PIC sich ganz merkwürdig.

Zur Beschaltung:
Aufgrund der externen Beschaltung ist der PIC an Vdd mit ca. 4,05 V versorgt, am MCLR liegen etwa 4,5 V.
An PortB sind Low Current LEDs mit 1k als Vorwiderstand angeschlossen.

Das Programm wurde in Assembler geschrieben, Low Voltage Programming wurde ausgeschaltet und die Analogpins auf digital umgeschaltet.

Wenn ich jetzt mit den Befehlen

movlw b'11111111'
movwf PORTB

versuche die LEDs an PortB gleichzeitig einzuschalten, fangen diese wie wild an zu flackern.
Ein Lauflicht an PortB funktioniert einwandfrei.

Habe beide Quellcodes mit einem 16F872 (adaptiert) getestet und da funktionieren die Programme, also am Quellcode kann es eigentlich nicht liegen.

Hat der PIC16F877 irgendwelche Besonderheiten? Muss man im Config-Word evtl noch was umstellen, was bei 872 nicht notwendig ist.

Danke schonmal für alle Hilfen!

PICture
12.05.2013, 13:15
Hallo!

Man muss die innere Hardware in Datenblätter (DB) der diversen PIC's sehr genau vergleichen und danach alles nötige in Queldatei (*.asm) entsprechend ändern. Als Lektüre: http://www.rn-wissen.de/index.php/PIC_Assembler#F.C3.BCr_anderen_PIC_umschreiben .

M!ni M0nk3y
12.05.2013, 14:46
Danke schonmal für die Antwort! Bin leider diesbezüglich nicht fündig geworden (vorallem weil das Datenblatt für 872 und 877 gleich ist, gib ein Einheitliches das heißt 87x), bin anfangs nur in die Falle mit Low Voltage Programming getappt.
Vielleicht gibts ja hier in der Community jemand, der schon Projekte mit dem 877 gemacht hat, deshalb bin ich über jede weitere Antwort dankbar!

PICture
12.05.2013, 15:02
Mir fällt nur noch ein Montagefehler bei externer Beschaltung / Hardware ein.

Klebwax
12.05.2013, 15:03
Aufgrund der externen Beschaltung ist der PIC an Vdd mit ca. 4,05 V versorgt, am MCLR liegen etwa 4,5 V.

Was ist denn das für eine merkwürdige Schaltung? Wo kommen denn die 4V her? Nicht das 4V ein Problem sind, aber das MCLR 4,5V hat finde ich merkwürdig.



Wenn ich jetzt mit den Befehlen

movlw b'11111111'
movwf PORTB

versuche die LEDs an PortB gleichzeitig einzuschalten, fangen diese wie wild an zu flackern.
Ein Lauflicht an PortB funktioniert einwandfrei.

Ohne jetzt den Schaltplan gesehen zu haben, wäre meine erste Vermutung, die Versorgung knickt ein, wenn zu viele LEDs an sind.

MfG Klebwax

M!ni M0nk3y
12.05.2013, 15:30
Es ist eine relativ komplexe Beschaltung, wo die Versorgung über Schutzdioden und eine Treiberstufe geht. Da geht etwas an Spannung verloren, aber die PICs sollen laut Datenblatt ab 2 V laufen.
Die LEDs an PortB sind mit einem Sockel für den 877 und 872 verbunden und man kann entweder dein einen, oder den anderen PIC einstecken um zu testen.
Mit dem 872 funktioniert ja alles sauber, also scheint die Spannung zu reichen.
Und an Vdd des 877 bricht auch nichts ein, wenn er versucht alle LED einzuschalten.

Gibt es spezielle Programmierfallen beim 877? irgendetwas, was einen Reset auslöst oder so?

Ist wirklich sehr merkwürdig, weil ein Lauflicht sauber funktioniert.

Und das gleiche Programm, mit gleicher Hardware funktioniert auf dem 872 sauber!

PICture
12.05.2013, 15:45
Letzte, was mir einfällt, ist einen PIC16F877 mit provisorischem Zwischensockel für Port A (z.B. auf Lochraster) in eine geprüfte mit PIC16F872 einwandfrei funktionierende Schaltung zum Prüfen einstecken und beurteilen.

Übrigens, der PIC16F877 könnte defekt sein.