Guten Morgen,
Ich versuche mit meinem TI Launchpad (MSP430G2553) den Drucksensor
MS5611-01BA03 auszulesen. Das funktioniert auch recht gut, doch wenn ich
die Kommunikation beschleunigen will, kommt nix mehr beim Master an.
Grundsätzlich startet man eine Messung, muss laut Datenblatt mindestens
9.4ms warten und kann dann das Ergebnis auslesen. In meinem Fall muss
ich aber knappe 100ms warten um Daten zu bekommen. Nachdem bei anderen
Beispielen im Netz auch nicht so lang gewartet wird, wirds wohl an
meinem Programm liegen.
Ausschnitt vom auslesen:
1 | i2cSetupTx( MS5611_ADDR_CSB_LOW );
|
2 | i2cTransmit( command, 1 );
|
3 |
|
4 | // Wait to finish conversion, 0.096 sec@1MHz, ~100ms (should be max 9.4ms)
|
5 | __delay_cycles(6000);
|
6 | // __delay_cycles(5500); // damit funktionierts nicht mehr
|
7 |
|
8 | // ADC read sequence
|
9 | i2cSetupTx( MS5611_ADDR_CSB_LOW );
|
10 | i2cTransmit( MS5611_CMD_ADC_READ, 1 );
|
11 |
|
12 | // Receive 3 byte answer from MS5611-01BA
|
13 | i2cSetupRx( MS5611_ADDR_CSB_LOW );
|
14 | i2cReceive( rxb, 3 );
|
Setz ich das __delay_cycles auf unter 6000, bleigt der Empfangsbuffer
rxb leer. Ich verwende einen fertigen I2C Code (siehe Anhang) und denke
mal, dass es daran liegen wird ... aber woran genau?
Bin für jede Hilfe, jeden Tip dankbar ... komm nämlich nicht mehr
weiter.
Danke,
Max