Hallo zusammen, befasse mich erstmalig mit der SPI Schnttstelle. Ich möchte drei sinusförmige Spannungen mit einer Frequenz vom 45 Hz ausgeben. Hierzu will ich zwei MCP4922 per SPI Anschluss von an einen Mega32 anschließen. Ist die nachfolgende Verbindung so OK? Mega 32 1. MCP4922 2. MCP4922 PB4 (SS) PB5 (MOSI) PB6 (MISO) (PIN 5) SDI (PIN 5) SDI PB7 (SCK) (PIN 4) SCK (PIN 4) SCK PB0 (PIN 8) LDAC (PIN 8) LDAC PB1 (PIN 3) CS PB2 (PIN 3) CS Wie unterscheide ich zwischen den zwei Ausgängen des MCP4922? immer 4 Byte für beide Ausgänge senden? Danke Axel
Axel Düsendieb schrieb: > Wie unterscheide ich zwischen den zwei Ausgängen des MCP4922? immer 4 > Byte für beide Ausgänge senden? Im Datenblatt S. 18 siehst du wie das gemacht wird. Pro Ausgang 2 Byte, wobei das MSB angibt, für welchen Ausgang die Daten sind.
@Skript Kiddy Danke, nun habe ich es auch gefunden. Wer lesen kann...... Hast Du vieleicht ein Programmbeispiel, dass ich abändern kann? Im Datenblatt des Mega 32 sind ist auch ein Beispiel. void SPI_MasterInit(void) { /* Set MOSI and SCK output, all others input */ DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK); /* Enable SPI, Master, set clock rate fck/16 */ SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0); } void SPI_MasterTransmit(char cData) { /* Start transmission */ SPDR = cData; /* Wait for transmission complete */ while(!(SPSR & (1<<SPIF))) ; } wird dann SPI_MasterTransmit zwei mal aufgerufen? Was mache ich mit LDAC und CS? CS auf low SPI_MasterTransmit(erste Daten) SPI_MasterTransmit(zweite Daten) CS auf high LDAC auf low LDAC auf high richtig? Axel
Axel Düsendieb schrieb: > CS auf low > SPI_MasterTransmit(erste Daten) > SPI_MasterTransmit(zweite Daten) > CS auf high > LDAC auf low > LDAC auf high > > richtig? Genau so wirds gemacht.
SPI_MasterTransmit (lower Half) SPI_MasterTransmit (Upper Half) die Bytes so herum? Axel
Axel Düsendieb schrieb: > SPI_MasterTransmit (lower Half) > SPI_MasterTransmit (Upper Half) > > die Bytes so herum? Nein anders herum. Steht doch alles im Datenblatt.
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.