Hallo Leute, ich habe ein kleines Problem mit der Bedienung einer SPI-Schnittstelle. Ich haben einen A/D-Wandler an einen XC167CI angeschlossen, und will von diesem nun die Werte auslesen. Hier erst mal das Datenblatt des ICs(serielle Schnittstell: S. 28ff): www.analog.com/static/imported-files/data_sheets/AD2S1210.pdf Mein Problem besteht nun darin, dass der A/D-Wandler ja insgesamt 3 Byte an den XC167 schicken will. Dafür braucht er aber die ganze Zeit den Takt des Masters, und der wird doch nur erzeugt, wenn der Master auch was sendet, oder lieg ich da falsch? Bis jetzt hab ich folgenden Code: SSC0_BR = 0x0013; SSC0_CON = 0x4078; SSC0_CON |= 0x8000; //einschalten while(1) { P3_P7 = 0; //Sample low P3_P7 = 1; //Sample high P3_P6 = 0; //WR low SSC0_TB = 0xFF; //irgendwas schicken while(!SSC0_CON_BSY); //warten bis "busy" erkannt wurde while(SSC0_CON_BSY); //warten bis "busy" vorbei P3_P6 = 1; //WR high } Das funktioniert soweit auch ganz gut, nur dass der A/D-Wandler leider immer nur das erste Byte schickt. Hat jemand vielleicht eine Idee?? Viele Grüße Michael
Hallo Michael, ich kenn zwar den Controller und den AD-Wandler nicht. Aber warum schickst du nicht noch zwei Dummy Bytes (zB 2x FF) an den AD-Wandler. Bei einem aktuellen Projekt setzen wir den ADS1256 von TI zusammen mit nem MSP430 ein, und da klappt das so prima. Gruß Rainer
>Aber warum schickst du nicht noch zwei Dummy Bytes (zB 2x FF) an den >AD-Wandler.
Ist wohl das Standard-Verfahren bei SPI-Abfragen...
Hallo, danke erstmal für die schnelle Antwort. Die Kommunikation mit dem ADC klappt soweit schon ganz gut, nur ein Problem hab ich noch. Wenn ich die drei Dummy-Bytes schicke und das WR Signal auf low halte kommen die Daten rüber. Leider ist das MSB aber immer fest auf einem Wert. Wenn ich immer im "Normal-Mode" bin dann ist das MSB immer auf low, wenn ich aber zuvor im "Configuration-Mode" ein Register gelesen oder geschrieben habe und anschließend im "Normal-Mode" wieder die Position lesen will, dann ist das MSB immer auf high. Hat jemand vielleicht schon mal ein ähnliches Problem gehabt? Am Eingangssignal kann es meiner Meinung nach nicht liegen, da im Parallel-Betrieb alles einwandfrei läuft. Gruß Michael
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.