Ich versuche, den 4-Bit breiten PORTE auf einer PIC18F44K22-MCU zu verwenden. Dieser Port enthält den RE3/MCLR-Pin, der als Reset-Pin oder als Eingangspin konfiguriert werden kann, indem das MCLRE-Bit auf CONFIG3H gesetzt/gelöscht wird.
Unabhängig davon, welcher Wert auf dem MCLRE-Bit gesetzt ist, weigert sich die MCU, einen Befehl auszuführen, wenn der RE3/MCLR-Pin auf LOW gehalten wird. Wenn Sie den RB3 / MCLR-Pin einrichten, funktioniert die MCU wie erwartet (mit einem Eingangspin weniger).
Dies wurde mit einem Pickit 2-Programmierer und einem Multimeter getestet, wobei die MCU mit dem Programmierer selbst mit Strom versorgt wurde. Power-Pins auf der MCU sind mit 1pF-Kondensatoren und einem zusätzlichen 22uF-Kondensator am Board-Stromeingang entkoppelt.
BOR ist deaktiviert und das geladene Programm ist so einfach wie möglich (RB3 UP setzen). Getestet mit 5V und 3,2V
Ich habe gelesen, dass ESD gelegentlich Resets auslöst, aber in diesem Fall ist es ein niedriger Wert , der das Gerät auf Reset hält .
Lösung:
Damit MCLRE wirksam wird, muss das LVP-Bit deaktiviert werden. Im gpasm:
CONFIG MCLRE = INTMCLR
CONFIG LVP = OFF
Wenn Sie "Single-Supply ICSP Programming" in Ihren Konfigurationsbits (CONFIG4L.LVP) nicht deaktiviert haben, würde dies das beobachtete Verhalten erklären.
Abschnitt 24.9 des Datenblatts lautet: „Im Low-Voltage-ICSP-Modus ist MCLR immer aktiviert, unabhängig vom MCLRE-Bit, und der RE3-Pin kann nicht mehr als Allzweckeingang verwendet werden.“
Das riecht so, als würden Ihre Konfigurationsbiteinstellungen nicht wirklich in den Chip gelangen. Einige mögliche Gründe dafür:
Verwenden Sie die Konfigurationsbits-GUI in MPLAB, um zu sehen, wie die Konfigurationsbits gesetzt sind. Oder noch besser, programmieren Sie das Teil und überprüfen Sie dann die tatsächlichen Konfigurationsbits im Chip mit dem Debugger, um zu sehen, wie sie tatsächlich gesetzt sind.
Spehro Pefhany
aja
brhans