mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Clock verwenden


Autor: Mirco H. (mirq)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ...

Autor: Chris L. (kingkernel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Clock-Pin führt nur ein Taktsignal, wenn auch ein Slave angesprochen 
wird.
Ob man dieses verhalten ändern kann, weiss ich leider nicht. das 
einfachste wäre, einen Timer zu verwenden, der einen Pin regelmäßig 
Toggelt.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hans W. (stampede)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Mirco H. (mirq)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ...

Autor: Mirco H. (mirq)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.