Messen der Taktfrequenz

Begonnen von Herbert, 11.04.2022, 10:40:41 CEST

⏪ vorheriges - nächstes ⏩

Herbert

Hallo,
ich wollte die Taktfrequenz am PIC 18F25K22 und 18F45K22
mit Oszilloskop messen, laut User Guide müsste
an den genannten PIC dieses an den Port RA6 oder RA7 was Anschlußpin
9 und 10 ist zu messen sein. Es wird der Interne Oszillator im 2 und 4 MHz Berereich
verwendet. Der Aufbau der Hard und Software läuft wie gedacht. Das würde ja ohne Tackt nicht laufen.
Bei einem 16F877A mit Quartz zb 8MHz Takt kann ich am Quartz
eindeutig die Schwingungen messen.
 

Herbert

Noch was zu meinem Post
ich kann an den genannten Pins RA6 RA7 nichts messen, was mach ich
Falsch?

Peter

Hallo
Verstehe jetzt nicht deine Frage. Du schliesst einen Quarz an und misst
die Frequenz des Quarzes. Ist ja auch richtig. Du schliesst keinen Quarz an und
misst nichts. Ist ja auch richtig. An den Ports wird halt ein Quarz angeschlossen.
Und wenn du auf internen Quarz stellst brauchst du keinen externen Quarz.
Warum sollte nun auf dem Ports wo der Quarz hin gehört eine Frequenz zu messen sein ?
Um welchen Pic geht es eigentlich ?
Vielleicht mal beschreiben was du machen willst. Ausgabe kann man mit dem PWM Modul des
Pics machen. Das wäre zum Beispiel eine Lösung.

Herbert

Hallo,
meine Frage an den PIC 18F25K22 und 18F45K22 kann ich die Taktfrequenz
nicht messen obwohl die Schaltungen mit den 18F.... Hard und Software
funktionieren. Bei den 18F.... benutze ich die Internen Oszillatoren.
Ohne Taktfrequenz würden die Schaltungen ja nicht funktionieren.


Das mit dem Quartz an dem PIC 16F877A habe ich hier nur mit reingebracht
um zu Zeigen das ich in der Lage bin die Frequenz zu messen.

Danke euch

Peter

Aha jetzt verstehe ich.
Hast du denn die Fuse Bit so eingestellt das der Takt
an OSC2 raus kommt ?
 

Herbert

Oh ich wußte gar nicht wenn man den Internen Oszillator
configuriert das man dann auch bestimmen kann  das das
Singnal an OSC 2 rauskommt.
Da muß ich mal sehen oder versuchen wie das geht und wie man
das macht.
Danke

Peter

Meisstens kann man die Fuses im Compiler direkt setzten.
Kommt auf den Compiler an. Bei mir sieht das dann
so aus:


Herbert

Danke  ich benutze den XC8 Compiler die Free version, und vers. 2.30
Ich dachte das muß man am Anfang des Programms deklarieren.
und dann in der main Aufrufen.
Irgendwie weis ich nicht so recht wo ich ansetzen soll.


picass

#8
Du könntest doch den internen Takt deines µCs ohne Vor- oder sonstige Teiler durchreichen lassen auf einen Port. Im Programm richtest du eine Schleife aus vielen "nop's" ein, was mit der Kopierfunktion ja keine Mühe ist. Zwecks der Motivation wird am Ende der Schleife eine LED getoggelt - das kommt immer gut, und schon kannst du dem PIC bei seiner taktvollen Arbeit zusehen. Is klar: der "echte" Takt geteilt durch 4!
Grüße, picass

vloki

Zitat von: Peter am 11.04.2022, 19:49:28 CESTMeisstens kann man die Fuses im Compiler direkt setzten.
Kommt auf den Compiler an.
In der MPLABX IDE macht man das über einen Dialog den man z.B. über das Menü

Production -> Set Configuration Bits aufruft

Gleich in der Obersten Zeile des Dialogs wählst du unter Option aus:

INTIO7  (Internal oscillator block, CLKOUT function on OSC2)

Dann klickst du unten auf den Button Generate Source Code...., kopierst den und fügst ihn in eine Source Code Datei ein.
Alternativ kann man auch auf das unterste Symbol Insert Source Code.... an der linken Seite klicken.
MPLABX  XC8  KiCAD

Herbert

Danke für eure Hilfe.

Es Handelt sich um ein fertiges C  Programm für das 44 Pin Demo Board mit PIC 18F45K22  Programm hier im Anhang.

Mit diesem fertigen Programm habe ich Versuchsweise änderungen zum besseren Verständnis vorgenommen, und weil dann bei den Versuchen

Probleme auftraten ob wohl sich meine änderungen Compelieren ließen,
aber Trotzdem auf der Hardware nicht liefen, wollte ich zur Fehlersuche als erstes sehen ob der Takt Oszillator schwingt.Ungültige Dateianhangs-ID.

Wenn ich unter Set Config bits dieses 

INTIO7  (Internal oscillator block, CLKOUT function on OSC2

aufrufe und dann auf Generate Source Code klicke.
Dann wird ja alles was da steht Generiert. Wenn ich dann die genannte
Zeile, markiere und dann in die main Einfüge lässt sich das nicht Compelieren.
Muß man noch was in den OSCON bits ändern ?

Oder muß man für das Programm nochmals die Gesamten Config neu
Einstellen. Und diese dann in die main Einfügen.

Ich bitte um Verständnis zu meinen Fragen und Erklärungen weil diese
für euch Profis wohl  Unverständlich usw. ankommen.

Wenn möglich und die Zeit es zuläßt bitte eine Stück für Stück Anleitung
wie ich wo und wie und was Anklicken muß um mein Ziel zu erreichen.

Ja Volker in deinem Skript steht es ja auch zu Oszillatoren  wie setzen
und mehr. Aber trotzdem  Haut das bei mir nicht hin warum auch immer.

Danke euch für die Hilfe

Herbert_45.zip

vloki

#11
Hat es sich denn vor dem Ergänzen der Zeile compileren lassen?

Warum nur die eine Zeile? (IMMER ALLE Bits spezifizieren)

Was für eine Fehlermeldung kam?

Bei mir kam zuerst auch eine Meldung beim Öffnen deines Projektes (Fenster Configuration loading Error)

------------------------------------------------------------------------------------------------------
Error occurred on opening project: Herbert_45

+ Configuration "default" load error: PIC18F-K_DFP 1.1.58 is used in the configuration and it is not installed
Resolution: Click on the below link to resolve the same version of DFP
Resolve DFP for configuration: default
------------------------------------------------------------------------------------------------------

und dann auch noch eine entsprechende Meldung beim Versuch das Projekt zu compilieren (Fenster Clean, Build...).

Die ging aber weg, nachdem ich in in den Project Properties vorhandene  PIC18F-K_DFP und Compiler Versionen ausgewählt habe.
MPLABX  XC8  KiCAD

Herbert

Hallo Volker,
ja es hat sich das Original wie im ZIP Anhang aufgeführt Compelieren
lassen aber auch nur mit den Compiler versionen unter 2.0
ich habe es mit XC 8 vers.1.34 u. MPLAB X IDE vers. 5.45 Compeliert.
Und es funktioniert Hard u. Software mäßig.

Dann habe ich nochmal alles gemacht wie du es mir im Vorrigen Post
erklärt hast.

Und zwar habe ich die erste Zeile #Pragma Config FOSC = INTI067
entfernt und mit der Zeile #Pragma Config FOSC = INTI07 ersetzt
und siehe da an CLKOUT  OSC2   Anschlußpin 31 die Taktfrequenz messen.
Warum das zuvor alles nicht geklappt ist mir ein Rätzel. Ich
vermute das es an der XC8 Compeler version lag.

Das Programm für ADC hatte ich damals von dir bekommen für das 44Pin Demo Board. Da waren ja die nötigen Configs schon dabei deshalb habe ich
nur nach der Generate die 1. Zeile im Prog. Ersetzt.

Noch eine Frage zu den XC 8 Compiler ich habe die Compiler versionen. 1.34, 1.45 , 2.30 und 2.31 MPLABX IDE auf meinem Rechner Installiert.
in MPLAB X kann ich aber nur die vers. 2.30 und 2.31 aufrufen und die anderen beiden sind Gegraut und lassen sich nicht aufrufen. Es war mal so das man alle  Installierten Compiler aufrufen konnte. Das ist bei Versuchen Nervig weil man um an die Ausgegrauten Compiler zu kommen immer Neues Projekt Anlegen muß. Gibt es da lösungen oder Einstellungen das man
die Compiler vers. ändern kann?


Frage 2 zu den Configs. im Menü Generate sind ja soviele Aufgeführt muß
man die Configs die man nicht braucht immer Aus schalten.

Ich habe schon Programme gesehen wo viele Configs aufgeführt sind.
wie Config.1  Config 2...... und so weiter.
 

Danke für die Hilfe


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:
Verifizierung:
Bitte lassen Sie dieses Feld leer:
Geben Sie die Buchstaben aus dem Bild ein
Buchstaben anhören / Neues Bild laden

Geben Sie die Buchstaben aus dem Bild ein:

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