Gast
#259014
Hallo, Ich versuche eine SPI kommunikation zwischen einem Arm7 (LPC2129 Olimex-Board) und einem MS5534a hin zu bekommen. Da ich mich zum ersten mal mit SPI beschäftige, tu ich mich da ein wenig schwer:-( Der Sensor wird korrekt versorgt und erhält einen 32kHz Takt als Master Clock. Nun möchte ich ihn per SPI erst reseten und dann den Messwert auslesen. Hier eins meiner Probleme: Die Reset Signatur ist 21 Bit lang. Wie schicke ich die 21 Bit mit einem 8Bit Register meines Mikrocontrollers? Bisher habe ich 3 Byte geschickt, wobei ich das letzte Byte am Ende mit Nullen aufgefüllt habe. Kann man das so machen??? Leider erhalte ich keine Antwort von meinem Sensor. Hier ein kurzer Auszug: void init_SPI(void) { int CPHA=3; int CPOL=4; int MSTR=5; // setup SCK pin P04 PCB_PINSEL0 &= ~(3<<8); PCB_PINSEL0 |= (1<<8); // setup MISO pin P05 PCB_PINSEL0 &= ~(3<<10); PCB_PINSEL0 |= (1<<10); // setup MOSI pin P06 PCB_PINSEL0 &= ~(3<<12); PCB_PINSEL0 |= (1<<12); // setup SSEL pin P07 // WICHTIG: auch wenn es nicht benutzt wird... PCB_PINSEL0 &= ~(3<<14); // ansonsten läuft die ganze SPI nicht PCB_PINSEL0 |= (1<<14); SPI0_SPCCR = 4096; SPI0_SPCR = (1<<MSTR)|(1<<CPOL)|(1<<CPHA); //Enable SPI, SPI in Master Mode } int main(void) { .... init_SPI(); SPI0_SPDR=170; while(!(SPI0_SPSR & (1<<7))) //Wartet bis Byte gesendet wurde { } uart1Puts("\r\n SPIO_SPDR = "); ascii2uart1(SPI0_SPDR); ...... } Kann mir von euch jemand helfen??? Gruß Andy