Forum: Mikrocontroller und Digitale Elektronik AD Wandler wird zu heiß


von Asmin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo allerseits,

ich habe hier eine Schaltung mit Atmega8 und 16-Bit AD-Wandler 
(LTC1864). Das Problem ist, dass der AD-Wandler nicht richtig 
funktioniert. Der zieht etwa 100mA Strom, was eigentlich nicht sein 
sollte und wird auch heiß.
Über dem Widerstand R4, was an Signaleingang angeschlossen ist, fällt 
eine Spannung von 1,8 V bei Signal=3,4V. Die Signaleingänge sind doch 
normalerweise hochohmig und über R4 sollte doch keine Spannung abfallen 
oder? Ausserdem kommt der Takt auch nicht beim AD-Wandler an. Er wird 
zwar erzeugt, aber die ganze Spannung fällt am Widerstand dazwischen ab.
Den AD-Wandler habe ich schon ausgetauscht, aber das Ergebnis ist das 
selbe. Ist irgendwas an der Schaltung falsch? Oder könnte der AD-Wandler 
beim Löten kaputtgehen? Ist es auch möglich, dass man bei der 
Durchgangsprüfung zwischen den Pins den AD-Wandler zerschießen kann?
Die Platine habe ich noch nicht herstellen lassen, und habe alles per 
Hand gelötet. Aber hab alles 10-Mal überprüft und keinen Fehler 
gefunden. Ich danke euch im Voraus für eure Hilfe..

von Falk B. (falk)


Lesenswert?

@  Asmin (Gast)

>      Schaltung-SCH.png

Wie schafft man es, solche schlechten Schaltpläne zu exportieren?

>funktioniert. Der zieht etwa 100mA Strom, was eigentlich nicht sein
>sollte und wird auch heiß.

In der Tat.

>Über dem Widerstand R4, was an Signaleingang angeschlossen ist, fällt
>eine Spannung von 1,8 V bei Signal=3,4V.

Macht bei 15k gerade mal 120uA, nicht der Rede wert.

> Die Signaleingänge sind doch
>normalerweise hochohmig und über R4 sollte doch keine Spannung abfallen
>oder?

Doch, denn der Eingang eines ADC braucht zumindest häppchenweise Strom, 
wenn er nämlich den internen Sample und Hold Kondensator auflädt. Einen 
ADC treibt man meist direkt mit einem OPV. Aber deshalb zieht dein ADC 
keine 100mA.

> Ausserdem kommt der Takt auch nicht beim AD-Wandler an. Er wird
>zwar erzeugt, aber die ganze Spannung fällt am Widerstand dazwischen ab.

Klingt nach Kurzschluss oder nicht angeschlossener Versorgungsspannung. 
Platine GRÜNDLICH prüfen.

>Den AD-Wandler habe ich schon ausgetauscht, aber das Ergebnis ist das
>selbe. Ist irgendwas an der Schaltung falsch? Oder könnte der AD-Wandler
>beim Löten kaputtgehen?

Wenn mans total flasch mach schon. Aber meist sind die ICs recht robust.
IC verpolt?

> Ist es auch möglich, dass man bei der
>Durchgangsprüfung zwischen den Pins den AD-Wandler zerschießen kann?

Eher nicht, die Multimeter bringen nur 1 mA oder so.

MFG
Falk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Der Vref ist im Layout gar nicht angeschlossen... :-o

BTW: Mit diesem Layout (Masseführung) wirst du keine 16Bit Dynamik 
schaffen...

von Falk B. (falk)


Lesenswert?

@  Lothar Miller (lkmiller) Benutzerseite

>BTW: Mit diesem Layout (Masseführung) wirst du keine 16Bit Dynamik
>schaffen...

Erstmal muss er die Klimaerwärmung durch den ADC stoppen ;-)

SCNR
Falk

von Asmin (Gast)


Lesenswert?

Falk Brunner schrieb:
>> Die Signaleingänge sind doch
>>normalerweise hochohmig und über R4 sollte doch keine Spannung abfallen
>>oder?
>
> Doch, denn der Eingang eines ADC braucht zumindest häppchenweise Strom,
> wenn er nämlich den internen Sample und Hold Kondensator auflädt. Einen
> ADC treibt man meist direkt mit einem OPV. Aber deshalb zieht dein ADC
> keine 100mA.

Dann dürfte man also gar keinen Widerstand in Serie schalten. Denn wenn 
so eine große Spannung darüber abfällt, dann misst der ADC falsche 
Werte.

Lothar Miller schrieb:
> BTW: Mit diesem Layout (Masseführung) wirst du keine 16Bit Dynamik
> schaffen...

Habe da einiges gelesen, wie man es machen sollte, aber bin wohl nicht 
schlauer geworden :).. Wäre nett, wenn du ein paar Tips geben könntest, 
was man da besser machen könnte..

von Asmin (Gast)


Lesenswert?

Lothar Miller schrieb:
> Der Vref ist im Layout gar nicht angeschlossen... :-o

Doch, der ist angeschlossen. Nur man siehts nicht im Layout, weil die 
weiße Schrift ihn überdeckt :)

von Falk B. (falk)


Lesenswert?

@  Asmin (Gast)

>Dann dürfte man also gar keinen Widerstand in Serie schalten. Denn wenn
>so eine große Spannung darüber abfällt, dann misst der ADC falsche
>Werte.

Ja.

MfG
Falk

von Jörn P. (jonnyp)


Lesenswert?

Wenn ein Chip übermäßig Strom zieht und (noch) in Ordnung ist, dann 
liegt es nicht am Chip, sondern an der Beschaltung. Da hat es auch wenig 
Zweck einfach einen Neuen einzulöten, nach dem Motto: "Wolln doch mal 
sehen wer hier nachgibt" ;-)
Besser ist es das IC außerhalb zu prüfen, also mal nur die 
Versorgungsspannung ran und den Strom messen, dann weitere Pins 
beschalten.
Wenn dabei der Strom übermäßig steigt, dann kannst du den Chip zu den 
Akten legen. Ist der Chip in Ordnung, dann bleibt nur noch die 
Schaltung. Dabei auch mal die Pads gegeneinander auf Kurzschluss prüfen.
PS:Die Bilder sehen leider besch.... aus.

von Asmin (Gast)


Lesenswert?

Ich weiß, die Bilder sind sch.... Beim nächsten Mal google ich ein 
bisschen und machs richtig :)..
Also wenn ihr keine auffälligen Fehler in der Schaltung entdeckt (soweit 
man es erkennen kann :) ), dann sollte ich auf Jörg hören und den 
AD-Wandler ausserhalb der Schaltung erstmal testen.
Ein OPV vor dem Signaleingang werde ich dann auch einsetzen.. Wenn schon 
dann schon.
Könnt ihr mir vielleich ein paar Tips geben was die Masseführung angeht?

von Jobst M. (jobstens-de)


Lesenswert?

Also GND mit der DigitalMasse zu verbinden und Vref dann gegen AGND zu 
blocken ist hart. Ist R14 ganz sicher bestückt?
Zwischen Vcc und GND hast Du am ADC gar keinen blocker ...


Gruß

Jobst

von Asmin (Gast)


Lesenswert?

Jobst M. schrieb:
> Also GND mit der DigitalMasse zu verbinden und Vref dann gegen AGND zu
> blocken ist hart. Ist R14 ganz sicher bestückt?

Ja, R14 ist bestückt. Was bedeutet hier "hart"? Wie wärs denn richtig? 
Vielleich sollte ich auf getrennte GNDs verzichten und eine große 
gemeinsame GND machen??

Jobst M. schrieb:
> Zwischen Vcc und GND hast Du am ADC gar keinen blocker ..

Zwischen Vcc und GND  habe ich schon einen Blocker, nur nicht direkt am 
ADC. Gut, dann ergänze ich den auch noch :).

von Jobst M. (jobstens-de)


Lesenswert?

Asmin schrieb:
> Was bedeutet hier "hart"? Wie wärs denn richtig?

Den C direkt zwischen den Pins

> Vielleich sollte ich auf getrennte GNDs verzichten und eine große
> gemeinsame GND machen??

Hmmm ... nein, nicht unbedingt.


Gruß

Jobst

von Asmin (Gast)


Lesenswert?

Stimmt es mit den GNDs überhaupt? Ich meine, den GND von ADC habe ich 
mit DGND verbunden, und In- mit AGND. Dazu auch Vref gegen AGND.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich meine, den GND von ADC habe ich
> mit DGND verbunden, und In- mit AGND. Dazu auch Vref gegen AGND.
Das raubt dir nur die unteren 3 oder 4 Bits von deinem 16-Bit-Wandler...
Es macht aber nicht den Chip heiß.

von Jobst M. (jobstens-de)


Lesenswert?

Asmin schrieb:
> Könnt ihr mir vielleich ein paar Tips geben was die Masseführung angeht?

Da bin ich gerade ...

Lothar Miller schrieb:
> Es macht aber nicht den Chip heiß.

Da sind wir schon dran vorbei ...


Gruß

Jobst

von Jobst M. (jobstens-de)


Lesenswert?

Asmin schrieb:
> Ich meine, den GND von ADC habe ich mit DGND verbunden,

Damit ist GND von Vref = DGND ...

> und In- mit AGND. Dazu auch Vref gegen AGND.

Also solltest Du entweder Vref auch gegen DGND blocken oder GND vom 
Wandler auch an AGND anschliessen. Oder -und sowieso vorzuziehen- Den 
Blocker direkt am IC legen.


Gruß

Jobst

von Jörn P. (jonnyp)


Lesenswert?

Die Bilder kannst du doch direkt von eagle aus exportieren, wieso sehen 
die so besch... aus,  aber die ganze Schaltung ist auch sehr "unruhig" 
gezeichnet, so nach dem Motto:"Warum dann eine gerade Linie, wenn's auch 
3 Knicks mehr sein dürfen" ;-)
Für einen 16-Bit Wandler nimmt man als Ref auch nicht die 
Versorgungsspannung. Wenn schon getrennte GNDs, dann sollten die direkt 
beim Wandler zusammen geknotet werden. Aber bevor ich hier einen 
Schreibkrampf kriege, kannst du ja mal die Schaltung posten. Ich könnte 
dann einerseits mit eagle nach Fehlern schnüffeln und dir andererseits 
mal einen Schaltungsvorschlag machen.

von Asmin (Gast)


Lesenswert?

Jörn Paschedag schrieb:
> Die Bilder kannst du doch direkt von eagle aus exportieren, wieso sehen
> die so besch... aus

Hab die Schaltung zuerst als pdf gedruckt und daraus png.. Wusste nicht 
dass es direkt aus Eagle geht..

Jörn Paschedag schrieb:
> Aber bevor ich hier einen
> Schreibkrampf kriege, kannst du ja mal die Schaltung posten. Ich könnte
> dann einerseits mit eagle nach Fehlern schnüffeln und dir andererseits
> mal einen Schaltungsvorschlag machen.

Das wäre echt super.. Die Schaltung kann ich erst morgen posten. Hab sie 
leider nicht hier..

Ihr habt wirklich sehr viel Geduld mit mir, danke. Ich habe wohl noch 
einen sehr langen Weg vor mir und habe viel zu lernen, was Elektronik 
und µC angeht :).

von Jörn P. (jonnyp)


Lesenswert?

Alle haben mal bei Null angefangen ;-)

von Asmin (Gast)


Angehängte Dateien:

Lesenswert?

Jörn Paschedag schrieb:
> Aber bevor ich hier einen
>
> Schreibkrampf kriege, kannst du ja mal die Schaltung posten. Ich könnte
>
> dann einerseits mit eagle nach Fehlern schnüffeln und dir andererseits
>
> mal einen Schaltungsvorschlag machen.

Anbei die Schaltung und das Layout :)

von hokuskrokus (Gast)


Lesenswert?

ist pin 4 eigentlich verbunden? Im ersten Schaltplan ist der nicht 
sichtbar.
uPower heisst das Ding...u
power ''heizt'' nicht ;-)

von Asmin (Gast)


Lesenswert?

hokuskrokus schrieb:
> ist pin 4 eigentlich verbunden? Im ersten Schaltplan ist der nicht
>
> sichtbar.

Ja, der ist verbunden.

von Asmin (Gast)


Lesenswert?

Falk Brunner schrieb:
> @  Asmin (Gast)
>
>
>
>>Dann dürfte man also gar keinen Widerstand in Serie schalten. Denn wenn
>
>>so eine große Spannung darüber abfällt, dann misst der ADC falsche
>
>>Werte.
>
>
>
> Ja.


In dem Datenblatt von dem ADC ist eine Beispielschaltung und dort ist 
ebenfalls ein serieller Widerstand (510 Ohm) zum Signaleingang. Darüber 
würde demnach dann auch Spannung abfallen und das ganze verfälschen.
Vielleicht ist mein serieller Widerstand von 15k zu einfach zu groß, 
wenn man Auf- und Entladezeiten eines Kondensator berücksichtigt. Und 
das bei hoher Abtastrate.

von Jörn P. (jonnyp)


Angehängte Dateien:

Lesenswert?

So, ich hab deine Schaltung mal ein bischen "begradigt" ;-)
Hab gesehen, das du gegenüber dem Bild im ersten post einen anderen 
Wandler benutzt. Wie dem auch sei, bei allen Wandlern hängt die 
Genauigkeit von der Referenzspannung ab (von was denn sonst). Leider 
brauchen die meisten Refs für 5V eine höhere Eingangspannung (8-10V). 
Deshalb würde ich mal nach Wandlern mit interner 4,096V Referens schauen

von Asmin (Gast)


Lesenswert?

Danke für deine Unterstützung Jörg.

Jörn Paschedag schrieb:
> Hab gesehen, das du gegenüber dem Bild im ersten post einen anderen
>
> Wandler benutzt.

Hab das Layout zuerst für einen 12-Bit AD-Wandler gemacht. Dann 
entschied ich mich für einen 16-Bit-Wandler mit dem selben Pinout.
Auf jeden Fall ist mein Problem immer noch nicht gelöst. An der 
Schaltung liegt es wohl nicht. Also ist etwas beim Löten schief 
gegangen, da ich noch keine Platine entwickeln ließ, sondern erstmal 
alles per Hand mit Kabeln gelötet habe :).

Mir ist aufgefallen, dass der A/D-Wandler den hohen Strom erst zieht, 
wenn ich In- auf GND lege.
Naja.. Das Leben geht weiter...

von Jörn P. (jonnyp)


Lesenswert?

Welchen In? + oder - oder ist das egal? Ist es derselbe gnd wie pin 4?
Und was ist dann noch angeschlossen? Und welches ist jetzt konkret dein 
Wandler?

von Asmin (Gast)


Lesenswert?

Jörn Paschedag schrieb:
> Welchen In? + oder - oder ist das egal? Ist es derselbe gnd wie pin 4?
>
> Und was ist dann noch angeschlossen? Und welches ist jetzt konkret dein
>
> Wandler?

Ich verwende den AD-Wandler LTC1864.
Hab das ganze nochmal genauer getestet. Wenn ich nur VCC und GND 
anschließe (wobei IN- mit GND (Pin4) kurzgeschlossen ist), zieht die 
Schaltung 2 mA mehr. Sobald ich Vref anschließe, zieht die Schaltung um 
100 mA mehr. Wenn ich Vref nicht anschließe und nur In+ anschließe, 
zieht die Schaltung um 50 mA mehr. Vref und In+ angeschlossen ebenfalls 
um 100 mA mehr.

Ich glaube, hier ist fälschlicherweise der Eindruck entstanden, dass der 
AD-Wandler noch richtig funktioniert. Ich gebe das ADC-Ergebnis über 
UART aus und erhalten immer 5000 mV, obwohl die anliegende 
Signalspannung weit darunter ist.
Ob ich aber den ADC richtig anspreche, ist auch fraglich.

Hier der Code:
void SPI_MasterReceive(uint16_t Result)
{

  unsigned char tempADC;
  Result = 0;

  PORTB |= (1<<CS);      // Convert

  for(int wait=0; wait<200; wait++) {}  // wait for Conversion

  PORTB &= ~(1<<CS);      // sample
  SPDR = 0xFF;      // generate CLK

  while(!(SPSR & (1<<SPIF)));     // wait for reception complete

  tempADC = SPDR;

  Result = Result + tempADC;
  Result = Result<<8;


  SPDR = 0xFF;      // generate CLK
  while(!(SPSR & (1<<SPIF)));
  tempADC = SPDR;
  Result = Result+tempADC;

}

von Realist (Gast)


Lesenswert?

1.) Betriebsspannung sicher 5V geregelte Gleichspannung?

2.) Woher kommt die Versorgungsspannung (Welche Art von Netzteil?)

3.) VCC und GND ganz sicher richtig gepolt?

4.) GND ganz sicher am GND-Pind des ADC angeschlossen?

OK, könnte man auch aus dem Layout rauskriegen, habe gerade aber keine 
Zeit.

von Asmin (Gast)


Lesenswert?

Realist schrieb:
> 1.) Betriebsspannung sicher 5V geregelte Gleichspannung?

Hmmm... :D.. Also es handelt sich um ein altes Labornetzgerät. EA-3012 
S.
Inzwischen habe ich ein Regulator dazwischen. Den LP2950, mit dem selben 
Ergebnis. Am Anfang hatte ich den LP2950 nicht. Habe Netzgerät 
angemacht, gewünschte Spannung eingestellt, mit Multimeter kontrolliert 
und dann an die Schaltung angeschlossen. Kann sein, dass ich danach das 
Labornetzgerät einfach aus- und angemacht habe.

Realist schrieb:
> 3.) VCC und GND ganz sicher richtig gepolt?

Ja.

Realist schrieb:
> 4.) GND ganz sicher am GND-Pind des ADC angeschlossen?

Ja.

von Asmin (Gast)


Angehängte Dateien:

Lesenswert?

Anbei die derzeitige Endversion der Schaltung und des Layouts.
Vielleicht sollte ich die Platine erstmal herstellen lassen und erst 
dann das ganze testen. Wer weiß, was bei der ganzen Löterei mit Kabeln 
schiefgegangen ist.

von Simon K. (simon) Benutzerseite


Lesenswert?

Vielleicht hat das ja hiermit was zu tun:

----
The reference input of the LTC1865 SO-8 package is
internally tied to VCC. The span of the A/D converter is
therefore equal to VCC. The voltage on the reference
input of the LTC1865 MSOP package defi nes the span
of the A/D converter. The LTC1865 MSOP package can
operate with reference voltages from 1V to VCC.
----
Seite 14 im Datenblatt "Reference Input".

Soweit ich weiß hast du ja den Chip in SOIC8 Variante.

EDIT: Ah ich seh schon, du hast den LTC1864.

von Asmin (Gast)


Lesenswert?

Ich habe inzwischen einen weiteren LTC1864 für sich getestet.. Nur GND, 
Vref und VCC angeschlossen. Alles sauber gelötet. Das Ding zieht auf 
Anhieb 100 mA.
Ich werde auf einen anderen AD-Wandler umsteigen, bevor ich hier 
durchdrehe :D..
Und auch lieber 12-Bit weil die 16-Bits schon teuer sind. Ausserdem 
würden mir 2mV Genauigkeit auch reichen..
Nie wieder LTC1864, auch wenn das Problem sicherlich an mir lag...

von stephan (Gast)


Lesenswert?

max186 mit Vref von 4,096V kann ich sehr empfehlen.
Seht stabile Ergebnisse ohne Mittelwertbildung.

von Axel K. (axel)


Angehängte Dateien:

Lesenswert?

Ich benutze auch einen LTC1864 für mein aktuelles Projekt - bzw warte 
ich noch auf den)
Zu dem Thema mit dem Serienwiderstand - im Datenblatt ist wie schon 
gesagt ein 510ohm in Serie an IN+. Ich habe bei mir jetzt 140ohm in 
Reihe, da ich noch eine Z Diode 5.1 vor dem IN+ habe (für den worst 
case), denn das Signal kommt vom OPV und der ist mit +-8V versorgt.

Ich hoffe mal bei mir wirds laufen :S

von Jörn P. (jonnyp)


Angehängte Dateien:

Lesenswert?

Lt. Datenblatt liegt die max. Verlustleistung bei 400mW, d.h. 80mA bei 
5V.
Mit dem conversion pin (5) auf hi sollte er aber nach der conversion in 
dn Schnarchmodus gehen. Vielleicht kanst du das ja noch mal messen.
In deiner neuen Schaltung mit dem MCP606 ist ein Layoutfehler. Unter dem 
IC liegt die Leitung N$37 vom Pin 3 zum Pin 1 von R2 auf dem Toplayer 
zusammen mit dem agnd, der zwischen Pin 5 und 6 herunter kommt.

von Asmin (Gast)


Lesenswert?

Jörn Paschedag schrieb:
> Unter dem
>
> IC liegt die Leitung N$37 vom Pin 3 zum Pin 1 von R2 auf dem Toplayer
>
> zusammen mit dem agnd, der zwischen Pin 5 und 6 herunter kommt.

Ups.. Danke.. So ein blöder Fehler wäre mir dann echt zuviel..

Jörn Paschedag schrieb:
> Mit dem conversion pin (5) auf hi sollte er aber nach der conversion in
>
> dn Schnarchmodus gehen. Vielleicht kanst du das ja noch mal messen.

Habs getestet. Keine Veränderung.
Der Takt kommt ja auch am Wandler gar nicht an, bzw. der Takteingang ist 
anscheinend intern im Wandler mit GND verbunden oder durchgeschmolzen 
oder was weiß ich was...

von Jörn P. (jonnyp)


Lesenswert?

Dann isser wohl doch im A....

von Asmin (Gast)


Lesenswert?

Axel Krüger schrieb:
> Ich benutze auch einen LTC1864 für mein aktuelles Projekt - bzw warte
>
> ich noch auf den)

Kannst ja dann hier posten, ob bei dir alles problemlos geklappt hat.

stephan schrieb:
> max186 mit Vref von 4,096V kann ich sehr empfehlen.

8-facher.. Und sehr teuer.. Ich nehem den ADS7816. Hat die selbe 
Pin-Konfiguration wie LTC1864 und ist billig.. Die Schaltung 
funktioniert ja sowieso nicht. Dann sollten wenigstens die Bauteile 
billig sein.. :D

von Asmin (Gast)


Lesenswert?

Jörn Paschedag schrieb:
> Dann isser wohl doch im A....

Ja schon. Aber inzwischen habe ich fünf Stück getestet. 3 davon getrennt 
für sich. Alle haben das selbe Problem.
Vielleicht hat man mir falsche Bausteine geschickt. Muss ich gleich 
überprüfen.

von Falk B. (falk)


Lesenswert?

Kann es ein, dass du Pin 1 verwechselt hast und die Dinger um 180 Grad 
verdreht anschliesst?

von Jörn P. (jonnyp)


Lesenswert?

Ahem, sag mal, schaust du nicht was auf den Dingern draufsteht? ;-)
Wenn ich mich jedes mal auf den Lieferschein verlassen hätte...
Der falk hat da schon einen Punkt, manchmal braucht man ein 
Elektronen-Mikroskop um die abgeschrägte Seite oder den Punkt zu 
erkennen.
Sowas fördert den Umsatz...

von Asmin (Gast)


Lesenswert?

Falk Brunner schrieb:
> Kann es ein, dass du Pin 1 verwechselt hast und die Dinger um 180 Grad
> verdreht anschliesst?

Nein. Die abgeschrägte Seite ist klar zu erkennen.

Jörn Paschedag schrieb:
> Ahem, sag mal, schaust du nicht was auf den Dingern draufsteht?

Nein, tue ich nicht :).. Die Schrift ist zu klein und ich hatte keine 
Lupe :D. Naja, morgen besorge ich mir eine Lupe.

von Asmin (Gast)


Lesenswert?

Also Leute. Ich will nichts überstürzen aber anscheinend sind die Teile 
OPVs vom STMicroelectronics, und zwar der Typ TS922. Auf dem IC ist zu 
lesen: 922AI
Dann drunter das Logo ST gefolgt von der Bezeichnung EZ941.
Laut Google und Datenblatt von TS922 sind die Dinger keine ADCs.

von Falk B. (falk)


Lesenswert?

Na dann schliess sie doch mal gemäss OPV Datenblatt an eine 
Spannungsquelle und miss den Strom.

MFG
Falk

von Jörn P. (jonnyp)


Lesenswert?

Da hättste die 5V (Referenspsannung) immer schön auf den Ausgang des 
ersten OPAs geknallt. Das fördert natürlich die Heizleistung. Vielleicht 
haben es trotzdem einige überlebt ;-)
@falk
Es ist ja noch nicht bestätigt, aber du kannst immer noch mit den alten 
Kamellen kommen (Pins vertauscht).

von Asmin (Gast)


Lesenswert?

Hab einen Baustein, den ich schon als ADC beschaltet hatte, als OPV 
beschaltet. Zwar zieht der dann nur 3mA (Ausgang unbelastet), 
funktioniert aber als OPV auch nicht. An den Ausgängen messe ich immer 
5V, egal welche Verstärkung ich einstelle( bei 2,5V auf IN+ und GND auf 
IN-).
Leider waren schon alle Bauteile als ADC beschaltet. Vielleicht sind die 
kaputt, oder sie sind keine OPVs.
Ich werde bei RS anrufen und fragen, ob da was durcheinander gekommen 
sein könnte.

von Jörn P. (jonnyp)


Lesenswert?

Wenn die Versorgungsspannung 5V ist, dann ist das normal. Der Op ist mit 
open loop und der Ausgang rennt gegen die Uv. Tausch mal die Eingänge 
(2,5V auf in- und gnd auf in+), dann müßte der Ausgang gegen gnd laufen. 
Am besten ist natürlich eine echte Beschaltung mit Verstärkung X und 
Eingang Y wo am Ausgang dann auch Z rauskommt.
Wenn der Fehler bein Lieferanten war, dürfte der Gewinn bei dem kleinen 
Preisunterschied auch nicht schlecht sein ;-)

von Asmin (Gast)


Lesenswert?

Den OPV habe ich nicht als Open Loop verschaltet, sondern hatte ein 
Feedback auf In+ mit Widerständen 15k und 10k, Verstärkung 1,5.

von Asmin (Gast)


Lesenswert?

Ich verwende jetzt den 12-Bit A/D-Wandler LTC1285 und gebe die 
empfangenen Bytes über UART aus. Irgenwie lese ich immer nur 0xDFFF.
Hier ist der Code. Wäre nett, wenn ich mal drüber gucken könntet.

void SPI_Master_ReceiveInit()
{
  // Set directions
  DDRB |= (1<<CS) | (1<<SCK)|(1<<MOSI);
  DDRB &= ~(1<<MISO);

  // Init pins
//  PORTB |= (1<<SCK);
  PORTB |= (1<<CS);

  /* Clock High in idle mode - Mode 3*/
  SPCR |= (1<<CPOL);
  SPCR |= (1<<CPHA);

  /* Enable SPI, Master, set clock rate FCK/128 */
  SPCR |= (1<<MSTR) | (1<<SPE);
  SPCR |= (1<<SPR1) | (1<<SPR0);
  SPSR &= ~(1<<SPI2X);
}

void SPI_MasterReceive(uint16_t Result)
{
  //cli();

  Result = 0;
  SPDR = 0;      // generate CLK
  PORTB &= ~(1<<CS);    // Convert
  _delay_us(40);    // Wait for Conversion

  while(!(SPSR & (1<<SPIF)));    // wait for reception complete

  tempADC1 = SPDR;

  SPDR = 0;      // generate CLK
  while(!(SPSR & (1<<SPIF)));
  tempADC0 = SPDR;

  PORTB |= (1<<CS);    //Stop Converting

  uart_putc(tempADC1);
  uart_putc(tempADC0);

  uart_putc(0xAA);

  //sei();
}

von Asmin (Gast)


Lesenswert?

Vref war nicht angelötet.. 100x mal andere Pins kontrolliert, und den 
ich eigentlich als erstes kontrollieren sollte, habe ich nicht.. Zum 
verrückt werden..

von Uwe (Gast)


Lesenswert?

Hi!
>Den OPV habe ich nicht als Open Loop verschaltet, sondern hatte ein
>Feedback auf In+

Gegenkopplung gehört an "In-" !

von Asmin (Gast)


Lesenswert?

Uwe schrieb:
> Gegenkopplung gehört an "In-" !

Ups.. Ok, das erklärt den 5V-Ausgang...

Naja, inzwischen benutze ich ja einen richtigen A/D-Wandler.. Jetzt habe 
ich aber das Problem, dass wenn das Eingangssignal sich der Hälfte der 
Referenzspannung annähert, mein Ausgangscode plötzlich kippt auf nahe 0 
V.
Naja, auf jeden FAll bin ich dran.. Schauen wir mal.. :)

von Falk B. (falk)


Lesenswert?

@Asmin (Gast)

>Ups.. Ok, das erklärt den 5V-Ausgang...

Vielleicht solltes du mal kleinere Brötchen backen. Wer schon an so 
einen einfachen ADC mit 8 Pins und EINFACHER Ansteuerung ins Schleudern 
kommt, . . .

>Naja, inzwischen benutze ich ja einen richtigen A/D-Wandler..

Der LTC1864 ist auch ein richtiger.

>Jetzt habe
>ich aber das Problem, dass wenn das Eingangssignal sich der Hälfte der
>Referenzspannung annähert, mein Ausgangscode plötzlich kippt auf nahe 0
>V.

Hmm, ich würde mal wetten, dass da das Zweierkomplement im Spiel ist . . 
.

http://de.wikipedia.org/wiki/Zweierkomplement

Und ich hoffe du weißt, dass der LTC1285 einen differentiellen Eingang 
hat . . .

MFG
Falk

von Axel K. (axel)


Lesenswert?

So heute hab ich meinen LTC1864 SO8 abgeholt und fix eingelötet.

Am InputPin habe ich zu Testzwecken ein Poti zw. 0 und 5 Volt - das 
Ergebnis gebe ich einfach so wie es ist auf 2 7Segment anzeigen aus -> 
natürlich nur Müll drauf zusehen, aber hauptsache ist ja das es erstmal 
funzt :)

Aber Schande über mein Haupt - ich habe 3h gesessen und nix hat gefunzt. 
Ursache -> cbr r16, 2 nicht anstatt cbr r16, 0b00000100   ^^

SO8 gelötet:
http://www.imgbox.de/users/eisman/15032010942.jpg

http://www.imgbox.de/users/eisman/15032010943.jpg


Hier meine Codeausschnitte mit großzügigen Timings:

1
;SPI Schnittstelle konfigurieren (Ein- Ausgänge sind bereits entsprechend geschaltet!)
2
    ldi r16, (1 << SPE) | (1 << MSTR) | (1 << CPOL) | (1 <  CPHA) 
3
    ;Bit1/0 = 0 für max. Takt (8Mhz/4)
4
    out SPCR, r16


1
;UNTERPROGRAMME---------------------------------------------------------------------
2
3
getADC: ;Dieses Unterprogramm veranlasst AD-Wandlung und speichert 16Bit Ergebnis in r21(HiByte) und r20(LoByte)
4
5
    push r16
6
    push r17
7
8
    ;start AD Conversion (PORTB2 ist mit CONV des LTC1864 verbunden)
9
    in r16, PORTB
10
    sbr r16, 0b00000100
11
    out PORTB, r16
12
13
    ;3,375µS Wartezeit (max. conv. time = 3,2µS @ LTC1864
14
    ;1 Takt @ 8MHz = 0,125µS   -> benötigte Takte = 27
15
    ldi r17, 9     ;1 Takt
16
Schleife4:
17
    dec r17      ;1 Takt
18
    brne Schleife4  ;2 Takte bei Verzweigung
19
20
    ;PORTB2 wieder auf LOW setzen (A logic low on this input enables the SDO pin allowing the data to be shifted out.)
21
    cbr r16, 0b00000100
22
    out PORTB, r16
23
24
    ;Delay Time, CONV auf LOW to SDO Enabled (min 60ns)
25
    nop  ;1 Takt = 125ns
26
27
    ;Den Empfang des HIBytes starten (start Ausgabe des SCK etc.)
28
    out SPDR, r16   ;beliebiges Byte in das SPI Datenregister schreiben zum Starten
29
30
    ;da SPIE nicht gesetzt ist von Hand SPIF im Register SPSR abfragen
31
    ;1 Byte vollständig empfangen?
32
Schleife5:  sbis SPSR, SPIF
33
      rjmp Schleife5  ;Warte auf Ende der Übertragung
34
35
    ;HiByte von Empfangspuffer in Register schreiben/einlesen
36
    in r21, SPDR
37
  
38
    ;Den Empfang des LOWBytes starten (start Ausgabe des SCK etc.)
39
    out SPDR, r16   ;beliebiges Byte in das SPI Datenregister schreiben zum Starten
40
41
    ;da SPIE nicht gesetzt ist von Hand SPIF im Register SPSR abfragen
42
    ;1 Byte vollständig empfangen?
43
Schleife6:  sbis SPSR, SPIF
44
      rjmp Schleife6  ;Warte auf Ende der Übertragung
45
46
    ;HiByte von Empfangspuffer in Register schreiben/einlesen
47
    in r20, SPDR
48
    
49
50
51
52
53
    pop r17
54
    pop r16
55
56
    ret

von Asmin (Gast)


Lesenswert?

Falk Brunner schrieb:
> Vielleicht solltes du mal kleinere Brötchen backen. Wer schon an so
>
> einen einfachen ADC mit 8 Pins und EINFACHER Ansteuerung ins Schleudern
>
> kommt, . . .

Nach deiner Beschreibung ist das hier doch anscheinend ein kleines 
Brötchen mit so einem einfachen ADC und einfacher Ansteuerung.
Auf jeden Fall möchte irgendwann so gut werden wie du. Das wäre toll. 
Falk Brunner 2.

Falk Brunner schrieb:
> Der LTC1864 ist auch ein richtiger.

Ja, ist er. Aber mir wurde ein falscher Baustein geliefert.

Falk Brunner schrieb:
> Und ich hoffe du weißt, dass der LTC1285 einen differentiellen Eingang
>
> hat . . .

Eigentlich habe ich darauf nicht geachtet. Nur darauf, dass es im 
Datenblatt eine SChaltung gab, bei der In- auf Masse gelegt war. Mit 
LTC1285 spiele ich nur bisschen rum. Richtige Schaltung wird mit LTC1864 
gebaut. Im Datenblatt von LTC1864 steht "True Differential Inputs", und 
da habe ich In- auch auf GND gelegt. Das macht mir hoffentlich keine 
großen Schwierigkeiten (Und, ja, mit Hoffen will ich anscheinend 
weiterkommen).

von Falk B. (falk)


Lesenswert?

@  Asmin (Gast)

>Auf jeden Fall möchte irgendwann so gut werden wie du. Das wäre toll.
>Falk Brunner 2.

Aber es bleibt eine Kopie, egal wie gut das Original ist ;-)

>da habe ich In- auch auf GND gelegt. Das macht mir hoffentlich keine
>großen Schwierigkeiten

Laut Datenblatt ist das OK.

MFG
Falk

von Axel K. (axel)


Angehängte Dateien:

Lesenswert?

So habs jetzt mal in BCD konvertiert und die ersten 4 dez. Zahlen auf 
den Segmenten ausgegeben.

@Asmin: Bist du schon weitergekommen? Auf den ersten Blick sieht dein 
Code ja genauso aus wie meiner.

von Asmin (Gast)


Lesenswert?

Axel Krüger schrieb:
> @Asmin: Bist du schon weitergekommen? Auf den ersten Blick sieht dein
>
> Code ja genauso aus wie meiner.

Ich habe den A/D-Wanlder LTC1864 neu bestellt. Die sind aber noch nicht 
da. Die anderen, mit denen ich die Probleme hatte, waren keine ADCs. 
Falsche Lieferung. Passiert nur mir.
Habe mit LTC1285 (12-Bit) experimentiert. Dafür war auch der Code. 
Funktioniert alles inzwischen. Dank der tollen Unterstützung :).
Es scheint so, als würden 12-Bit auch ausreichen. Und das ohne 
Massefläche, einfach losgelötet :). Ich war halt nur ein bisschen
Bit-gierig :D.. Das ganze ist auch neu für mich.. Kommt alles langsam 
:)..

von Axel K. (axel)


Lesenswert?

Ich hab jetzt noch etwas mit paar Kondis rumgespielt

- Ich nutze eine gemeinsame Masse
- 5,00V VCC/Vref ausm LM317 (Nutze grundsätzlich immer LM317 für 
spannungsversorgung)

bei 1µF Tantal ca. 1 cm entfernt vom VCC/VREF vom LTC haben die ersten 
drei vier Bits geschwankt - erst ein 2.er 1µF 5mm entfernt von den 
beiden Pins brachte erfolg und jetzt schwankt nur noch das LSB
(Die schreiben beim LTC1864 ja auch MINDESTENS 1 µF). Zur Sicherheit hab 
ich noch nen 100nF elko daneben gelötet.


Wenn jetzt aber mein Signal nicht mehr "aus Poti" kommt sondern aus 
einem LM358N OPV dann kann ich die Genauigkeit sowieso vergessen ...

von Asmin (Gast)


Lesenswert?

Habe den richtigen LTC1864 erhalten und damit die ganze Schaltung 
gelötet. Funktioniert alles soweit. Eine Massefläche habe ich mit dickem 
Lötzinn gebildet (nur AGND). Keine Ahnung, ob es was gebracht hat. Auf 
jeden Fall sind die Messwerte nach Mittelung über einige Werte 
akzeptabel. Die Abweichung steigt von 0 bis 5 Volt konstant bis 7 mV. 
Könnte das zwar rechnerisch ausgleichen, aber erst sollte ich ja gucken, 
wie genau das ganze bei professionell hergestellter Platine ist.
Ich möchte Euch allen danken, dass Ihr so hilfsbereit wart. Echt Toll.

Gruss

Asmin

von faustian (Gast)


Lesenswert?

"Wie schafft man es, solche schlechten Schaltpläne zu exportieren?"

Aus eigener Erfahrung: Wenn das einzige wesentliche Ziel ist, moeglichst 
schnell eine Netzliste zu haben, kann einem zumindest als Amateur die 
Aesthetik des Schaltplans manchmal unglaublich latte sein :)

von Jörn P. (jonnyp)


Lesenswert?

faustian schrieb:
> "Wie schafft man es, solche schlechten Schaltpläne zu exportieren?"
>
> Aus eigener Erfahrung: Wenn das einzige wesentliche Ziel ist, moeglichst
> schnell eine Netzliste zu haben, kann einem zumindest als Amateur die
> Aesthetik des Schaltplans manchmal unglaublich latte sein :)

Morgen Meister, auch schon aufgewacht?? Der Käs ist seit 3 Wochen 
gegessen.
Nach meiner Erfahrung:Wenn man schon nichts beitragen kann, dann muss 
man sich wenigstens wichtig machen.

von Asmin (Gast)


Lesenswert?

faustian schrieb:
> "Wie schafft man es, solche schlechten Schaltpläne zu exportieren?"
>
>
>
> Aus eigener Erfahrung: Wenn das einzige wesentliche Ziel ist, moeglichst
>
> schnell eine Netzliste zu haben, kann einem zumindest als Amateur die
>
> Aesthetik des Schaltplans manchmal unglaublich latte sein :)

Bei der (rhetorischen) Frage gings eigentlich darum, dass der Schalplan 
einfach in schlechter Qualität exportiert wurde und nicht darum, dass 
die Aesthetik des Schalplans an sich schlecht ist ;) (Auch wenn sie es 
ist.)

Auf jeden Fall kann ich die Frage jetzt beantworten: ich wusste nichts 
von der Exportfunktion von Eagle. Hatte es eilig und habs dann so 
gemacht, wie ich es kannte: Schalplan als pdf gedruckt, mit IrfanView 
umgewandelt in png.
Beim nächsten Mal mache ich es richtig. So kann sich jeder auf das 
Wesentliche konzentrieren :)

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
Noch kein Account? Hier anmelden.