C ADS1100 - je nach Pull-up unterschiedlicher ADC-Wert

avr_newbie

Mitglied
13. Apr. 2013
127
0
16
Bayern
Sprachen
  1. ANSI C
Hallo,

ich habe zurzeit ein kleines Problem mit dem AD-Wandler ADS1100.
Je nach dem, was für einen Pull-up Widerstand für SDA/SCL nehme, bekomme ich einen anderen ADC-Wert.
Ich hab jetzt schon alles probiert, zwischen 1kohm und 10kohm....

Allerdings muss ich gestehen, das mein I2C-Busaufbau ziemlich komplex ist....

Mikrocontroller -> ADUM1250 ->P92B86 -----------relative lange Busleiterbahnen ---------->P92B86 ->Adum1250-> ADS1100.

Jetzt fragt sich wahrscheinlich jeder, wieso so kompliziert?

Mein Gedanke ist: vollkommene Abkopplung vom Bus, gewährleistet über ADUM1250
und, da die Leiterplatte ziemlich groß ist (Lange Busleitungen), Pegelwandlung auf 12V, damit der Bus weniger Störanfällig ist, deswegen die P92B86.

Im Prinzip klappt alles, habe statt ADS1100 z.B. auch Portexpander dran, da läuft alles ....

Nun hab ich eben festgestellt, dass wie gesagt, ich je nach Pull-Up für SDA/SCL zwischen ADS1100 und ADUM1250 andere ADC-Werte bekomme.




Ein anderes Problem ist unter anderem auch noch: Wenn alle Busteilnehmer dran sind, und alle nacheinander ununterbrochen angesprochen werden, dann erhalte ich auch einen anderen ADC-Wert, wie wenn auf dem Bus nur der ADS1100 alleine kommuniziert.
Der ADC-Wert ist dann um den Wert 100 (dezimal) unterschiedlich.


Ich weiß, dass bei solchen Sachen eine Ferndiagnose ziemlich schwierig ist.
Ich vermute, dass ich die Leiterplatte wahrscheinlich nicht optimal geroutet habe, und hier die Kapazitiät auf den SDA/SCL-Leitungen ein Problem ist?
Die Abweichung konnte ich bereits von 200 auf 100 reduzieren, in dem ich 50pF von SDA auf GND eingelötet habe, bzw. von SCL auf GND. Wobei das auf Störungen auf den Leitungen hinweisen würde?
Wenn ich allerdings mit dem Oszilloskop die SDA/SCL-Leitung anschaue, fällt mir nichts besonderes auf.

Ich habe auch schon den Takt von 100khz auf 40khz geändert. Das bringt auch nichts.

Kann mir jemand nen Tipp geben?
 
Ich weiß nicht ob es dir weiter hilft. Falls nicht sorry.

Ich hatte vorgestern auch ein Problem. Schaltung fertig aufgebaut (ATtiny, LCD). Am AVR Dragon angeschlossen, Firmware hochgeladen. Erste Merkwürdigkeit: Der Drachen meldete nur 4,2V obwohl Betriebsspannung 5V war. ADC funktionierte, aber das LCD nicht. Nach stundenlanger Suche im Programm und Selbstzweifeln hab ich den Fehler gefunden: Ich hab GND vom Controller nicht mit GND der Schaltung verbunden... Gott weiß woher der ATtiny Masse herbekommen hat (scheinbar durch irgendeine Diode, wegen den 0,8V Spannungsfall).

Kurz um: Prüf mal die Spannungsversorgung, vor allem an dem ADC, ggf. Vref sollte der so einen Pin haben. Abblockkondensatoren nicht vergessen.

Warum die Geschichte oben?
Ich bezweifle dass (bei guter Betriebsspannung) unterschiedliche Werte der PullUp's das Ergebnis beeinflussen können. Ist ja ein digitales Signal. Wenn aber die Betriebsspannung schwankt (durch zu schwaches VCC) schwankt möglicherweise auch die Referenzspannung und somit das Ergebnis.
 
ok, ich habe eine neue Erkenntnis...

Dein Tipp bringt mich, glaube ich zumindestens, in die richtige Richung.

Eins kann ich aber mit Sicherheit sagen, dass es nicht daran liegt, dass die Versorgungsspannung in die Knie geht.

Es scheint eher, dass sich der DCDC Wandler (max. 200mA), an dem nur der ADC-Baustein hängt, quasi sich langweilt.

Ich hab die Ausgangsspannung mit einem 500 Ohm Widerstand jetzt mal belastet, damit wenigstens mal 10mA mehr fließen.
Und bis jetzt scheint es, dass es klappt! Der angezeigt ADC-Wert passt auch fast mit meinem ausgerechnetem Wert jetzt überein.

Kann es sein, dass es an dem DCDC - Wandler liegt, weil er zuwenig belastet wird? (ohmsche Last ?)

:confused::confused:

Ich weiß nicht ob es dir weiter hilft. Falls nicht sorry.

Ich hatte vorgestern auch ein Problem. Schaltung fertig aufgebaut (ATtiny, LCD). Am AVR Dragon angeschlossen, Firmware hochgeladen. Erste Merkwürdigkeit: Der Drachen meldete nur 4,2V obwohl Betriebsspannung 5V war. ADC funktionierte, aber das LCD nicht. Nach stundenlanger Suche im Programm und Selbstzweifeln hab ich den Fehler gefunden: Ich hab GND vom Controller nicht mit GND der Schaltung verbunden... Gott weiß woher der ATtiny Masse herbekommen hat (scheinbar durch irgendeine Diode, wegen den 0,8V Spannungsfall).

Kurz um: Prüf mal die Spannungsversorgung, vor allem an dem ADC, ggf. Vref sollte der so einen Pin haben. Abblockkondensatoren nicht vergessen.

Warum die Geschichte oben?
Ich bezweifle dass (bei guter Betriebsspannung) unterschiedliche Werte der PullUp's das Ergebnis beeinflussen können. Ist ja ein digitales Signal. Wenn aber die Betriebsspannung schwankt (durch zu schwaches VCC) schwankt möglicherweise auch die Referenzspannung und somit das Ergebnis.
 
Hi,

Es scheint eher, dass sich der DCDC Wandler (max. 200mA), an dem nur der ADC-Baustein hängt, quasi sich langweilt.

Ich hab die Ausgangsspannung mit einem 500 Ohm Widerstand jetzt mal belastet, damit wenigstens mal 10mA mehr fließen.
Und bis jetzt scheint es, dass es klappt! Der angezeigt ADC-Wert passt auch fast mit meinem ausgerechnetem Wert jetzt überein.

Kann es sein, dass es an dem DCDC - Wandler liegt, weil er zuwenig belastet wird? (ohmsche Last ?)

kann schon sein wenn du auch deine Referenzspannung daraus generierst. Gibt der DCDC-Wandler denn eine stabilisierte Spannung raus oder ist die "nur" Gleichspannung mit nem ungefähr bestimmten Wert? Kann sein das der ohne Last eine schöne hohe Leerlaufspannung rausschickt die der ADC nicht mag.

Das deine ADC-Daten auf der Leitung durch andere PullUps verfälscht werden glaube ich auch nicht. Dann mußte das ja auch bei den I2C-Adressen ab und zu mal auftauchen und damit der ADC manchmal nicht erreichbar sein. Sowas sucht sich nicht nur die Daten des ADCs aus sondern betrifft statistisch gesehen alle Bits in gleicher Häufigkeit und damit natürlich auch die Ack-Bits und Adressen.

Gruß
Dino
 
Ich habe es selber bei den Wandlern die ich verwende noch nicht erlebt, aber das heißt nicht dass das unmöglich ist.
Gut möglich dass der Wandler es nicht mag wenn er nahezu keine Last hat und dann auf einmal (durch die PullUps bei einer gesetzten 0) doch ein bisschen leisten muss. Wenn du nicht grade extrem auf den Strombedarf achten musst (Batteriebetrieb) denn würd ich das so lassen. Vielleicht noch einen Elko (vorzugsweise LowESR) dazu schalten der etwas puffert. Das könnte das Regelverhalten des DCDC Wandlers etwas stabilisieren. Ich hab auch immer noch je einen Elko am Ein- und Ausgang, obwohl auf dem Wandler schon welche drauf sind (ich nutz die fertigen Platinen). Lieber einen Kondensator zu viel als zu wenig, die paar Cent bringen mich nich um.
 
das ist ein TMA0505S von TracoPower

TMA 0505S
Industriestandard-Pinning, SIL-7 Gehäuse
Ungeregelter Ausgang
E/A-Isolation 1000 VDC
Hoher Wirkungsgrad, 80% typ.
Arbeitstemperaturbereich -40°C bis +85°C (ohne Leistungsreduktion)

Weitere Spezifikationen:
Regelabweichung:
-Eingangsänderung: ungeregelt
-Laständerung: ±10% max.
Restwelligkeit: 75 mVpk-pk max. (20 MHz Bandbreite)
Kurzschlussschutz: max. 1 sec.

Modell: TMA 0505S, 1 W
Eingangsspannung: 5 VDC ±10%
Ausgangsspannung: 5 VDC
Ausgangsstrom max.: 200 mA



Die Spannung wird auch als Referenzspannung hergenommen.... das war/ist irgendwie nicht so schlau :hmpf:
Ursprünglich wollte ich ja die ADS1110 nehmen, die hätten eine Referenzspannung on board..... aber da ich die nicht aufgetrieben habe, und nur die ADS1100 habe.....


hm, ok... Leerlauf 5,63 (bzw. ohne 500Ohm Belastung)
mit 500Ohm Belastung 5,4V

Der ADC ist mit max. 5,5 V angegeben....
Der ADC (ADS1100) verwendet PowerSupply als Referenz....

Das wird das Problem sein....

und das nächste Problem ist jetzt, was ich am schlauesten jetzt mach :hmpf:

EDIT:

wobei im ADC Datenblatt bei maximum Ratings steht:
VDD to GND ........................................................................... –0.3V to +6V
Input Current ............................................................... 100mA, Momentary
Input Current ................................................................. 10mA, Continuous
Voltage to GND, VIN+, VIN– .......................................................... –0.3V to VDD + 0.3V
Voltage to GND, SDA, SCL .....................................................–0.5V to 6V
Maximum Junction Temperature ................................................... +150°C
Operating Temperature .................................................. –40°C to +125°C
Storage Temperature ...................................................... –60°C to +150°C
Lead Temperature (soldering, 10s) ............................................... +300°C


Hi,



kann schon sein wenn du auch deine Referenzspannung daraus generierst. Gibt der DCDC-Wandler denn eine stabilisierte Spannung raus oder ist die "nur" Gleichspannung mit nem ungefähr bestimmten Wert? Kann sein das der ohne Last eine schöne hohe Leerlaufspannung rausschickt die der ADC nicht mag.

Das deine ADC-Daten auf der Leitung durch andere PullUps verfälscht werden glaube ich auch nicht. Dann mußte das ja auch bei den I2C-Adressen ab und zu mal auftauchen und damit der ADC manchmal nicht erreichbar sein. Sowas sucht sich nicht nur die Daten des ADCs aus sondern betrifft statistisch gesehen alle Bits in gleicher Häufigkeit und damit natürlich auch die Ack-Bits und Adressen.

Gruß
Dino
 
Hi,

das ist ein TMA0505S von TracoPower

TMA 0505S
Industriestandard-Pinning, SIL-7 Gehäuse
Ungeregelter Ausgang
E/A-Isolation 1000 VDC
Hoher Wirkungsgrad, 80% typ.
Arbeitstemperaturbereich -40°C bis +85°C (ohne Leistungsreduktion)
.....

Die Spannung wird auch als Referenzspannung hergenommen.... das war/ist irgendwie nicht so schlau :hmpf:
Ursprünglich wollte ich ja die ADS1110 nehmen, die hätten eine Referenzspannung on board..... aber da ich die nicht aufgetrieben habe, und nur die ADS1100 habe.....

neee oder ? :p :banghead: und dann wunderst du dich über das Ergebnis?

Das ist so als wenn du den ADC von nem Trafo nur mit Gleichrichter und Elko da dran versorgst. Die Referenz ist dann auch genauso genau (+/-0,2V?) Wieviel Bit hat der ADC? Also nen 8Bit-ADC hätte bei der Beschaltung auch allemal gereicht und hätte Geld gespart :rolleyes: Mit ner Z-Diode als Referenzquelle wärst du da schon um Zehnerpotenzen genauer gewesen :eek:

Meine Vermutungen haben sich bestätigt.

Gruß
Dino

EDIT: mal im Datenblatt gestöbert ...
The ADS1100 is a precision, continuously self-calibrating Analog-to-Digital (A/D) converter with differential inputs and up to 16 bits of resolution in a small SOT23-6 package.

Wie heißt es bei Miss Marple in "Mörder Ahoi" wie dem einen die Whiskyflasche (oder Rum oder?) auf den Boden fällt ...
"Was für eine diabolische Verschwendung" :p

EDIT2: in den Weiten des Netzes gefunden ...
"das war die szene, als sie die kajüte des kapitäns bezog. er wollte durch die tür gehen, hatte aber seinen säbel quer auf den armen liegen. deswegen blieb er in der tür hängen und zwei flaschen whisky flogen von seinen armen auf den boden und zerschellten."
 
Argh! Ungeregelter Ausgang, das hatte ich übersehen.
Das ist natürlich ein absolutes NoGo.

Warum überhaupt ein DCDC Wandler von 5V auf 5V? Potentialtrennung?
 
joa..... :D
also ich muss sagen, mit belastetem DCDC ist die Messung eigentlich ziemlich genau :D

ja, wie gesagt, es war eigentlich der ADS1110 geplant.... da wärs wurscht gewesen, wenn der DCDC ungenau ist ...;)

naja... jetzt muss ich auf meiner Platine halt rummurksen, und ne z-Diode verbauen :cool: ^^

shit happens :D

Hi,



neee oder ? :p :banghead: und dann wunderst du dich über das Ergebnis?

Das ist so als wenn du den ADC von nem Trafo nur mit Gleichrichter und Elko da dran versorgst. Die Referenz ist dann auch genauso genau (+/-0,2V?) Wieviel Bit hat der ADC? Also nen 8Bit-ADC hätte bei der Beschaltung auch allemal gereicht und hätte Geld gespart :rolleyes: Mit ner Z-Diode als Referenzquelle wärst du da schon um Zehnerpotenzen genauer gewesen :eek:

Meine Vermutungen haben sich bestätigt.

Gruß
Dino

EDIT: mal im Datenblatt gestöbert ...
The ADS1100 is a precision, continuously self-calibrating Analog-to-Digital (A/D) converter with differential inputs and up to 16 bits of resolution in a small SOT23-6 package.

Wie heißt es bei Miss Marple in "Mörder Ahoi" wie dem einen die Whiskyflasche (oder Rum oder?) auf den Boden fällt ...
"Was für eine diabolische Verschwendung" :p
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)