Hallo Leute, momentan verstehe ich die Welt nicht mehr. Ein einfacher SPI Bus macht mir so viel Probleme. Ich verwende einen Atmel XMEGA128A3U als Mikrocontroller. Am SPI Bus D hängt nur ein einziger Soudchip von Nuvoton. Ich habe ein kleines Testprogramm geschrieben, das per SPI Daten in den Soundchip schreib. Dies habe ich auch bereits mit einem Oscilloscope getestet und die CS, SCLK und MOSI Leitung sich auch alle richtig beschaltet. Nur die MISO Leitung macht mir Probleme. Der Pegel liegt bei 2,8V und beim 1. Bit sogar bei 2,5V. Eigentlich müssten aus dem IC 3,3V Pegel kommen. Der Mikrocontroller ist direkt an den Nuvoton Soundchip angeschlossen so das nichts das MISO Signal beeinflussen sollte. Ich habe auch schon mehrfach die SPI Konfiguration geprüft. Der MISO-Pin ist auf Eingang gestellt. Hier ist mein Code zur Initialisierung: // SPID initialization void spid_init(void) { // SPID is enabled // SPI mode: 3 // Operating as: Master // Data order: MSB First // SCK clock prescaler: 16 // SCK clock doubled: Off // SCK clock frequency: 2000,000 kHz SPID.CTRL=SPI_ENABLE_bm | SPI_MODE_3_gc | (1<<SPI_MASTER_bp) | (0<<SPI_DORD_bp) | SPI_PRESCALER_DIV16_gc | (0<<SPI_CLK2X_bp); // SPID interrupt: Disabled SPID.INTCTRL=SPI_INTLVL_OFF_gc; } Hier die Port Initialisierung: // PORTD initialization // OUT register PORTD.OUT=0x10; // Pin0: Input // Pin1: Input // Pin2: Input // Pin3: Input // Pin4: Output // Pin5: Output // Pin6: Input // Pin7: Output PORTD.DIR=0xB0; // Pin6 Output/Pull configuration: Totempole/No // Pin6 Input/Sense configuration: Sense both edges // Pin6 Inverted: Off // Pin6 Slew Rate Limitation: Off PORTD.PIN6CTRL=PORT_OPC_TOTEM_gc | PORT_ISC_BOTHEDGES_gc; Was mache ich falsch?
So ich habe jetzt noch mal 2 Screenshots zur Verfügung gestellt. Das 1. Bild zeigt die CS, SCLK und MOSI Signale. Beim 2. Bild wurde das MOSI Signal durch das MISO Signal ersetzt. Wie man sieht ist die Flankensteilheit nicht besonders gut obwohl 16MHz Clock Frequenz möglich sein sollen. Außerdem ist bei 1. Bit so ein Einbruch zu erkennen. Das System ist nach dem SPI-Mode 3 initialisiert.
Michael schrieb: > Was mache ich falsch? Frage vergessen - Pegel ist uninteressant wenn alles funktioniert. Funktioniert das Ganze nun, oder nicht ? Was hast du gesendet, erwartest du Antwort, wenn ja, wie sollte die Antwort aussehen ? Michael schrieb: > Außerdem ist bei 1. Bit so ein Einbruch zu erkennen. Wo ?
Also die Initialisierung der Pins und des SPI sehen gut aus. Da es sich bei MISO um einen Eingang handelt könnte das Problem auch bei deinem Soundchip liegen. Liegt Vcc am Soundchip an? Kannst du irgendwie testen, ob dieser auch eingeschaltet ist oder ob dieser funktioniert? Ansonsten mal andere Daten an den Soundchip senden und sehen ob das Verhalten so bleibt. Olli
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.