PIC18F2455 USB Taktversorgung
Mittwoch, 23. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  PIC Mikrocontroller Allgemein  |  PIC18F2455 USB Taktversorgung « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: PIC18F2455 USB Taktversorgung  (Gelesen 984 mal)
 
Michael Lehrmann
Newbie
*
Offline Offline

Beiträge: 13


Profil anzeigen
« am: August 23, 2011, 14:22:16 »

Hallo,

ich hätte ein paar Fragen zur Taktversorgung bei USB (PIC18F2455). Ich arbeite mich da gerade ein wenig ein.

Zuerst mal meine Anforderungen:
- möglichst viel Rechenleistung (16bit Software PWM 9 Kanal) und parallel dazu USB
- nur ein primärer Oszillator

Nun möchte ich zusammenfassen was ich soweit weiß:

- Ich kann entweder einen 6MHz Clock (Low-Speed USB) oder einen 48MHz Clock (Full-Speed USB) für USB verwenden.

Nachdem ich möglichst viel Rechenleistung wegen der SoftwarePWM benötige wähle ich also 48 MHz Full-Speed USB. Das steht mal fest, gerade auch weil USB viel Daten schaufeln soll. Aus dieser Sicht sehr gut. Auf Stromsparen kommt es definitv nicht an.

- Im Datenblatt http://ww1.microchip.com/downloads/en/devicedoc/39632b.pdf ab Seite 31 ist die Tabelle 3-2 zu sehen. Verstehe ich es richtig, dass in der ganz linken Spalte ("Input Oscillator Frequency") der Input (ergo externe Beschaltung des PICs z.B. 48MHz Quarz ohne PLL, etc) genannt ist. Dann folgen die SFR-Settings für den entsprechenden interenen Takt (ganz rechte Spalte "Microcontroller Clock Frequency") der dem PIC zu verfügung steht?

- Ich möchte einen ext. Quarz verwenden. Nur als Beispiel (Datenblatt Seite 32 letzt Zeile der Tabelle) - könnte ich einen 4 MHz Quarz verwenden, PLL Division ÷1 (PLLDIV2:PLLDIV0 = 000), Clock Mode HSPLL, MCU Clock Division ÷2 (CPUDIV1:CPUDIV0 = 00) und hätte einen Betriebstakt von 48 MHz? Das wäre auch das Maximum was ich aus dem PIC rausholen kann. Also ich bekomme aus einem 4 MHz Quarz einen Arbeitstakt von 48 MHz ?!

- Welchen Quarz soll ich wählen? Was ist idealer? Einen 48MHz Quarz direkt oder ein 4 MHz mittels PLL gepusht?


Vielen Dank
Gespeichert
Edson
Globaler Moderator
Sr. Member
*****
Offline Offline

Beiträge: 373



Profil anzeigen
« Antworten #1 am: August 23, 2011, 15:22:45 »

- Ich kann entweder einen 6MHz Clock (Low-Speed USB) oder einen 48MHz Clock (Full-Speed USB) für USB verwenden.


Genau

Zitat
- Im Datenblatt http://ww1.microchip.com/downloads/en/devicedoc/39632b.pdf ab Seite 31 ist die Tabelle 3-2 zu sehen.

Tabelle 2-3 meinst du vermutlich.

Zitat
Verstehe ich es richtig, dass in der ganz linken Spalte ("Input Oscillator Frequency") der Input (ergo externe Beschaltung des PICs z.B. 48MHz Quarz ohne PLL, etc) genannt ist. Dann folgen die SFR-Settings für den entsprechenden interenen Takt (ganz rechte Spalte "Microcontroller Clock Frequency") der dem PIC zu verfügung steht?

Nicht ganz. Die linke Spalte bezieht sich nur auf die Frequenz, die nächste Spalte zeigt die Einstellungen für das PLLDIV-Register. Welche Technologie (Quarzoszillator, Resonator, RC, etc.)als Taktquelle dient und ob PLL nachgeschalten wird oder nicht geht aus der dritten Spalte (Clock Mode) hervor.

Zitat
- Ich möchte einen ext. Quarz verwenden. Nur als Beispiel (Datenblatt Seite 32 letzt Zeile der Tabelle) - könnte ich einen 4 MHz Quarz verwenden, PLL Division ÷1 (PLLDIV2:PLLDIV0 = 000), Clock Mode HSPLL, MCU Clock Division ÷2 (CPUDIV1:CPUDIV0 = 00) und hätte einen Betriebstakt von 48 MHz? Das wäre auch das Maximum was ich aus dem PIC rausholen kann. Also ich bekomme aus einem 4 MHz Quarz einen Arbeitstakt von 48 MHz ?!


Auf PDF-Seite 24 im Datenblatt kannst du sehen, dass die interne PLL immer 4MHz am Eingang sehen möchte. Die Antwort ist also ja.


Zitat
- Welchen Quarz soll ich wählen? Was ist idealer? Einen 48MHz Quarz direkt oder ein 4 MHz mittels PLL gepusht?


Einen 48MHz Quarz sowieso nicht. Entweder einen Oszillator (EC) oder max.24MHz Quarz. Microchip verwendet 12MHz bei manchen Boards.



Grüße,
Edson
Gespeichert
Stephan
Jr. Member
**
Offline Offline

Beiträge: 88


Profil anzeigen
« Antworten #2 am: August 23, 2011, 15:24:51 »

nimm einen Quarz mit 12 oder 16 MHz Grundton (leicht zu kriegen), teile auf 4 MHz runter und schalte die PLL ein
Gespeichert
Michael Lehrmann
Newbie
*
Offline Offline

Beiträge: 13


Profil anzeigen
« Antworten #3 am: August 23, 2011, 16:49:59 »

Hallo,

vielen Dank für die professionelle Hilfe  Lächelnd
Dann wähle ich:
- 12 MHz Qarz mit 2x22pF nach GND
- PLL Divider ÷3 (PLLDIV2:PLLDIV0 = 010)   12MHz/3 = 4MHz für PLL OK!
- In den Configbits wähle HSPLL
- Die PLL macht daraus 96MHz
- mittels "MCU Clock Division" ÷2 (CPUDIV1:CPUDIV0 = 00) macht aus 96MHz die 48MHz für USB + MCU Takt

Also ich wähle HSPLL als Clock in den Conifbits oder? Das bewirkt, dass die PLL überhaupts aktiviert wird?


Vielen Dank für eure Antworten.
Gespeichert
Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #4 am: August 24, 2011, 01:30:47 »

Hi,

Zitat
- 12 MHz Qarz mit 2x22pF nach GND
Ja, oder jeden anderen Grundtonqaurz (Vielfaches von 4, also 4, 8, 12, 16, 20MHz) den du dann auf 4MHz runterteilst.

Zitat
Also ich wähle HSPLL als Clock in den Conifbits oder? Das bewirkt, dass die PLL überhaupts aktiviert wird?
Ja, bei manchen neueren PICs (ich meine der 4550 gehoert nicht dazu), muss die PLL nochmal in einem der OSCON Register aktiviert werden.

Gruss
Stefan
Gespeichert

Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.046 Sekunden mit 17 Zugriffen.
 
Top! Top!