Forum: Mikrocontroller und Digitale Elektronik Bascom SPI Clock = 2 unmöglich?


von Alex S. (Gast)


Lesenswert?

Hallo.
Sehe ich das richtig, dass ich die SPI Frequenz nur f(µC) / 4 etc. 
benutzen kann, und nicht /2?
Kann man es irgendiwe möglich machen, oder gibt es da ein Technisches 
Problem, warum es nicht geht?

Ich Betreibe mein Atmega32 mit 16MHz.
Es ist ein SPI Chip als Slave angeschlossen.
Der Chip kann mit max. 10Mhz klar kommen.
Darum teile ich meine Frequenz durch 4.
Somit wackelt mein Hardware SPI mit 4 Mhz. Das ist mir etwas zu wenig, 
ich möchte schneller werden um für den Fall der Fälle etwas Reserve zu 
haben.
Im Moment läuft Alles, aber sehr an der Grenze.

Weiss Jemand einen Rat?

Danke

Gruss Alex S.

von Oliver J. (skriptkiddy)


Lesenswert?

Alex S. schrieb:
> Der Chip kann mit max. 10Mhz klar kommen.
> Darum teile ich meine Frequenz durch 4.
> Somit wackelt mein Hardware SPI mit 4 Mhz.

Warum reichen dir die 4MHz nicht?

von Alex S. (Gast)


Lesenswert?

>Warum reichen dir die 4MHz nicht?
Im Moment läuft Alles, aber sehr an der Grenze.

ich hatte mal ab und zu Probleme, desswegen habe ich im Programm einige 
Pausen von waitus 10 auf waitus 2 reduziert.
Jetzt läuft das schon, aber ich habe Angst, dass es sehr knapp ist.

Gruss Alex S.

von Oliver J. (skriptkiddy)


Lesenswert?

Alex S. schrieb:
> Im Moment läuft Alles, aber sehr an der Grenze.
An was für einer Grenze?

> ich hatte mal ab und zu Probleme, desswegen habe ich im Programm einige
> Pausen von waitus 10 auf waitus 2 reduziert.
> Jetzt läuft das schon, aber ich habe Angst, dass es sehr knapp ist.
Wie hängt das mit dem SPI-Takt zusammen? Verstehe ich nicht.

von guenther (Gast)


Lesenswert?

Atmel Datenblatt 2503E-AVR-09/03, Seite 135, Tabelle 58, "Relationship 
between SCK and the Oscillator Frequency":
SPI2X(SPSR:0)=1, SPR1=0, SPR0=0, SCK=fosc/2

von Leo H. (Gast)


Lesenswert?

Setze das Bit "SPI2X" in "SPCR", dann sollte 1/2 CPU-Takt eingestellt 
sein.

Dieses Bit halbiert alle gewählten Vorteiler.

von H.Joachim S. (crazyhorse)


Lesenswert?

SPSR|=(1<<SPI2X);   SPI clock x 2

Wie es in Basic geht weiss ich nicht.

von Alex S. (Gast)


Lesenswert?

Danke schön.
Werde ich morgen ausprobieren.

Gute Nacht.
Gruss Alex

von Herr M. (herrmueller)


Lesenswert?

in Bascom vermutlich

SPSR = Bits (SPI2X)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.