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
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