Gast
#5564519
Ich versuche seit ein paar Tagen ein Problem mit der SPI Kommunikation zwischen einem ESP8266 und einem ADS1217 zu loesen und komme da Leider nicht recht weiter. Also dachte ich ihr loest mal eben mein Problem. :-) Der ADS1217 ist mit POL=1 verdrahtet. Damit sollte er im SPI-MODE3 laufen, das erste Bild zeigt einen ausschnitt aus dem Datenblatt wie sich TI das vorgestellt hat. Das Bild Oszi1.gif zeigt die Uebertragung sowohl des Logiganalyser wie auch nochmal das SCK-Signal auf dem analogen Eingang. Das sieht nach meiner Meinung so aus wie es laut Datenblatt aussehen sollte. Widerspruch? Der ADS1217 ist ein AD-DA Wandler der zusaetzlich noch einen 8Bit Datenport enthaelt. Um die Sache einfach zu halten beschreibe und lese ich erstmal diesen Datenport. Ich habe an den oberen drei Bits dieses Ports eine RGB-Led angeschlossen, D2 liegt auf high und alles andere auf low. Das Kommando 0x56 0x00 0x80 beschreibt als Beispiel den Port mit 0x80 und schaltet so z.B meine gruene LED ein. Ich gebe so einmal pro Sekunde immer abwechselnd 0x20 0x40 und 0x80 aus. Das sollte also dazu fuehren das die LED munter blinkt. Das tut sie aber in der Regel nicht. Sie blinkt manchmal garnicht, manchmal nur in einer Farbe und manchmal auch genau wie sie soll. Ignoriere ich einfach mal die Vorgaben laut Datenblatt und probiere alle Modi durch so kann ich in Mode0, was auf dem Oszi dann total falsch aussieht die LED korrekt und zuverlaessig ans blinken bringen. Lese ich dann aber testweise den Port ein so liefert der erste Versuch immer Unsinn und danach bekomme ich dann den richtigen Wert. Lese ich zwischendurch etwas anderes werden die reinkommenden Daten immer ander verwuerfelt. So kann es z.B sein das ich einen ADC-Wert lesen will, aber den den Inhalt des Portregisters bekomme wenn ich das zuvor versucht habe. Mit anderen Worten es sieht so aus als wenn keiner der vier moeglichen Modis funktioniert. Ich sollte vielleicht noch erwaehnen das ich am selben Anschluss, aber nicht gleichzeitig, vollkommen problemlos diverse Grafik-LCDs ans laufen bringen konnte. Schalte ich POL=0 bekomme ich genau dasselbe Ergebnis aber dann in anderen SPI_Modes. In keiner der acht denkbaren Kombinationen kann ich immer zuverlaessig lesen UND schreiben. Ich hab daher den Eindruck als wenn sich der ADS1217 nicht ganz an sein Datenblatt haelt. Hat schon mal jemand mit diesem IC (oder ADS1216, ADS1241, ADS1241) aehnliche Erfahrungen gemacht? Olaf










