Hallo liebe Gemeinde, ich versuche, einen LTC1865 ADC auszulesen. Das ganze läuft über eine SPI-Schnittstelle und wird vom einem Raspberry Pi als Master betrieben. Anschluss: RPi LTC1865 MOSI --- SDI MISO --- SDO SCK --- SCK GPIO-Pin --- CONV Weil der LTC1865 mit 5 V und der RPi mit 3,3 V arbeitet, ist für die Pegelanpassung noch ein TXB0108 dazwischengeschaltet. Wenn ich mir mit dem Oszi die Signalverläufe anschaue, sieht es genau so aus, wie es laut Datenblatt (http://www.linear.com/docs/4062) auf Seite 14 sein soll. Einziger Makel: Die SDO Leitung bleibt konstant auf GND, es werden also keine Daten gesendet. Was ich als Fehlerquelle ausschließen kann: - RPi: Wenn ich hier MISO und MOSI kurzschließe, kommt bei MISO das an, was ich bei MOSI sende. Funktioniert also. - TXB0108 schaltet nicht durch: Es gibt auch keine Pegeländerung, wenn ich den ADC-SDO nicht mit dem Pegelwandler verbinde. - Defekter ADC: Teil habe ich bereits ausgetauscht, dass zwei Teile kaputt sind, will ich nicht hoffen, zumal ich mit ziemlich sicher bin, dass beide ADCs pfleglich behandelt wurden. Die Eingangsspannung liegt bei ca. 2,5 V. Hat jemand eine Idee, wo der Fehler liegen könnte? Gruß Heinrich
Hmm, ich verstehe die Welt nicht mehr. Es funktioniert nun einwandfrei, ohne dass ich etwas geändert habe. Seit zwei Tage doktore ich an dem Problem herum und gerade als ich meiner Frau demonstrieren will, was da nicht funktioniert, funktioniert es super. Thema kann wohl geschlossen werden.
Kürzeres Kabel verbaut? SPI ist ziemlich empfindlich gegenüber Störungen insb. auf CS, ein kleiner Kondensator (100pF) gegen GND an den Leitungsenden hilft.
Hallo Sven, Kondensatoren habe ich keine verbaut. CS nutze ich gar nicht, weil der ADC gar keine CS Leitung hat. Der fängt an zu konvertieren wenn der CONV Pin High wird und fängt an zu senden, wenn CONV auf Low springt. CS wäre ja die ganze Zeit high. Ich muss den Pfad doch nochmal eröffnen. Denn (ob mit oder ohne Frau im Raum ;-) ) hat der ADC heute wieder aufgehört zu senden, nachdem er gestern und bis eben gerade einwandfrei funktioniert hat. Geändert habe ich an der Schaltung nix, außer, dass sich sie mal ein- und ausgeschaltet habe (was aber vorher keinen Einfluss auf die Funktion hatte). Irgendwann war Schluss. Ich werde mal die Kondensatoren an die Leitungsenden löten, vielleicht hilft das ja. Gruß Heinrich
... Kondensatoren haben nix gebracht. Das Kabel zwischen dem Pegelwandler und dem Raspberry Pi ist 15 cm lang (Flachbandkabel). Zwischen dem Pegelwandler und dem ADC liegen ca. 1 cm auf nem PCB. Störungen (Einkopplungen) auf dem Flachbandkaben will ich nicht ausschließen, aber wenn ich mir die Signale anschaue, sehen die aus wie im Bilderbuch - absolut steile Flanken und kein Rauschen auf den Pegeln. Gruß Heinrich
Hast du auch die wandlerzeiten eingehalten die der ADC braucht?
Hallo fuelre, ja, habe ich. 2.8 µs..3.2 µs (typ 3.0 µs) braucht er und ich gebe ihm derzeit min. 10 µs. Ich habe auch schon mit der Übertragungsgeschwindigkeit herumgespielt, das ergibt auch keine Änderung. Er bleibt einfach tot. Habe das Problem mittlerweile identifiziert: Der TXV0108 benötigt 2 mA am Eingang, um zu schalten - soviel liefert aber der LTC1865 nicht. Wahrscheinlich war vorhin mal irgendwie genug Strom da, jetzt aber nicht mehr. Und schon funktioniert es nicht mehr. Ich setze jetzt über nen Spannungsteiler von 5 auf 3.3 V runter und es sollte theoretisch funktionieren. Signal kommt beim RPi an, er zeigt trotzdem noch Null an. Ist nun aber offensichtlich ein anderes Problem. Gruß Heinrich
Heinrich schrieb: > Der TXV0108 benötigt 2 mA am Eingang, um zu schalten Und das steht wo im Datenblatt. Du hast nicht zufällig Port A und B vom TXV0108 vertauscht?
Miss mal ob auch wirklich alle Anschlüsse funktionieren - könnte auch einfach bloß ein wackler sein - mit Frauchen hats ja geklappt Und ob alle Massen verbunden sind
Hallo fuelre und Wolfgang, vielen Dank für Euren Input. Zu euren Fragen: @ Wolfgang: Das mit den 2 mA steht im Datenblatt (http://www.ti.com/lit/ds/symlink/txb0108.pdf) auf Seite 10 ganz unten: "Input Driver Requirements Typical IIN vs VIN characteristics of the TXB0108 are shown in Figure 2. For proper operation, the device driving the data I/Os of the TXB0108 must have drive strength of at least ±2 mA." Und vertauscht habe ich auch nix. Die 5 V-Seite beim ADC und die 3.3 V-Seite beim RPi. Passt also. @fuelre Die Signale gehen auch definitiv durch. Ich habe es mehrfach direkt an den Pins (und nicht irgendwo zwischendurch auf ner Leiterbahn) gecheckt. Alle Lötstellen sind ok, mehrfach gecheckt und vorsichtshalber nachgelötet wo ich mir unsicher war. Ich habe gerade einen Test laufen und die Datenübertragung scheint wieder zu klappen. Ich habe eine Vermutung, wo der Fehler lag und sobald ich es verifiziert habe, poste ich die Lösung. Gruß Heinrich
Moin zusammen: Fehler gefunden: Nachdem ich den TXB0108 aus der Leitung geschmissen hab (siehe oben, benötigt min. 2 mA um zu schalten und das liefert der AD1865 nicht), habe ich die 5 V über einen Spannungsteiler auf 3,3 V runter setzen wollen. 5/3,3 = 1,51/1, also kommt man mit nem Spannungsteiler aus 10k und 20k super hin, dachte ich mir (1,5/1). Allerdings scheint der Rasperry Pi extrem empfindlich zu reagieren, was Überspannungen angeht. Es hat in der Folge wohl etwas zu viel Spannung (vielleicht beim Einschalten?) auf dem Pin gelegen, sodass dieser das zeitliche gesegnet hat. Der Rest des RPi funktionierte einwandfrei. Lösung: Neuen RPi angeschlossen, fertig. Läuft super. Auf dem alten läuft nun XBMC, da brauche ich die Pins eh nicht ;-) Vielen Dank nochmal an alle Schreiber, ein bisschen Input von außen wirkt manchmal Wunder. Gruß Heinrich
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.