Hallo,
ich möchte nur ungern den Beitrag nochmal aufwärmen aber es geht nicht anders.
Es geht weiterhin um den 1-Wire-SPI für den Drehwinkelsensor - diesmal um die Softwareansteuerung.
Ich initialisiere das SPI folgendermaßen:
Laut Datenblatt:Code:short spi_data_receive_dreh[10]; //Antwortarray DDRA |= (1<<DDA0); //SlaveSelect-> Ausgang DDRB |= (1<<DDB1) | (1<<DDB2); //SCK und MOSI -> Ausgang DDRB &= ~(1<<DDB3); //MISO -> Eingang // Initialisierung von SPI PORTA |= (1<<PA0); volatile char IOReg; SPSR |= (1<<SPI2X); SPCR |= (1<<SPE) | (1<<MSTR) | (1<<CPHA); IOReg = SPSR; // clear SPIF bit in SPSR IOReg = SPDR; // Drehrad innen abfragen: PORTA &= ~(1<<PA0); // SS auf low setzen um Übertragung zu starten SPDR = 0xAA; while (!(SPSR & (1<<SPIF))); // wait until Char is sent spi_data_receive_dreh[0] = SPDR; SPDR = 0xFF; while (!(SPSR & (1<<SPIF))); // wait until Char is sent spi_data_receive_dreh[1] = SPDR; SPDR = 0xFF; while (!(SPSR & (1<<SPIF))); // wait until Char is sent spi_data_receive_dreh[2] = SPDR; . . .
"The Master should send AAh followed by 9 bytes FFh. The Slave will answer with two bytes FFh followed by 4 data bytes and 4 bytes FFh"
Ich habe die vermutung das bei der Iitialisierung etwas nicht stimmt weil ich am Oszi kein Clock sehe... (eigentlich seh ich schon was aber das Signal geht im Rauschen fast unter. Kein vergleich zum Rechteck den ich beim Programmieren beobachte.)
Gibts irgendwelche Ideen woran es liegen kann?
mfg
Alex






Zitieren

Lesezeichen