Hallo, ich sitze schon eine ganze Weile an einem Problem. Ich nutze den PIC24F16KM202 im SPDIP-28 Gehäuse (https://ww1.microchip.com/downloads/en/DeviceDoc/PIC24FV16KM204-Family-Data-Sheet-DS30003030C.pdf) und wollte an den Anschlüssen RA4 und RB4 zwei Relais betreiben. Diese ließen sich aber nicht schalten. Daher habe ich eine kleine Testschaltung zusammen gebaut (neuer PIC) und daran getestet. Auch dort ließen sich die LED nicht einschalten. Das Programm liegt in der ZIP-Datei und ist aus MPLAB X. Der Code selbst ist auch noch extra mit bei. Die Pins sind auch für den Secondary Oscillator, der ist aber deaktiviert, genauso wie die Zuordnung zum UART2. Damit sollten die Pin als normale IO nutzbar sein. Pull-Up, Pull-Down, Open-Drain und Analoge Funktion sind auch deaktiviert. Der PIC läuft mit dem intern Takt auf 8 MHz an den anderen Pins funktionieren die LED. Übersehe ich da noch irgendeine Funktion die mir die Pins blockieren? Ich hoffe ihr habt noch eine Idee sonst muss ich die Leiterplatte ändern, diese Arbeit würde ich mir gerne ersparen. Silvio
Servus hast du schon al mit dem oszi gemessen, ob die PINs auf high gehen? Es ist dir schon klar, dass wenn der uC nur mit 3,3 Volt läuft, dass dann da auch nicht mehr als 3,3 Volt rauskommen. Zieh mal die Durchlassspanung der LEDs an und bezieh den Widerstand mit ein, dann siehst du was da an Strom übrigbleibt. (sagen wir mal 1,8 Volt für die Led, 3.3-1.8 = 1.5; 1.5/680 = 2.2mA), also 68 Ohm wären besser als 680. Gruß Gerhard
:
Bearbeitet durch User
Hallo, die Sache mit den 3,3V und dem geringen LED-Strom sind mir schon bewusst. An den anderen Pins leuchtet die LED ja auch gut sichtbar. Silvio
Und ohne die Last/LED lassen sich die PINs auch nicht auf high bewegen? Also mit Oszi oder Messgerät geprüft? Gruß
Und lies mal da: https://www.microchip.com/forums/m906778.aspx Hab jetzt nicht im Datenblatt nachgelesen bs bei deinem auch so ist.
Nein auch mit dem DMM in der Testschaltung keine Spannung messbar. In der originalen Schaltung gestern auch mit dem Oszi getestet. Laut Datenblatt sind RA4 und RB4 I/O mit Schmitt-Trigger. Auch die Register LAT, PORT, ODC und TRIS sind für Bit 4 jeweils in der Tabelle zu finden. Ich denke da blockiert noch irgendeine Peripherie die Pins. Silvio
:
Bearbeitet durch User
Funktionen SOSCI/AN15/U2RTS/U2BCLK/CN1/RB4 SOSCO/SCLKI/AN16/PWRLCLK/U2CTS/CN0/RA4 Wenn dann müsste das da ja irgendwo dabei sein. Also Oszillator, UART?
:
Bearbeitet durch User
#pragma config SOSCSRC = ANA //SOSC Source Type->Analog Mode for use with crystal Das ist ganz sicher falsch. Damit werden die beiden Pins als Quarzoszillator konfiguriert. fchk
Du gehst vom falschen Gehäuse aus, ich nutze den 28-poligen SPDIP. Dort sind es die Pins 11 SOSCI/AN15/U2RTS/U2BCLK/CN1/RB4 12 SOSCO/SCLKI/AN16/PWRLCLK/U2CTS/CN0/RA4 Secondary Oscillator sollte deaktiviert sein //COSC -> Read only 0b 000 ; //NOSC -> FRC 0b 000 ; //CLKLOCK -> disabled 0b 0 ; //LOCK -> Read only 0b 0 ; //CF -> Read only 0b 0 ; //SOSCDRV -> Config Bit 0b 0 ; //SOSCEN -> disabled 0b 0 ; //OSWEN -> Switch complete 0b 0; //Resultat 0b0000000000000000; __builtin_write_OSCCONH((uint8_t) (0x00)); __builtin_write_OSCCONL((uint8_t) (0x00)); Analog-Funktion ist deanktiviert TRISA = 0x0000; //Alle Pins auf Ausgang TRISB = 0x0000; UART2 ist deaktiviert U2MODEbits.UARTEN = 0; //UART2 disabled U2MODEbits.UEN1 = 0; //UART2-Pins nur RX und TX am UART, CTS, RTS und BCLK als IO U2MODEbits.UEN0 = 0; U2STAbits.UTXEN = 0; //Transmit disabled RTCC habe ich gerade noch hinzugefügt, hift auch nicht RCFGCALbits.RTCEN = 0; //RTCC disabled RCFGCALbits.RTCOE = 0; //RTCC Out disabled Silvio
Frank K. schrieb: > #pragma config SOSCSRC = ANA //SOSC Source Type->Analog Mode for use > with crystal > > Das ist ganz sicher falsch. Damit werden die beiden Pins als > Quarzoszillator konfiguriert. > > fchk Das war der entscheidene Hinweis. Aufgrund der Beschreibung im Kommentar der Funktion #pragma config SOSCSRC = DIG // SOSC Source Type (Digital Mode for use with external source) bin ich davon ausgegangen dass ein Deaktivieren des Secondary Oscillator die Pins komplett vom Oszillator trennt und ich mit dieser Funktion nur zwischen analogem (für Quarz) und digitalem (für externen Clock) Eingang umschalte. Dazu ist leider im Datenblatt des µC als auch im zusätzlichen Datenblatt über den Oszillator für die ganze Familie nichts zu finden. Trotzdem Vielen Dank an alle die geholfen haben. Silvio
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.