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..
@ 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
Der Vref ist im Layout gar nicht angeschlossen... :-o BTW: Mit diesem Layout (Masseführung) wirst du keine 16Bit Dynamik schaffen...
@ 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
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..
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 :)
@ 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
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.
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?
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
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 :).
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
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.
> 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ß.
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
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
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.
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 :).
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 :)
ist pin 4 eigentlich verbunden? Im ersten Schaltplan ist der nicht sichtbar. uPower heisst das Ding...u power ''heizt'' nicht ;-)
hokuskrokus schrieb: > ist pin 4 eigentlich verbunden? Im ersten Schaltplan ist der nicht > > sichtbar. Ja, der ist verbunden.
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.
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
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...
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?
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; }
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.
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.
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.
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.
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...
max186 mit Vref von 4,096V kann ich sehr empfehlen. Seht stabile Ergebnisse ohne Mittelwertbildung.
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
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.
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...
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
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.
Kann es ein, dass du Pin 1 verwechselt hast und die Dinger um 180 Grad verdreht anschliesst?
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...
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.
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.
Na dann schliess sie doch mal gemäss OPV Datenblatt an eine Spannungsquelle und miss den Strom. MFG Falk
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).
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.
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 ;-)
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.
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(); }
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..
Hi! >Den OPV habe ich nicht als Open Loop verschaltet, sondern hatte ein >Feedback auf In+ Gegenkopplung gehört an "In-" !
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.. :)
@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
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 |
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).
@ 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
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.
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 :)..
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 ...
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
"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 :)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.