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:
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;

.
.
.
Laut Datenblatt:
"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