SPI Clock verwenden

OP #2051519
Hi,

ich möchte an einem PIC24HJ128GP502 gerne an einem PIN einen Takt von 
8MHz erzeugen. Eigentlich sollte dies doch relativ einfach mit dem 
Serial Clock Pin des SPI-Moduls funktionieren, oder nicht?
Leider zeigt das Oszilloskop dass eben kein Takt am Pin anliegt.
Ist es möglich SCK zu verwenden ohne dass eine Kommunikation über SPI 
stattfindet und eben nur der PIN die ganze Zeit toggled?

Viele Grüße,
Mirco
Mirco H. schrieb:
> Eigentlich sollte dies doch relativ einfach mit dem
> Serial Clock Pin des SPI-Moduls funktionieren, oder nicht?
> Leider zeigt das Oszilloskop dass eben kein Takt am Pin anliegt.

Natürlich muss man dafür die SPI-Kommunikation verwenden - ansonsten ist 
das ja ein ganz normaler I/O ...

Die entscheidende Frage ist, was für eine Taktversorgung du verwendest - 
je nachdem kann man auch 8 MHz erreichen ...
Gast
Christian L. schrieb:
> das
> einfachste wäre, einen Timer zu verwenden, der einen Pin regelmäßig
> Toggelt.

Ja, da muss ich zustimmen! Für diesen Fall ist ein Timer die richtige 
Wahl. Je nach dem, wie genau der Takt sein muss, ist es nötig den Timer 
manuell zu resetten. Die Interrupt-Routine ist der richtige Ort für den 
nötigen Code.
Das CCP Modul im PWM Modus ist dafuer das richtige, da braucht man 
keinen Interrupt fuer. Das SPI Modul ist dafuer denkbar unguenstig, da 
alle IOs blockiert werden und der Takt nur bei Zugriff auf den Slave 
anliegt. Die Timer/Interruptvariante braucht fuer die Aufgabe zu viel 
sinn;os vergeudete Rechenzeit.
OP
Danke für die Antworten.

Ich habe es jetzt mit PWM versucht.
FOSC darf laut Datenblatt maximal 80MHz betragen - und FCY somit 40MHz.
Ich benötige am Pin einen Takt von 8Mhz, was dann hier 5 Zählschritten 
des Timers bei prescaler 1 entspricht.
Weil ich gerne einen Takt mit gleichmäßigem Puls-Pausen-Verhältnis 
hätte, habe ich FCY bei 32MHz, Periodendauer bei 4 (PR2 = 4;) und OC1R 
bei 2 ... am Oszi beträgt der Takt allerdings nur ungefähr 1MHz..

Ist 8 MHz überhaupt realisierbar?

Grüße,
Mirco
Mirco H. schrieb:
> Ist 8 MHz überhaupt realisierbar?
ja natürlich

Lehrmann Michael schrieb:
> Die entscheidende Frage ist, was für eine Taktversorgung du verwendest -
> je nachdem kann man auch 8 MHz erreichen ...

Eigentlich laber ich hier nicht damit man keine weiter Auskunft erteilt 
...
Einfachste Möglichkeit: Quarzoszillator 8 MHz (!) - nicht nur Quarz an 
OSC1 (CKI) - Der Takt liegt dann an OSC2 (CKO) an ...
Ansonsten Pin Toggeln - entsprechend höherer Betriebstakt ...
OP
Sorry, ich verwende einen 4MHz Quarz mit PLL.
Ist nicht unabhängig vom verwendeten Quarz die maximale Frequenz FCY 
40MHz und damit die Anzahl der nötigen Zählschritte des Timers für die 
Periode nur 5? Das hieße ja, dass ich den Pin theoretisch alle 2,5 
Schritte toggeln lassen müsste?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.