Hallo, ich möchte die Datenübertragung mit SPI von AT90usb1287 zum DA-Wandler (AD5666) realisieren. Jedoch wurden keine Takte auf SCLK-PIN (PB1) im MCU erzeugt. Und an den Ausgänge von AD5666 wurden auch keine Signale erzeugt (komisch~~~). Jemand weiß wieso? Im Voraus herzlichen Dank. void SPI_Init() { DDRB|=0x06; // SCLK und MOSI as output DDRC|=_BV(PC3); //SYNC , PC3 as output SPCR=0x55; /*SPI enable ,MSB first,Master select, SPI transfer format with CPHA=1 and CPOL=0, fosc/16=1M hz */ } void AD5666(uint daword,uchar com,uchar chan) //chan is Channel number, com is command in input register content { uchar temp1,temp2,temp3; uint daword1; DDRC|=_BV(PC2); //LDAC PORTC|=_BV(PC2); //high LDAC, not update PORTC&=~_BV(PC3); //AD5666 select, --->low SYNC SPSR=0; //clear stateregister SPDR=com; while(!(SPSR&(1<<SPIF))); temp1=(uchar)(daword>>12); temp1=temp1+(chan<<4); SPSR=0; SPDR=temp1; while(!(SPSR&(1<<SPIF))); SPSR=0; daword1=(daword<<4); temp2=(uchar)(daword1>>8); SPDR=temp2; while(!(SPSR&(1<<SPIF))); SPSR=0; daword&=0x000F; //transmit low 4 bits temp3=(uchar)(daword<<4); SPDR=temp3; while(!(SPSR&(1<<SPIF))); SPSR=0; PORTC|=_BV(PC3); //ad5666 not selected, high SYNC PORTC&=~_BV(PC2); //low LDAC, asynchronous LDAC update mode _delay_ms(0.01); //LDAC pulse width low, 10ns PORTC|=_BV(PC2); } void main() { uint ddata; SPI_Init(); while (1) { ddata=65535; AD5666(ddata,0x03,0); //channel 0 } }
> Und an den Ausgänge von AD5666 wurden auch keine Signale erzeugt >(komisch~~~). Setz SS mal auf Ausgang.
holger wrote: >> Und an den Ausgänge von AD5666 wurden auch keine Signale erzeugt >>(komisch~~~). > > Setz SS mal auf Ausgang. SS (PB0) ist frei (keinen Anschluss). Trotzdem geht es denn doch?
holger wrote: >> Und an den Ausgänge von AD5666 wurden auch keine Signale erzeugt >>(komisch~~~). > > Setz SS mal auf Ausgang. SS wurde auf Ausgang gesetzt. Bei DA-Wandler gab es noch kein Ausgangssignal. Wieso?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.