Ich bin etwas verwirrt, was die Pull-UP Widerstände beim Lauchpad
(MSP430G2553)betrifft.
Beispiele für I2C machen die Initialisierung auf verschiedene Weisen:
z.B.
1 | PSEL &= ~( SCL | SDA );
|
2 | PDIR &= ~SCL;
|
3 | PDIR &= ~SDA;
|
oder
1 | PDIR &= ~SDA;
|
2 | PREN |= SDA;
|
3 | POUT |= SDA;
|
oder
1 | P1DIR |= SDA;
|
2 | P1DIR |= SCL;
|
3 | POUT |= SDA;
|
4 | POUT |= SCL;
|
Bei manchen also nur über POUT (dann aber doch nicht open-drain?), bei
anderen mit PDIR, aber mal ohne PREN, mal mit. Und dann ist auch noch
High und Low teilweise unterschiedlich angegeben? Wie ist es in welchem
Fall richtig? Woher kommt diese Varianz?
Zu Variante 1 sagt TI
1 | /* Using the direction pin to control the output. When set as an input, the
|
2 | hardware pull-ups will take over and cause the pin to go high. When
|
3 | set as an output, the MSP430 will drive the lines low */
|
Geht das also nur, wenn am Slave keine Pull-ups sind? Ich habe
allerdings gelesen, dass man die Pullups vom Launchpad nicht für I2C
nutzen soll, habe ich da was missverstanden?
Ich will eigentlich die internen Pull-Ups nicht verwenden, auf dem
Breakout Board vom Slave sind ja welche drauf - oder geht das so nicht?
Könntet ihr mir bitte erklären, was nun genau wie festgelegt werden
muss, damit die Signale korrekt definiert sind?