Forum: Mikrocontroller und Digitale Elektronik Anfänger Probleme mit PIC18F46K42


von Fred F. (aspus)


Lesenswert?

Guten Tag Allen,

ich als blutiger Anfänger habe ein  Problem, welches ich auch nach 
vielen Stunden Recherchen nicht habe lösen können. Vielleicht möchte mir 
jemand versuchen zu helfen.

Grundlegend läuft die Anwendung zur Digitalisierung von 16 NTC Sensoren.
Lediglich den berüchtigten MCLR PIN RE3 bekomme ich einfach nicht in den 
Griff. Der RE3 soll als normaler Eingangspin arbeiten.
Liegt er jedoch auf H, "stottert",  die Schaltung.
EIn angeschlossenens LCD-Display beschreibt zwei Zeilen korrekt, aber 
immer wieder von vorn. Angeschlossene LEDs blinken trotz dauerhaften H. 
Das ganze in einem ca. 2 Hz Takt. Sobald RE3 nicht mehr auf H liegt , 
läuft das Programm wie gewünscht. Dazu muss ich erwähnen, das RE3 
programmtechnisch noch nicht verwendet wird.
Es muss also ein Konfigurationsproblem vorliegen.
Es scheint gerade so, als ob der Chip in die niedrig Volt Programmierung 
gehen möchte (?). LVP habe ich aber hoffentlich mit dem 
Konfigurationswort CONFIG4H verlässlich deaktiviert. Standardmäßich ist 
ja LVP auch deaktiviert. Es gibt ja dann noch ein Register Interrupt on 
Change. Aber kann das Ärger machen ?
Die Konfigurationswörter sehen wie folgt aus :

CONFIG1L : $300000 : 0x0004

CONFIG1H : $300001 : 0x000B

CONFIG2L : $300002 : 0x00FE

CONFIG2H : $300003 : 0x00BF

CONFIG3L : $300004 : 0x007F

CONFIG3H : $300005 : 0x003F

CONFIG4L : $300006 : 0x009F

CONFIG4H : $300007 : 0x000F

CONFIG5L : $300008 : 0x0001

Register habe ich folgt beschrieben :

TRISA = 0xFF

TRISB = 0xFF         'alle Bits auf Eingang

TRISC = %00000000    ' 1 ist EIngang /0 = ist Ausgang

TRISD = %11110000

LATE =  %00000000

TRISE = %00000000

ANSELA = 0xFF

ANSELB = 0xFF

ANSELC = 0x00

ANSELD = 0x00

ANSELE = 0x00

CM1CON1 = 0x00

CM2CON1 = 0x00

INLVLA = 0x00  ' Spannungspegel auf TTL Input Level Control Register

INLVLB = 0x00

INLVLC = 0x00

INLVLD = 0x00

INLVLE = 0x00

WPUA = 0x00     'PullUp Widerstände aus bei 0

WPUB = 0x00

WPUC = 0x00

WPUD = 0x00

WPUE = 0x00

ODCONA = 0x00  ' OpenDrain Control Register

ODCONB = 0x00

ODCONC = 0x00

ODCOND = 0x00

ODCONE = 0x00

IOCEP = 0x00 ' Interrupt of Change abschalten

PIE0 = 0x00 ' Peripherie Interrupt abschalten

Das Programm verwendet auch den Watch Dog. Es ist daher denkbar, dass 
eine mir nicht ersichtliche Funktionsweise einer Steuerfunktion den 
Programmablauf stoppt.
Wie gesagt RE3 wird programmtechnisch nicht verwendet.
Ist RE3 = 0 läuft alles wie gewünscht.  Hat jemand einen Ansatz ?

Vielen Dank denen, die sich die Zeit genommen haben, bis hier her zu 
lesen ;)
Grüsse

PS: Bitte die vielen Leerzeilen entschuldigen, mir ist es nicht 
gelungen, die Auflistung übersichtlich zu gestalten. Ohne Leerzeile 
wurden die Aufzählung hintereinander geschrieben, das war sehr 
unübersichtlich....

von Erich (Gast)


Lesenswert?

Ohne Details zu lesen:
WATCHDOG muss evtl. de-aktiviert werden.
Gruss

von Peter K. (Firma: www.pic-microcontroller.de) (peter_k)


Lesenswert?

Wie ist denn MCLR PIN RE3 beschaltet ?

von Fred F. (aspus)


Lesenswert?

Erich schrieb:
> WATCHDOG muss evtl. de-aktiviert werden.
Mit deaktivierten WatchDog verhält sich die Geschichte leider genauso.
Habs gleich nochmal probiert. Allerdings brauch ich den WatchDog auch.
Trotzdem Danke.

von Fred F. (aspus)


Lesenswert?

Peter K. schrieb:
> Wie ist denn MCLR PIN RE3 beschaltet ?

Momentan mit 10k gegen Vss. Sonst läuft's ja nicht ....

: Bearbeitet durch User
von Teo (Gast)


Lesenswert?

LVP muss aus sein!

von Lagers (Gast)


Lesenswert?

Fred F. schrieb:
> Momentan mit 10k gegen Vss. Sonst läuft ja nicht ....

Ich habe irgendwie im Kopf, dass die MCLR-Pins mehr Strom ziehen als die 
anderen GPIOs als Input. Nimm mal 1k oder 2.k als Pullup. Es gibt zwar 
eine Empfehlung von Microchip für den Pullup für 10k, aber da ist noch 
ein weiterer R und ein C im Spiel, siehe Datenblatt Page 23

von Fred F. (aspus)


Lesenswert?

Teo schrieb:
> LVP muss aus sein!

Wie beschrieben, LVP sollte aus sein. Ist doch im Config4H auf Bit5 und 
ist dort genullt ... da Config4H auf 0F steht also 00001111, oder mach 
ich da was falsch ?

von Fred F. (aspus)


Lesenswert?

Lagers schrieb:
> Ich habe irgendwie im Kopf, dass die MCLR-Pins mehr Strom ziehen als die
> anderen GPIOs als Input. Nimm mal 1k oder 2.k als Pullup. Es gibt zwar
> eine Empfehlung von Microchip für den Pullup für 10k, aber da ist noch
> ein weiterer R und ein C im Spiel, siehe Datenblatt Page 23

Es ändert sich auch nichts, wenn Vss (GND) direkt am Pin liegt.
Wie gesagt, der Pin hat eigentölich noch keine Verwendung. Ziehe ich ihn 
hoch , hakelt es. Ist er Low läufts. MCLR ist sowieso aus und würde sich 
ja auch genau anders herum verhalten.

von Peter K. (Firma: www.pic-microcontroller.de) (peter_k)


Lesenswert?

Wenn der RE3 Pin als MCLR Pin in den Fuses gesetzt ist
dann muss RE3 auf Plus und nicht auf Minus.

von Fred F. (aspus)


Lesenswert?

Peter K. schrieb:
> Wenn der RE3 Pin als MCLR Pin in den Fuses gesetzt ist
> dann muss RE3 auf Plus und nicht auf Minus.

MCLR ist aus !!!

von Teo D. (teoderix)


Lesenswert?

Wenn du mit LV-Programmierst, wird das setzen auf 0 des LVPbits 
ignoriert!?

von Fred F. (aspus)


Lesenswert?

Teo D. schrieb:
> Wenn du mit LV-Programmierst, wird das setzen auf 0 des LVPbits
> ignoriert!?

Danke für den Hinweis, habe ich nochmal überprüft. PickIt3 und LVP ist 
nicht angehakt. Aber Danke für den Hinweis. Es ist zum verzweifeln....

von Fred F. (aspus)


Lesenswert?

Problem gelöst. Habe bewusst mal mit LVP programmiert und danach wieder 
mit Hochvolt. Nun funktioniert es, wie gewünscht. Vielleicht hing was, 
in der Programmierumgebung. Offensichtlich ist er wirklich mit LVP 
programmiert worden. Danke an alle und an Teoderix für die 
Initialisierung meiner Handlungen... ;) !! Allen einen schönen Tag und 
schönes Wochenende!

von Teo (Gast)


Lesenswert?

Man muss halt nur lange genug im Trüben stochern.... ;)

Dir auch noch nen schönen Restsommer.

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.