Hi ich finde meinen Fehler im Aufbau nicht.
Ich habe einen atmega328p als Arduino UNO Board. Von dem nutze ich den
ADC, was auch soweit funktioniert (habe ich mit einem verstellbaren
Netzteil geprüft). Desweiteren habe ich einen invertierenden OP, der
Funktioniert auch so wie er soll (mit einem Oszi getestet).
Nun mein Problem, wenn ich den OP an den Arduino anschließe bricht der
ein.
Danke im Vorraus für die Hilfe.
Paul schrieb:> Nun mein Problem, wenn ich den OP an den Arduino anschließe bricht der> ein.
Gehts zur Not auch etwas präziser? Was bricht ein? Schaltplan zeigen
würde auch helfen...
Paul schrieb:> Nun mein Problem, wenn ich den OP an den Arduino anschließe bricht der> ein.
Versucht der invertierende OPV eine negative Spannung an den ADC
anzulegen? Das wird nicht gehen: wenn die Spannung ein paar hundert mV
ins negative geht beginnt die ESD-Diode im ADC-Eingang zu leiten und die
Spannung zu begrenzen (auf ca. -0,7V)
Achim S. schrieb:> Versucht der invertierende OPV eine negative Spannung an den ADC> anzulegen? Das wird nicht gehen:
Das Problem hatte ich auch mal in einer Schaltung.
OP hat trotz Begrenzerdioden (negativ Spannung) -0.2 V an den internen
ADC geliefert - ZACK, da war schon das Problem:
- Übersprechen auf andere ADC
- Werte nicht mehr nachvollziehbar
Die internen ADC vom µC mögen keine negativ Spannung!
Das ist der Schaltplan. Ich habe mittlerweile einen anderen OP drinnen,
den TS1851.
Negative Spannungen sollte es nicht geben da ich einen Offset von Vcc/2
(2,5V) habe und ich den OP von V+ 5V bis V- 0V betreibe.
Der OP bricht ein der Arduino läuft weiter.
Du kannst dem OP am Ausgang auch noch einen 1k-Serienwiderstand
spendieren. Wenn du die Feedbackleitung dahinter legst, wird der
Spannungsabfall über den 1k ausgeregelt. aber etwaige Ströme auf ein
paar Milliampere begrenzt und es arbeiten nicht zwei Treiberstufen
gegeneinander.
Die nächste spannende Frage wäre dann: Hast du den Pin vom Arduino aus
Versehen als Ausgang definiert und auf Low geschaltet?
> Der OP bricht ein>> Meinst du damit, dass seine Ausgangsspannung absackt? Auf welchen Wert?
Wo bricht der OP ein? Nach was könnte er suchen? Benutzt er dazu
Werkzeug oder gar einen Verstärker?
MfG
Der Pin ist im uC weder als Eingang noch als Ausgang deklariert.
Der OP bricht auf 0-0,5V zusammen sobald ich ihn an dem uC anschließe.
Er bricht am Ausgang zusammen.
Wenn Du zwei Teilsysteme hast, die jedes für sich funktionieren, wie sie
sollen aber zusammen nicht, dann liegt es wahrscheinlich an der Art und
Weise, wie sie miteinander verbunden sind (dazu zählt auch die genaue!
Art und weise der Spannungsversorgung(en) der beiden Teilsysteme).
Poste also ein Blockschaltbild (1), das die Zusammenschaltung sowie die
Spannungsversorgung zeigt.
Evtl. ein Foto vom Aufbau (2).
Denn nicht selten besteht der Fehler in Abweichungen zwischen (1) und
(2).
Irgendwann ist C1 Mal voll.
Schließ den kurz, nimm ein statisches signal, dass 3V am Ausgang ergibt
und messe mit Multimeter einige Stellen vor und nach Abschluss an ADC.
Paul schrieb:> Der Pin ist im uC weder als Eingang noch als Ausgang deklariert.
Das geht nicht!
Zumindest beim AVR gibts nur die beiden Möglichkeiten.
(mal abgesehen von irgendwelchen Sonderfunktionen)
Paul schrieb:> Er bricht am Ausgang zusammen.
Dann arbeitet er gegen eine "Mauer".
Denn er kann ja immerhin 15mA treiben.
Das reicht für einen AVR Input, mehr als aus.
Stefanus F. schrieb:> Oder er ist doch (warum auch immer) ein Ausgang. Kannst ja zum Test mal> eine LED dranhängen.
Led bleibt aus.
Blockschaltbild ist im Anhang.
Aufbau der Schaltung ist auf einem Breadboard und mit den Standardkabeln
darauf verbunden.
A. S. schrieb:> Schließ den kurz, nimm ein statisches signal, dass 3V am Ausgang ergibt> und messe mit Multimeter einige Stellen vor und nach Abschluss an ADC.
Ändert leider nichts am Ergebnis.
Arduino Fanboy D. schrieb:> Das geht nicht!> Zumindest beim AVR gibts nur die beiden Möglichkeiten.> (mal abgesehen von irgendwelchen Sonderfunktionen)
Ich programmiere mit dem Atmelstudio falls das hilft.
Den Pin habe jetzt explizit als Eingang deklariert
DDRC |= ~(1 << DDC4);
und für die Auswahl des Pins zum ADC so:
ADMUX |= (1 << MUX2);
Paul schrieb:>> Oder er ist doch (warum auch immer) ein Ausgang. Kannst ja zum Test mal>> eine LED dranhängen.>> Led bleibt aus.
Dann hast du sie wahrscheinlich falsch angeschlossen, aber wer weiß das
schon (ohne Plan)?
Paul schrieb:>> Versuch ma DDRC &= ~(1<<DDC4);> Ergebnis bleibt gleich.
Logisch, das st auch falsch.
Der Pin ist ein Ausgang, wenn das Bit gesetzt ist.
Bit setzen: DDRC |= (1<<DDC4);
Bit löschen: DDRC &= ~(1<<DDC4);
Paul schrieb:> Macht es Sinn den Internen Pullup zu aktivieren?
Nee, wozu? Wie wäre es mal den gesamten Code zu zeigen?
Paul schrieb:> DDRC |= ~(1 << DDC4);
Hieraus leite ich ab, dass du noch sehr wenig Kenntnisse besitzt
Stefanus F. schrieb:> Dann hast du sie wahrscheinlich falsch angeschlossen, aber wer weiß das> schon (ohne Plan)?
Schaltplan ist weiter oben als Bild. Angeschlossen habe ich das Kabel
vom Ausgang des OPs auf den Analog A4
Paul schrieb:> Stefanus F. schrieb:>> Dann hast du sie wahrscheinlich falsch angeschlossen, aber wer weiß das>> schon (ohne Plan)?> Schaltplan ist weiter oben als Bild. Angeschlossen habe ich das Kabel> vom Ausgang des OPs auf den Analog A4
Der Schaltplan zeigt nicht, wie du die LED angeschlossen hast. Das
brauche ich aber, um zu beurteilen, ob du sie richtig angeschlossen
hast.
Wenn die Leitung auf Low gezogen wird (von wem oder was auch immer),
müsste eine LED leuchten, wenn sie so angeschlossen ist:
1
Pin o----[===]---|<|---o VCC
Das würde beweisen, dass die Leitung tatsächlich aktiv auf Low gezogen
wird.
Eine weitere Möglichkeit wäre, denn µC zu löschen und die Komponenten im
ungeflashten Zustand zu verbinden, dann ist der µC absolut passiv. Liegt
der Fehler dann immernoch vor, ist es nicht das Programm
Ingo L. schrieb:> Eine weitere Möglichkeit wäre, denn µC zu löschen und die Komponenten im> ungeflashten Zustand zu verbinden, dann ist der µC absolut passiv. Liegt> der Fehler dann immernoch vor, ist es nicht das Programm
Einfach Reset Knopf gedrückt halten, während man misst.
Stefanus F. schrieb:> Einfach Reset Knopf gedrückt halten, während man misst.
Ich vergesse immer das die Leute ein Aduino nutzen, der sowas hat. Meine
Schaltungen haben nie einen Reset Knopp.
Ingo L. schrieb:> Stefanus F. schrieb:>> Der Pin ist ein Ausgang, wenn das Bit gesetzt ist.> Ja, deswegen will er ja auch auf Eingang stellen
Der Bootloader konnte das Programm nicht laden. Ich hatte hTerm noch
verbunden. . . der hat die Schnittstelle blockiert. Es war die
Deklaration. Vielen Dank für die Hilfen.
Ingo L. schrieb:> Ich vergesse immer das die Leute ein Aduino nutzen, der sowas hat. Meine> Schaltungen haben nie einen Reset Knopp.
Meine auch nicht. Ich stecke immer einen Jumper auf den ISP Stecker,
wenn es denn mal sein muss.