Hi Schoasch,
Im DAtenblatt steht ja, dass der gewählte Chip ja intern einen Oszillator für das USB Modul. Somit sollte es ja möglich sein, dass ich den PIC nur mit dem Uhrenquarz betreibe oder?
Ja, das ist möglich. Zu beachten ist allerdings, dass die Genauigkeit des 8MHz INTOSC nur ausreicht, um die Low-Speed-USB-Spec sicher zu erfüllen, siehe auch Datenblatt:
When the 8 MHz INTOSC is used with the 96 MHz PLL, it may be used to derive the USB module clock. The high accuracy of the INTOSC will allow the application to meet low-speed USB signal rate specifications.
Habe ich es Richtig verstanden, dass dann der Uhrenquarz an T1OSO und T1OSI anschliessen muss?
Genau.
Wie muss ich dann die Fuses setzen, damit das ganze so funktioniert, wie ich es will?
Mein Vorschlag:
PLLDIV = 2 // PLL-Prescaler: Divide by 2 (8 MHz oscillator input)
OSC = INTOSCPLL // INTOSC with PLL enabled (S/W control), port function on RA6 and RA7, INTOSCPLL used by USB
CPUDIV = OSC1 // No CPU system clock divide
T1DIG = ON // Secondary Oscillator clock source may be selected
IESO = OFF // Two-Speed Start-up disabled
außerdem würde ich nicht den Low-Power-Modus des Timer1-Oszillators verwenden, da es sonst Probleme mit einem inkompatiblen Quarz geben könnte:
LPT1OSC = OFF // Timer1 oscillator configured for higher power operation
Nach dem Reset wird der PIC mit dem 8 MHz-INTOSC hochfahren, die PLL aber nicht automatisch aktiv sein. Die CPU wird daher mit 8 MHz getaktet werden. Über die SCS-Bits im OSCCON-Register kannst Du dann vom INTOSC auf den Timer1-Quarz umschalten (SCS = 0x01) und somit den den SEC_RUN-Stromsparmodus wechseln. Wichtig ist allerdings, dass der Timer1-Oszillator zu diesem Zeitpunkt bereits läuft! Dazu musst Du das T1OSCEN-Bit im Timer1-Kontrollregister setzen und warten (ein paar Millisekunden), bis der Timer1-Oszillator eingeschwungen ist.
Wenn Du USB verwenden möchtest, musst Du nach dem Reset daran denken die PLL zu aktivieren, damit das USB-Modul (und die CPU) die nötigen 48 MHz erhalten. Dazu das PLLEN-Bit im OSCTUNE-Register setzen und ein paar Millisekunden warten, bevor du das USB-Modul aktivierst.
Anbei habe findet ihr den Schaltplan.
Ich habe mir den bislang nur oberflächlich angeschaut, vermisse aber die Abblockkondensatoren am PIC. Zudem wird bei den TSOP1138 ein größerer Kondensator zur Versorgungsspannungsfilterung empfohlen, 4,7 µF meines Wissens nach.
Schlimmer ist allerdings, dass der TSOP1138 auf 5V ausgelegt ist und mit den 3V wahrscheinlich keine brauchbaren Ergebnisse liefern wird. Geeigneter wäre hier ein TSOP348xx.
Gruß
Daniel