Forum: Mikrocontroller und Digitale Elektronik PIC SD Card Initialisierung


von Martin D. (eric_arthur_blair)


Lesenswert?

Hallo!

In der Initialisierungsphase der SD-Karte darf nach Spezifikation
maximal eine SCL-Frequenz von 400 kHz verwendet werden. Ich arbeite mit
einem PIC18F6680 und einem externen 10 MHz Quartz. Desweiteren verwende
ich den HS-PLL-Modus, bei dem die Oszillator-Frequenz durch einen PLL
vervierfacht wird. Die effektive Systemfrequenz Fosc ist also 40 MHz.
Wenn ich nun den größtmöglichen Prescaler für das MSSP-Modul (64)
wähle, bekomme ich für die SCL-Frequenz 40MHz/64 = 625 kHz. Kennt
jemand von euch einen eleganteren Weg dieses Problem zu umschiffen, als
die Systemfrequenz erst nach der SD-Karten-Initialisierung in den
HS-PLL-Modus zu versetzen?

Gruß,

Martin

von Martin D. (eric_arthur_blair)


Lesenswert?

Ok. Zwei Lösungsvorschläge:

1. Man verwendet statt dem HS-PLL-Modus, in dem die Systemfrequenz
statisch durch den PLL vervierfacht wird den HS-SPLL-Modus, in dem man
den PLL in Software an- und abschalten kann. Weiß ich nicht, ob ich das
so gut finde, weil man dort wiederum die Übergangszeiten bei der
Frequenzumschaltung beachten muss.

2. Man verwendet Timer2 als Clock-Input für das MSSP-Modul. Wenn ich
das alles richtig verstehe, dann bekommt der Timer2 Fosc/4 als Input,
kann dann einen Prescaler von 1,4 oder 16 bemühen und leitet seinen
Output geteilt durch zwei an das MSSP-Modul weiter. Also wäre dann

Fscl = 40 MHz / (4  16  2) = 312,5 kHz .

Kann das jemand bestätigen?

von Martin D. (eric_arthur_blair)


Lesenswert?

Da ich mich hier ja schon prima alleine unterhalte noch eine Frage, die
ich dann vielleicht in zwanzig Minuten wieder selber beantworte:

Um mit dem Timer2 für die Shift-Clock des MSSP-Moduls eine genaue
Frequenz einstellen zu können muss man die Menge der Clock Cycles
wissen, die der Timer zum inkrementieren des Zählers und vergleichen
der Werte benötigt. Weiß da jemand irgendwelche Angaben?

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.