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
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.