Oszillator Fragen

Begonnen von picass, 14.03.2023, 17:42:07 CET

Vorheriges Thema - Nächstes Thema

picass

Bei den Config-Words des PIC18F14K22 taucht u.a. das ,,Primary Clock Enable bit"  auf unter der Abkürzung PCLKEN.  Bei diesem ,,Word" habe ich Info-Bedarf.

Mit ,,Primary Clock" müsste der primäre externe Oszillator (es gibt noch einen secundären solchen) gemeint sein. Richtig?
Aktuell benutze ich in allen meinen Schaltungen den ,,LFINTOSZ", also den internen Oszillator mit 31 kHz. So wie ich das im Moment sehe, hat die o.g. PCLKEN-Abfrage auf den internen Oszi keinerlei Bedeutung, will sagen, es ist egal, ob PCLKEN auf ,,1" oder ,,0" gesetzt wird.

Dann ist mir ein Widerspruch aufgefallen. Im Datenblatt steht:
- to enable software control of the Primary External Oscillator, the PCLKEN bit of the CONFIG1H Configuration register must be set.
Für mein ,,Garagentor"-Projekt hatte ich zuletzt für die Erstellung der Config-Wörter das in der MPLAB X IDE vorgesehene Tool benutzt. Danach lautet der entsprechende Ausschnitt:
- CONFIG PCLKEN = OFF    ; Primary Clock Enable bit (Primary clock ist under software control)

Also genau entgegen gesetzte Aussage. Was geht ab?
Grüße, picass

vloki

Das scheint in der Beschreibung im Kapitel 2 falsch zu sein.
In 22.1 Configuration Bits steht:

CONFIG1H Configuration register
bit 5 PCLKEN: Primary Clock Enable bit
      1 = Primary Clock enabled
      0 = Primary Clock is under software control

(In Figure 2-1 kann man es auch an der ODER-Verknüpfung erkennen)
MPLABX  XC8  KiCAD

picass

So wirds sein. Im Databook stimmt nicht wirklich alles. So ist im Kapitel "Ports" beschrieben, dass mit einer "1" und dem Beschreiben von z.B. "TRISA" der entsprechende Port-Pin als Eingang bestimmt wird. Für das Initialisieren gibt es dann auch ein "nettes" Beispiel unter Example 8-1.
Dort sollen mit: movlw 30h und movwf TRISA angeblich die Pinne 4 und 5 als outputs gesetzt werden! >:D  Was allerdings mit der generellen Beschreibung unter 8.1 nicht wirklich übereinstimmt! :o

Mit dem Gefummel um die Config-Words muss ich mich noch mal befassen, aktuell ist es nur ein optische Störung, aber das in jedem Ausdruck meiner Programmentwürfe eine DIN-A4-Seite nur mit diesem Gefummel befüllt wird, geht mir auf die Nerven.
Grüße, picass

vloki

Zitat von: picass in 15.03.2023, 10:11:48 CETaber das in jedem Ausdruck meiner Programmentwürfe eine DIN-A4-Seite nur mit diesem Gefummel befüllt wird, geht mir auf die Nerven.

Ich mache das "Gefummel" immer in eine eigene Datei,
die ich unter Umständen dann auch noch in mehreren Projekten verwende  ;-)
MPLABX  XC8  KiCAD

picass

Gestern kam mir beim Rumschnüffeln im Datenblatt im Kapitel über die Config Words (CW) noch ein anderer Gedanke. Da fiel mir auf - erst gestern (!) :-* - , dass es auch für diese CW's beim Start eines Progs Default-Werte gibt. Also könnte/müsste es reichen, wenn man nur für Abweichungen die geänderten Werte postet. Dazu wäre dann ggf. wieder die verkürzte Schreibweise geeignet, die ich bis dato mal in meinen Progs hatte.
Die aktuell nicht-verkürzte Schreibweise bedeutet halt, das schon angesprochene Hilfs-Tool in der MPLAB-IDE zum "geführten" Erstellen der CW's zu nutzen und dessen Ergebnis dann bequemerweise zu kopieren, rsp. komplett ins Prog zu übernehmen - was dann aber eben zur DIN-A-4-Füllung führt. Probiere das mit den Default-Werte mal aus.

Es ist doch - zumindest für mich - immer wieder aufs Neue eine Quelle von Neuem, dieses verdammt lange Datenblatt! ;)
Nur als Randnotiz: Das Kapitel über die CW's steht bei meinem Datenblatt unter 23. Vielleicht nutzen wir verschiedene Versionen des DB's.
Grüße, picass

picass

Würde gerne die letzte Ungewissheit ausräumen, wie lang die benötigte Zeit fürs Aufwachen aus dem Sleep-Modus ist. Dazu steht im Datenblatt für den PIC18F14K22, Auszug DB:

,,
2.8 Oscillator Start-up Timer

The Primary External Oscillator, when configured for LP, XT or HS modes, incorporates an Oscillator Start-up Timer (OST). The OST ensures that the oscillator starts and provides a stable clock to the oscillator module.
The OST times out when 1024 oscillations on OSC1 have occurred.
During the OST period, with the system clock set to the Primary External Oscillator, the program
counter does not increment suspending program execution. The OST period will occur following:
• Power-on Reset (POR)
• Brown-out Reset (BOR)
• Wake-up from Sleep
• Oscillator being enabled
• Expiration of Power-up Timer (PWRT) ,,

War bislang immer vom Befehlstakt ausgegangen, also µC-Takt geteilt durch vier. Aber richtig scheint zu sein, dass z.B. bei Verwendung eines externen Taktes mit Quarz just dessen Schwingungen am Takteingang zählen und nicht der intern durch vier geteilte. Habe ich das so richtig verstanden?
Grüße, picass

PICkel

Zitat von: picass in 01.04.2023, 10:47:29 CESTAber richtig scheint zu sein, dass z.B. bei Verwendung eines externen Taktes mit Quarz just dessen Schwingungen am Takteingang zählen und nicht der intern durch vier geteilte. Habe ich das so richtig verstanden?

So sieht's wohl aus, das sehe ich genauso!

Das Dabla bezieht sich ja nur auf OSC1. Und der ist nur bei ext. Quarz bzw. Resonator aktiv. Zum OST steht da auch:
The Primary External Oscillator, when configured for LP, XT or HS modes, incorporates an Oscillator Start-up Timer (OST).

Bei HFINTOSC/LFINTOSC ist der OSC1-Pin ein normaler I/O-Anschluss.
Beim INTOSC kann zwar (je nach CONFIG-Word) der Befehlstakt an OSC2 ausgegeben werden, aber im Dabla ist beim Startup-Timer nur von OSC1 die Rede.

Gruß
PICkel


PICkel

Nachtrag, da mir die Schnellbearbeitung kein Speichern anbot:

Wenn's ganz schnell gehen soll:
2-Sped-Startup aktivieren, siehe P18F14K22-Dabla Punkt 2.11. Dann startet der PIC sofort mit dem internen Takt und schaltet nach Ablauf des OST auf extern um.

MfG

picass

Nein, besonders eilig ist da nichts. Die eintausendvierundzwanzig "Einschwinger" bedeuten bei dem 10,24 MHz-Quarz eine einzige Milli-Sekunde. Runtergebrochen auf genau den angedachten Einsatzzweck - zum Empfangen von IR-Signalen und letztlich dem Steuern eines Garagentores - stört das nicht.

Die Millisekunde spielt allerdings doch wieder eine Rolle, wenn es darum geht, das Protokoll anzufertigen. Da sind Sende - u. Empfangs-Signale schon zu koordinieren.
Grüße, picass

PICkel

Zitat von: picass in 02.04.2023, 09:46:55 CESTDie eintausendvierundzwanzig "Einschwinger" bedeuten bei dem 10,24 MHz-Quarz eine einzige Milli-Sekunde.

Genaugenommen sogar nur 0,1ms, wenn ich mich nicht verrechnet habe.
Mach's doch wie viele Fernbedienungen: Erst ein "langes" Startsignal senden. Das ist bei vielen FB 4,5 oder 9ms lang. Das dient u.a. dem Anpassen der automatischen Verstärkungsregelung (AGC) im TSOP und der uC kann in aller Ruhe erwachen.
Nach der nachfolgenden Pause, bei vielen FB 4,5ms lang,  kommen die eigentlichen Datenbits.

MfG
PICkel 

^Cobra

Ich lese mir das durch und denke, kann ich (mal wieder) nicht rechnen?
Eine Schwingung ist doch bei 10,24mhz
1/10240000 =0,00000009765625s

Das in sind doch dann 0,00009765ms und somit 0,09765us.

Was habe ich übersehen, nicht verstanden? 

PICkel

Passt schon:

Überschlagsrechnung mit glatt 10MHz (nicht mHz= Millihertz!):
1 MHz:  1us/Schwingung
10 MHz: 0,1us/Schwingung

OST zählt 1024 Schwingungen ab: 0,1 us*1024 = 102,4us = ca. 0,1ms

Gruß
PICkel

^Cobra


Schnellantwort

Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.

Name:
Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

Similar topics (1)