Ich konfiguriere I 2 C auf einem PIC18 mit den integrierten Funktionen des C18-Compilers, wie in Abschnitt 2.4 der Dokumentation beschrieben :
void OpenI2C2( unsigned char sync_mode,
unsigned char slew );
Ich bin mir nicht sicher, was ich damit machen soll slew
. Ich kann aus zwei Optionen wählen, definiert in i2c.h
:
SLEW_OFF
: Anstiegsgeschwindigkeit für 100-kHz-Modus deaktiviertSLEW_ON
: Anstiegsgeschwindigkeit für 400-kHz-Modus aktiviertIm Datenblatt in Register 15-1, Seite 257, werden die beiden Optionen etwas ausführlicher erklärt:
Ich verstehe es aber nicht - ich habe ein paar Fragen:
Was ist die Anstiegsrate?
Für mich machen die beiden Optionen keinen Sinn - was ist, wenn ich die Anstiegsgeschwindigkeit für 400 kHz deaktivieren und für 100 kHz aktivieren möchte? Warum ist das?
Wann soll ich wählen SLEW_OFF
und wann SLEW_ON
?
Die Anstiegsgeschwindigkeit gibt an, wie schnell sich das Signal von niedrig nach hoch oder umgekehrt ändert. Indem Sie diesen abrupten Übergang begrenzen, können Sie das Überschwingen von Signalreflexionen reduzieren und das Übersprechen zwischen Signalleitungen begrenzen.
Es funktioniert jedoch so, dass bei 100 kHz die Signalraten so langsam sind, dass die Anstiegsgeschwindigkeit keine Rolle spielt; Bei 400 kHz können Sie möglicherweise eine ansonsten problematische Schaltung beheben, indem Sie sie begrenzen. Aber wenn Sie dann 1 MHz erreichen, brauchen Sie wirklich die gesamte Übergangsgeschwindigkeit, die Sie bekommen können, und deshalb müssen Sie nur eine gute Signalanpassung vornehmen und Ihre Leitungen sorgfältiger verlegen.
Das fragliche Bit macht nichts weiter, als die Funktion zu aktivieren oder zu deaktivieren. Der Rest sind nur Ratschläge. Die Geschwindigkeiten stehen in Klammern, da es sich nur um einen Vorschlag handelt.
Benutzer17592
Tim
Engelgroß
gbarry
Rohr
Simon A. Eugen