Forum: Analoge Elektronik und Schaltungstechnik Körperultraschall mit Arduino (Sonographie)


von Christoph E. (stoppi)



Lesenswert?

Hallo!

Ich bastle gerade an der Umsetzung eines Körperultraschallgeräts. Basis 
bildet ein Schichtdickenmessgerät GM100 für Lacke. Der 5MHz-Sender wird 
mit einem Puls mit rund 500ns Dauer vom Gerät angesteuert. Obwohl ich 
schon einen externen Sender mit Pulsdauern von 100 - 500ns gelötet habe, 
sind folgende Probleme noch bei Verwendung der Gerätepulse aufgetaucht.

Erstens driftet bzw. schwingt das Empfängersignal sehr niederfrequent 
(Periodendauer etliche Sekunden)und zweitens lassen sich die Echos nicht 
wirklich verstärken. Bei niedrigem gain ist der Drift/Schwingung gering 
und die Echos gut sichtbar (Amplitude rund 0.2V). Erhöhe ich aber die 
Verstärkung werden die Echos nur ganz zu Beginn der Steigerung 
geringfügig größer. Bei noch zunehmender Verstärkung verschwinden sie 
sogar wieder. Nur der Drift/Schwingung spricht auf die steigende 
Verstärkung an (siehe Video https://youtu.be/p1yc4WqsL9c)

An der Empfängerbuchse des GM100 habe ich eine Gleichspannung von 2.1V 
gemessen. Daher dachte ich an eine Elektretansteuerung des 
Empfängerkopfes. Doch auch mit variabler Vorspannung inkl. veränderbaren 
Widerstand zwischen Vorspannung und US-Empfänger habe ich das gleiche 
Verhalten...

Habe auch schon an verschiedenen Stellen (vor bzw. nach dem 1-ten 
Verstärker) ausprobiert, leider ohne Erfolg. Das Signal schwingt/driftet 
nach wie vor niederfrequent.

Dann habe ich auch noch probiert die erste Verstärkung sehr gering (1x - 
3x) ausfallen zu lassen und erst mittels zweiten LF357 deutlicher zu 
verstärken. Alles ohne Erfolg. Bei steigendem gain verschwinden die 
Echos sogar und nur der Drift/Schwingung wird stärker.

Ich habe auch den Widerstand des Senders/Empfängers (Kopf ist 
zweigeteilt und kann beliebig mit den beiden Gerätebuchsen verbunden 
werden, d.h. Sender und Empfänger sind identisch) messen wollen. Dieser 
ist aber gleich wie beim 40kHz-Modell größer als 60 MOhm. Dies dürfte 
aber normal sein.

Vielleicht hat ja einer von euch eine Idee woran dieses merkwürdige 
Verhalten bzgl. Drift bzw. verschwindende Echos liegen könnte. Danke im 
voraus, stoppi

: Verschoben durch User
von Achim S. (Gast)


Lesenswert?

Christoph E. schrieb:
> Erstens driftet bzw. schwingt das Empfängersignal sehr niederfrequent
> (Periodendauer etliche Sekunden)und zweitens lassen sich die Echos nicht
> wirklich verstärken

Aus welcher Quelle stammt denn der Schaltplan?

Zum Driften: dein OPV hat keinen Pfad für den input bias current. Der 
ist bei diesem FET-OPV zwar sehr gering, aber trotzdem braucht er einen 
Gleichstrompfad nach Masse, sonst driftet die Eingangs(Gleich)spannung 
auf irgendwelche Werte. Über den 1nF Kondensator kann dieser Gleichstrom 
nicht fließen.

Zum nicht funktionierenden Verstärken: der LF357 hat ein 
Gain-Bandwidth-Product von 20MHz. Wenn du ein 5 MHz-Signal damit 
verstärken willst, dann erreichst du maximal eine Verstärkung von 4. 
Wenn du die Verstärkung höher drehst, werden niedrigere Frequenzen zwar 
höher verstärkt, aber die Grenzfrequenz geht nach unten -> die 5MHz 
bekommen keine größere Verstärkung.

von Christoph E. (stoppi)



Lesenswert?

Hallo Achim!

Der Schaltplan stammt von mir...

1000 Dank für deinen Tipp mit input bias current. Habe jetzt jeweils 10 
kOhm zwischen dem nicht invertierenden Eingang und GND geschalten und 
der Drift ist verschwunden!

Ich weiß, der LF357 ist ziemlich am Limit. Habe deshalb jetzt ganze 3 
Verstärkerstufen mit dem LF357 seriell geschaltet. Bekomme nun immerhin 
Signale mit einer Amplitude von rund 1.5V heraus. Das würde fast passen, 
da der Arduino Due ja Signale bis 3.3V erfassen kann.

Deshalb meine weitere Frage, ob du/ihr einen OPA mit höherer Bandbreite 
kennt, damit ich nicht stolze 3 Stufen benötige...

Und eine Frage habe ich noch: Bei meiner Senderschaltung steuere ich den 
5Mhz-Kopf mit einem 74121-Monoflop, 7667-Mosfettreiber und einem IRL520 
an. Habe das Signal bei unterschiedlichen Lasten am Oszi angeschaut. 
Hänge ich nur das Oszi mit dem hohen Eingangswiderstand in den 
Versorgungspfad des Mosfet, so verschwinden die Pulse und ich erhalte 
immer die volle Versorgungsspannung. Hänge ich aber eine Last mit 
geringem Widerstand (15 Ohm)in den Versorgungspfad, so erhalte ich die 
verstärkten 100 bis 500ns-Pulse wie gewünscht. Hat der Mosfet bei 0V 
Ansteuerung nur einen relativ niedrigen Widerstand verglichen zu den 1 
MOhm des Oszis? Anders kann ich mir das Verhalten bei unterschiedlicher 
Last nicht erklären...

Jetzt hat der US-Kopf aber einen Widerstand von jenseits der 60 MOhm. 
Wenn ich diesen in den Versorgungspfad einbaue, dann erhalte ich ja 
wieder keine Pulse. Muss ich daher parallel zum US-Kopf einen niedrigen 
Widerstand einbauen?

Danke nochmals für die großartige Hilfe, stoppi

: Bearbeitet durch User
von Achim S. (Gast)


Lesenswert?

Christoph E. schrieb:
> Deshalb meine weitere Frage, ob du/ihr einen OPA mit höherer Bandbreite
> kennt, damit ich nicht stolze 3 Stufen benötige...

Da gibts höchstens ein paar tausend unterschiedliche Typen, die dafür in 
Frage kämen ;-)
https://www.digikey.de/products/de/integrated-circuits-ics/linear-amplifiers-instrumentation-op-amps-buffer-amps/687?k=operationsverst%C3%A4rker&k=&pkeyword=operationsverst%C3%A4rker&pv658=u33MHz&pv658=u34MHz&pv658=u35MHz&pv658=u37MHz&pv658=u38MHz&pv658=u40MHz&pv658=u42MHz&pv658=u44MHz&pv658=u45MHz&pv658=u50MHz&pv658=u51MHz&pv658=u55MHz&pv658=u56MHz&pv658=u58MHz&pv658=u60MHz&pv658=u62MHz&pv658=u63MHz&pv658=u64MHz&pv658=u65MHz&pv658=u70MHz&pv658=u75MHz&pv658=u79.9MHz&pv658=u80MHz&pv658=u81MHz&pv658=u83MHz&pv658=u85MHz&pv658=u88MHz&pv658=u90MHz&pv658=u95MHz&pv658=u100MHz&pv658=u105MHz&pv658=u110MHz&pv658=u118MHz&pv658=u120MHz&pv658=u125MHz&pv658=u130MHz&pv658=u132MHz&pv658=u135MHz&pv658=u137MHz&pv658=u140MHz&pv658=u150MHz&pv658=u155MHz&pv658=u165MHz&pv658=u175MHz&pv658=u180MHz&pv658=u200MHz&pv658=u205MHz&pv658=u210MHz&pv658=u213MHz&pv658=u215MHz&pv658=u220MHz&pv658=u225MHz&pv658=u230MHz&pv658=u240MHz&pv658=u250MHz&pv658=u260MHz&pv658=u270MHz&pv658=u280MHz&pv658=u290MHz&pv658=u300MHz&pv658=u325MHz&pv658=u340MHz&pv658=u350MHz&pv658=u375MHz&pv658=u400MHz&pv658=u410MHz&pv658=u470MHz&pv658=u500MHz&pv658=u520MHz&pv658=u550MHz&pv658=u600MHz&pv658=u700MHz&FV=ffe002af&quantity=0&ColumnSort=0&page=1&pageSize=25
Aber vorsicht: je schneller die Teile werden, desto problematischer ist 
oft der Umgang mit ihnen. Und ein Aufbau auf dem Steckbrett kann schnell 
mal nicht mehr funktionieren. (Ehrlich gesagt wundert es mich jetzt 
schon ein bisschen, dass der LF357 in dem Aufbau und mit den hochohmigen 
Rückkopplungen stabil läuft. Wahrscheinlich haben die 1MOhm-Potis in 
deiner Schaltung so viel parasitäre Kapazität, dass die das Verhalten 
der Schaltung festlegt und die Schwingneigung unterdrückt).

Die Frage ist also weniger, ob es passende OPVs gibt sondern welcher 
davon genutzt werden sollte. Wenn ich ordentlich Verstärkungs-Bandbreite 
brauche nehme ich ganz gern den AD811 (der hat allerdings currenct 
feedback, für den müsstest du die Rückkopplung wesentlich niederohmiger 
machen). LMH6618/9 nehme ich auch manchmal ganz gerne (aber vorsicht: 
für den wären deine +7- 9V Versorgung zu viel)

Hier auf der Seite gibt es denke ich auch eine Übersicht über 
verschiedene OPV-Typen (ich finde sie nur gerade selbst nicht :-)

Christoph E. schrieb:
> Und eine Frage habe ich noch: Bei meiner Senderschaltung steuere ich den
> 5Mhz-Kopf mit einem 74121-Monoflop, 7667-Mosfettreiber und einem IRL520
> an.

Das klingt seltsam. Es hört sich so an, als würdest du den Sener mal an 
die Versorgung schalten, und ihn dann wieder mit einem Transistor in 
Reihe hochohmig von der Versorgund trennen. Der Sendekopf sieht damit 
nur einen positiven Spannungspulst. Ich würde viel eher erwarten, dass 
er ein Wechselsignal mit der Resonanzfrequenz sehen möchte. Allerdings 
kenne ich deinen US-Sender nicht, so dass ich nichts sicheres dazu sagen 
kann.

Christoph E. schrieb:
> Hänge ich nur das Oszi mit dem hohen Eingangswiderstand in den
> Versorgungspfad des Mosfet, so verschwinden die Pulse und ich erhalte
> immer die volle Versorgungsspannung. Hänge ich aber eine Last mit
> geringem Widerstand (15 Ohm)in den Versorgungspfad, so erhalte ich die
> verstärkten 100 bis 500ns-Pulse wie gewünscht.

klingt nach dem oben beschriebenen. Du hast im Sendekopf wahrscheinlich 
direkten Anschluss an die beiden Enden des Sendepiezos. Wenn du den auf 
deine Methode betreibst, dann lädst du ihn einmal auf und das war es.
Wenn du ihn mit dem oszi belastest entlädst du ihn zwischen den beiden 
Pulse immerhin ein bisschen. Wenn du ihn mit 15Ohm belastest entlädst du 
ihn stark und beim nächsten Puls bekommst du wieder eine ordentlice 
Amplitude.

Aber richtig wäre, ihn direkt mit einem niederohmigen, 5MHz 
Wechselsignal anzusteuern.

Christoph E. schrieb:
> Jetzt hat der US-Kopf aber einen Widerstand von jenseits der 60 MOhm.

Diese 60MOhm sind der DC-Widertand. Wenn du mit dem Multimeter den 
Widerstand misst, hast du bei dem Sendekopf einfach das Verhalten eines 
Kondensators, der einmal aufgeladen wird und dann kaum mehr Strom 
fließen lässt. Bei der Resonanzfrequenz (5MHz) ist der 
(Wechselstrom)innenwiderstand des Senders in ganz anderen 
Größenordnungen.

von Deswegen (Gast)


Lesenswert?

Gibt es keinen b-Modus?

von Christoph Ernst (Gast)


Lesenswert?

Hallo Achim!
Vielen Dank, hast mir sehr geholfen :-)
Der AD811 ist schon auf dem Weg zu mir. Ich werde einmal versuchen, den 
sendekopf direkt an den 7667 zu hängen...

von Achim S. (Gast)


Lesenswert?

Christoph Ernst schrieb:
> Ich werde einmal versuchen, den
> sendekopf direkt an den 7667 zu hängen...

ist keine schlechte Idee: ein Baustein, der gut Gates umladen kann, ist 
auch nicht so ganz schlecht um Piezos umzuladen.

Aber denke dran: du wirst den 7667 (und den Piezo) nicht mit einem 
einfachen Puls ansteuern müssen sondern mit einem Signal bei der 
Resonanzfrequenz des Ultraschall-Senders (5 MHz).

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Es gab mal den Ultraschallsensor von Polaroid, allerdings Luftschall und 
nur ca. 50 kHz:
http://www.robotstorehk.com/6500.pdf
was mir speziell in Erinnerung blieb, ist die zeitabhängige Verstärkung, 
die dem mit zunehmender Entfernung immer leiser werdenden Echo 
entgegenwirkt. Ähnliches könnte auch ein logarithmisch begrenzender 
Verstärker bewirken.

von Christoph E. (stoppi)



Lesenswert?

Heute sind die beiden AD811 Operationsverstärker eingetroffen. Zwar ist 
die Einstellung wie bei Verwendung der LF357 nach wie vor etwas fummelig 
aber nun erhalte ich Echoamplituden von maximal 8V. Damit übersteuere 
ich zwar bewusst den AD-Eingang des Arduino Due's mit seinen 3.3V, dafür 
erhalte ich vermutlich für deutlich schwächere Echos noch eine 
brauchbare Amplitude...

Jetzt mache ich mich noch an den envelope-Schaltungsteil und dann warte 
ich nur noch auf die ICL7667 für den Sender...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Du solltest auch langsam mal mit Abblockmassnahmen auf dem 
Verstärkerboard beginnen. Ich sehe da keinen einzigen Elko oder gar eine 
Drossel, was bei HF Signalen gar nicht so dumm wäre.

von Christoph E. (stoppi)



Lesenswert?

Danke Matthias für den Ratschlag...

So, es gibt gute und schlechte Neuigkeiten. Zuerst einmal zu den Guten: 
Da die 7667-Mosfettreiber eingetroffen sind, habe ich heute erstmals den 
Sender testen können und ich erhalte schöne Echos wie bei der Verwendung 
des Originalsenders im Gerät. Ich kann ja die Pulsdauer von 100 ns bis 
ca. 500 ns einstellen. Im Bereich um die 150-200 ns erhalte ich die 
höchsten und noch einigermaßen scharfen Echos mit einer Amplitude von 
rund 6V. Dabei betreibe ich den 7667 mit 14-15V (mittels step-up 
Wandler). Testobjekt war eine 8 mm dicke Aluminiumplatte. Bin schon 
gespannt, ob ich mit der 1µs-Auflösung des AD-Konverters vom Arduino Due 
die Pulse auflösen kann. Bei der Empfängerschaltung fehlt aber noch der 
envelope-Teil inkl. Gleichrichter. Diesen setze ich ebenfalls mit einem 
AD811 und einer 1N4148 um. Da warte ich aber noch auf weitere, bestellte 
AD811.

Nun zu den schlechten Nachrichten: Halte ich den Sender/Empfänger an 
meinen Körper (Bauch, Knie etc.), so erhalte ich leider keine Echos... 
Das bedeutet, dass das Projekt Körperultraschall wohl ad acta gelegt 
werden muss. Im schlimmsten Fall konzentriere ich mich eben auf die 
Aluminiumplatten bzw. mit Wasser gefüllte Ballons (Test noch 
ausständig). Wenn der Arduino Due und die AD811 eingetroffen sind, melde 
ich mich wieder...

P.S.: Vielleicht hat ja jemand noch einen Verbesserungsvorschlag ;-)

: Bearbeitet durch User
von Hans (Gast)


Lesenswert?

Hallo,

Du benötigst ein Gel - wie beim Doc - für Eigenmessungen.

von Achim S. (Gast)


Lesenswert?

Schön, dass die Verstärker nun deutlich besser laufen.

Christoph E. schrieb:
> Bei der Empfängerschaltung fehlt aber noch der
> envelope-Teil inkl. Gleichrichter. Diesen setze ich ebenfalls mit einem
> AD811 und einer 1N4148 um.

Das ist denke ich keine gute Idee. Der AD811 ist wie oben geschrieben 
ein current feedback OPV. Dessen invertierender Eingang ist - anders als 
von voltage feedback OPVs gewohnt - niederohmig. Deine 
Rückkoppelschaltung beim Peak Detector wird imho nicht wie von dir 
erwartet funktionieren.

Christoph E. schrieb:
> P.S.: Vielleicht hat ja jemand noch einen Verbesserungsvorschlag ;-)

Bist du sicher, dass es nicht ungesund ist, diesen Messkopf für 
Lackdicken als "medizinische Messsonde" am Körper einzusetzen?

von Christoph E. (stoppi)


Lesenswert?

@hans: ich verwende natürlich ein Gel und zwar das Elektrodengel von 
meinem EKG...

@achim: Danke einmal für die sehr hilfreichen Hinweise.

Ich habe die envelope-Schaltung in Ermangelung eines AD811 einmal mit 
dem LF357 probiert, da kommt leider so gut wie nichts an.
Das Problem mit einer Diode als Einweggleichrichter ist ja, dass sie mir 
0.7V "verschluckt". Deshalb die schaltung mit dem OPV.

Ich werde aber noch die peak-Detektor-schaltung meines multi channel 
analyzers probieren, die funktioniert mit einem Transistor.

Hat vielleicht jemand eine andere Idee für eine schnelle 
peak-Detektor-schaltung?

: Bearbeitet durch User
von Horst (Gast)


Lesenswert?

Ähem, ja, nur mal so zur Berichtigung: Es gibt keine Ultraschall- 
Lackdickenmessgeräte. Solche kleinen Schichtdicken im µm kann 
Ultraschall nicht.

Lackdickenmessgeräte sehen zwar ganz ähnlich aus, haben aber einen 
Wirbelstorm- (Spule) oder Magnetmeßkopf.

von Markus K. (markus-)


Lesenswert?

@Horst:
Kannst Du das näher erläutern? Zum Beispiel anhand von dem da
https://www.defelsko.com/positector-200

von Christoph E. (stoppi)


Angehängte Dateien:

Lesenswert?

Was den Verstärker AD811 anlangt erhalte ich die besten Resultate, bei 
sehr niedrigen Widerstandswerten am invertierenden Eingang (z.B. 68 Ohm 
zwischen - und GND). Daher wird der OPA auch spürbar warm...

Habe mich nun um den peak-detector inkl. Gleichrichtung gekümmert. Die 
Schaltung mit dem pnp-Transistor funktioniert eigentlich recht passabel. 
Auch nur eine Diode und ein Widerstand in Serie lieferte 
eigenartigerweise recht gute Werte.

Der Arduino Due mit seiner maximal 1µs-Auflösung für den ADC wird aber 
trotz der breiten Entladekurven an seine Grenzen stoßen... Mal schauen 
wie er sich schlägt. Schöne Echos erhalte ich nach wie vor nur bei 
dünnen Aluminiumplatten. Sind diese z.B. 50 mm breit, so nimmt die 
Amplitude der Echos (verständlicherweise) stark ab. Am Körper bekomme 
ich lediglich ein schwaches Echo wenn ich die Sonde gegen meine Wange 
drücke ;-)

: Bearbeitet durch User
von Stefan S. (chiefeinherjar)


Lesenswert?

Wie wäre es mit einem. So genannten Präzisionsgleichrichter? - der 
gleicht den Spannungsabfall an der Diode aus und damit sollte sich auch 
ein vernünftiger Peak-Detektor aufbauen lassen. Dazu gibt's auch einige 
App-Notes.

Frag mal Google dazu, ich habe am Handy gerade keine der PDFs zur Hand.

von Achim S. (Gast)


Lesenswert?

Christoph E. schrieb:
> Was den Verstärker AD811 anlangt erhalte ich die besten Resultate, bei
> sehr niedrigen Widerstandswerten am invertierenden Eingang (z.B. 68 Ohm
> zwischen - und GND).

ist ein üblicher Wert, wenn du Gain und Bandbreite haben willst. Schau 
dir z.B. Tabelle 3 im Datenblatt an
http://www.analog.com/media/en/technical-documentation/data-sheets/AD811.pdf

Christoph E. schrieb:
> Daher wird der OPA auch spürbar warm...

Ist bei dem Teil mit +/-9V Versorgung ebenfalls nicht ungewöhnlich, dass 
man am Chipgehäuse schon eine leichte Erwärmung spürt. Selbst im 
Leerlauf beträgt die Stromaufnahme bis 16mA, bei insgesamt 18V 
Versorgungsspannung kommt man da eben schon im Leerlauf auf 1/4 W. (als 
Stromsparer ist er nicht zu empfehlen, als schneller Verstärker mit 
etwas Wumms schon).

Christoph E. schrieb:
> Habe mich nun um den peak-detector inkl. Gleichrichtung gekümmert. Die
> Schaltung mit dem pnp-Transistor funktioniert eigentlich recht passabel.
> Auch nur eine Diode und ein Widerstand in Serie lieferte
> eigenartigerweise recht gute Werte.

Wenn die Diode samt Widerstand außerhalb der Rückkoppelschleife liegen, 
kann ich mir das auch vorstellen. Deinen früheren Ansatz oben mit Diode 
innerhalb der Rückkoppelschleife (und inv. Eingang direkt am 
Speicherkondensator) würde ich weiter eher kritisch sehen.

Die augenblickliche Lösung kompensiert die 0,7V Spannungsabfall zwar 
nicht perfekt, aber dir kommt es ja nicht auf exakte Pulshöhen sondern 
auf gut messbar Pulsstartflanken an. Dafür ist diese Lösung auf jeden 
Fall gut.

Christoph E. schrieb:
> Der Arduino Due mit seiner maximal 1µs-Auflösung für den ADC wird aber
> trotz der breiten Entladekurven an seine Grenzen stoßen...

Kannst du die Echos nicht auf einen Komparatoreingang des µC geben und 
getriggert von der steigenden Flanke einen Timerwert abfragen? Zumindest 
solange die steigende Flanke der Echos deutlich aus dem Rauschen 
rausragt solltest du damit den Startzeitpunkt der Echos besser als 1µs 
bestimmen können.

von Bernhard D. (bdrescher)


Lesenswert?

Hi,

Als peak-detector könnte sich diese Schaltung auch für cfbs eignen:
 http://www.analog.com/en/technical-articles/ltc6244-high-speed-peak-detector.html

Da letzterer (improved current-boosted). Eventuell musst du mit dem 
Widerstandswert am nicht invertierenden Eingang spielen. Durch das 
strombiasing des ausgangs (sourcefolger im fb) sollte der Feedback 
niederohmig genug sein, oder irre ich mich?

Grüße,
Bernhard

von Christoph E. (stoppi)


Lesenswert?

Vielen Dank für eure Unterstützung.
Die Erfassung der Echos habe ich mir so vorgestellt: ich trigger mit dem 
arduino den 74121 und lese dann in einer Schleife 300 analoge Werte ein. 
Diese stelle ich dann mittels 320x480 display in Graustufen dar.

Mit der Funktion micros kann ich mit dem arduino aber auch nur minimal 
microseconds auflösen, von daher keine Verbesserung zum fast analog 
read...

Oder gibt es eine andere, flinkere Möglichkeit der zeitabfrage, die von 
einem Interrupt, z.b. Auf steigende Flanke reagierend, ausgelöst wird?

: Bearbeitet durch User
von Dirk (Gast)


Lesenswert?

Gruss,
eine Anmerkung von mir,
es gibt auch Körper-Ultraschall-
Mikroskope. Noch schöne Pfingsten.

von Christoph E. (stoppi)



Lesenswert?

Hallo!

Habe nun der Empfängerschaltung eine dritte AD811-Verstärkerstufe 
gegönnt. Damit sind jetzt auch entlang der Länge des Aluminiumquaders (l 
= 6 cm, Laufzeit hin und zurück rund 21 µs) mehrere Echos gut sichtbar.

Ein Problem mit der envelope-Schaltung ist jedoch aufgetreten. Verwende 
ich keinen Basiswiderstand zur Ansteuerung des BC327, wird der letzte 
AD811 extrem heiß. Verwende ich aber einen Basiswiderstand (z.B. 330 
Ohm), so wird zwar der OPA nicht mehr sonderlich heiß, dafür verliere 
ich halt etwas an Amplitudenhöhe des Ausgangssignals. Werde mich der 
Sache am Wochenende widmen. Wenn durch den Basiswiderstand der 
Spannungsverlust im Bereich von 0.7V liegt, dann kann ich gleich eine 
Einweggleichrichtung ohne Transistor verwenden...

Oder hat jemand von euch vielleicht eine bei 5 MHz gut funktionierende 
envelope-Schaltung parat? Danke im voraus für eure Bemühungen...

Bin jetzt im Internet auf die Einweggleichrichtung mit dem AD820 
gestoßen. Da bräuchte ich eigentlich nur den OPA und sonst nichts. 
Hacken an der Sache ist Unity-gain bandwidth: 1.8 MHz...

Das ist leider ein wenig zu langsam für meine Anforderungen. Gibt es 
einen Vergleichstyp der 5 MHz schafft?

: Bearbeitet durch User
von Achim S. (Gast)


Lesenswert?

Christoph E. schrieb:
> Verwende
> ich keinen Basiswiderstand zur Ansteuerung des BC327, wird der letzte
> AD811 extrem heiß. Verwende ich aber einen Basiswiderstand (z.B. 330
> Ohm), so wird zwar der OPA nicht mehr sonderlich heiß, dafür verliere
> ich halt etwas an Amplitudenhöhe des Ausgangssignals.

Das ist seltsam - sowohl das Aufheizen ohne Basiswiderstand als auch der 
Amplitudenverlust durch 300Ohm Basiswiderstand.

Bist du sicher, dass du den Transistor nicht im Inversbetrieb hast (also 
Kollektor und Emitter vertauscht)?

von Horst (Gast)


Lesenswert?

Der Transistor ist falschherum gezeichnet, evt. dann auch falsch 
angeschlossen: Emitter muß unten an GRD, Kollektorwiderstand und der 
Vor- widerstand zum Ardunio sind viele zu klein (= 100 Ohm) Ohne daß ich 
den Eingangswiderstand vom Ardunio kenne, würde ich beide mind. 1k Ohm 
machen.

von Horst (Gast)


Lesenswert?

...und wie soll das 10 k Poti funktionieren, wenn es mit 100 Ohm 
belastet wird?
..und wo liegt der Poti- Schleifer?

von Christoph E. (stoppi)


Lesenswert?

Hallo nochmals!

@Achim: Ich werde mir das mit dem Spannungsverlust bzw. dem 
Basiswiderstand morgen oder am Wochenende nochmals ansehen. Danke aber 
für deine Hilfe... So wie ich den peak-Detektor mit dem pnp-Transistor 
verstanden habe liegt ja die Eingangsspannung auch zwischen Basis und 
Kollektor an. Zwischen Emitter und Kollektor liegt die gleiche Spannung 
+ ca. 0.7V an. Die 0.7V verliert die Spannung wieder über die Diode und 
somit kommt am Kondensator die volle Eingangsspannung ohne Verluste 
an...

Wodurch wird ohne Basiswiderstand der Strom zw. Basis und Emitter 
begrenzt? Nur durch den 100 Ohm-Widerstand im Emitterzweig oder? Und das 
ist scheinbar zu wenig für den AD811. Aber wie gesagt, ich schau's mir 
bald nochmals genauer an...

@Horst: Der Transistor beim peak-detektor muss ein pnp sein, von daher 
passt er schon wie eingezeichnet (siehe 
http://www.circuitdiagramworld.com/transistor_circuit_diagram/Single_Transistor_Half_Wave_Peak_Detector_Circuit_17584.html). 
Von vorne betrachtet ist links C, mittig B und rechts der Emitter.

Habe den 100-Ohm Widerstand im Emitterzweig deshalb so niedrig gewählt, 
damit sich der Speicherkondensator möglichst schnell lädt. Der 100 Ohm 
Widerstand in Serie zur Zenerdiode soll nur bei Überspannung (> 3.3V) 
den Strom durch die Zenerdiode begrenzen... In beiden Zweigen (10k-Poti 
und Zenerdiode+Vorwiderstand) liegt die Ladespannung des Kondensators 
an. Was soll daran nicht passen?+

Der Schleifer ist natürlich mit einem Poti-Ende verbunden, hab's aber 
nicht eingezeichnet...

P.S.: Habe die Gleichrichter-Schaltung mit dem AD820 noch ausprobiert. 
Der ist leider deutlich zu langsam. Positive Amplituden mit rund 8V 
führen am Ausgang zu einer Amplitude von nur noch 2V und ins negative 
(trotz single-supply mit +9V) schwingt er auch. Also 2 Dinge die nicht 
erwünscht sind...

: Bearbeitet durch User
von Achim S. (Gast)


Lesenswert?

Christoph E. schrieb:
> Wodurch wird ohne Basiswiderstand der Strom zw. Basis und Emitter
> begrenzt? Nur durch den 100 Ohm-Widerstand im Emitterzweig oder? Und das
> ist scheinbar zu wenig für den AD811.

Ok, jetzt hab ich genauer hingeschaut und glaube deine Beobachtung zu 
verstehen. Solange der Transistor im linearen Bereich arbeitet (also 
nicht in Sättigung geht) hat der AD811 sicher kein Problem den 
Basisstrom zu treiben. Der ist ja um ca. einen Faktor 100 kleiner als 
der Emitterstrom und damit im sub mA Bereich.

Aber weil der Kollektor des pnp auf GND liegt und die Basis ebenfalls 
bis auf GND runtergeht oder sogar in den negativen Bereich kommt, geht 
dein Transistor häufig in Sättigung. Dann hat er keine Stromverstärkung 
mehr, und der AD811 muss den vollen Strom über die 100Ohm treiben und 
zusätzlich sogar noch den Strom über die dann leitende 
Basis-Kollektordiode.

Das eigentliche Problem ist also nicht, dass der Basiswiderstand fehlt 
(obwohl der hilft den Strom zu begrenzen). Das eigentliche Problem ist, 
dass der Aussteuerbereich der Basis nicht zur Versorgung am Kollektor 
(GND) passt. Der Kollektor müsste auf eine Spannung, die unterhalb der 
niedrigsten Basisspannung liegt, damit der Transistor immer im linearen 
Bereich arbeitet.

Naheliegend wäre, den Kollektor auf -9V zu legen. Dann geht der pnp nie 
in Sättigung und hat immer seine gewünschte Stromverstärkung. Allerdings 
wird dann die Verlustleistung im Transistor schon etwas heikel (knapp 
1W). Aber wenn du den Emitterwiderstand auf z.B. 200 Ohm erhöhst sollte 
es mit dem Kollektor an -9V gehen.

von Christoph E. (stoppi)



Lesenswert?

Vielen Dank für deine Hilfe Achim...

Anbei noch zwei Bilder bzgl. des Versuchs der Einweggleichrichtung 
mittels AD820. Durch seine Langsamkeit kann er den Amplituden nicht 
folgen (diese sinken etwa auf 1/4) und er schwingt sogar in den 
negativen Bereich trotz single supply...

Gibt es keinen Hüllkurvendemodulator für meinen Frequenzbereich (5 MHz) 
und meine vorkommenden Amplituden (0-8V; wichtig auch im 0-1V Bereich)?

Nochmals zum Transistor in meiner peak-detector-Schaltung: Durch die 
sogar negative Ansteuerung der Basis ist der Basis-Emitterstrom ja sogar 
größer als jener über den Kollektor fließende oder? Und der Basisstrom 
wird einzig und alleine durch den 100 Ohm Widerstand im Emitterzweig 
begrenzt. Liegen z.b. 0 V an der Basis an, so fallen bei 9V Versorgung 
am 100 Ohm Widerstand 9 - 0.7 = 8.3 V an. Demnach müsste ein Basisstrom 
von ganzen 83 mA fließen. Erstens ist das für den AD811 scheinbar zu 
viel und zweitens geht bei diesen Basisströmen der Transistor wie du es 
auch geschrieben hast längst in Sättigung...

von Achim S. (Gast)


Lesenswert?

Christoph E. schrieb:
> Anbei noch zwei Bilder bzgl. des Versuchs der Einweggleichrichtung
> mittels AD820. Durch seine Langsamkeit kann er den Amplituden nicht
> folgen (diese sinken etwa auf 1/4) und er schwingt sogar in den
> negativen Bereich trotz single supply...

Die Schaltung mit dem AD820 ist imho eine sehr spezielle Speziallösung. 
Sie basiert darauf, dass man bei dem Chip die Eingänge bis zu 20V 
unterhalb der negativen Versorgung betreiben kann und nimmt die ständige 
Übersteuerung des OPVs in Kauf. Das "Konzept" ist kaum auf andere 
(schnellere) OPV übertragbar sondern nur eine nette "Spezialspielerei" 
für diesen Baustein.

Christoph E. schrieb:
> Erstens ist das für den AD811 scheinbar zu
> viel und zweitens geht bei diesen Basisströmen der Transistor wie du es
> auch geschrieben hast längst in Sättigung...

Ich betrachte Ursache und Wirkung andersrum als du. Nicht: der 
Basisstrom ist sehr groß und deshalb geht der Transistor in Sättigung. 
Sondern: der Transistor geht in Sättigung (weil das Kollektorpotential 
nicht negativ genug ist) und deshalb ziehst du einen barbarischen 
Basisstrom. Der Transistor kann nicht mehr wie gedacht als Emitterfolger 
arbeiten, sondern er wirkt nur noch wie zwei Dioden, die vom AD811 
beheizt werden.

Die Sättigung des Transistors also nicht eine weitere Folge des Problems 
sondern sie ist das eigentliche Problem. Wenn du die Sättigung des pnp 
vermeiden würdest (indem Versorgung und Ansteuerbereich passend gewählt 
werden), dann wäre die Belastung des AD811 kein Thema mehr. Solange der 
pnp wie geplant als Emitterfolger arbeitet, musst du dir um den 
Basisstrom keinerlei Gedanken machen.

-> du brauchst eine ausreichnd negative Spannung am Kollektor des pnp.

von Dirk (Gast)


Lesenswert?

Ein Hybrid (Vor)verstaerker in diskreter Bauweise,
 ein JFET oder Mosfet(auch dual gate ) mit einem pnp  Transistor (BC bis 
BF Typ) am Drain Widerstand
 ( Basis und Emitter des pnp T.)
 und entsprechender RC( L) auslegung,
 sind weit einfacher zu realisieren.
 Kann man auch mit Spice durch variieren.
Nur so. Dirk

von Zeno (Gast)


Lesenswert?

Horst schrieb:
> Der Transistor ist falschherum gezeichnet, evt. dann auch falsch
> angeschlossen: Emitter muß unten an GRD, Kollektorwiderstand und der
> Vor- widerstand zum Ardunio sind viele zu klein (= 100 Ohm) Ohne daß ich
> den Eingangswiderstand vom Ardunio kenne, würde ich beide mind. 1k Ohm
> machen.

Nöö ist er nicht wenn's wirklich ein pnp sein soll. Allerdings wäre 
dieser in dieser Schaltung dann in Kollektorschaltung und da ist die 
Verstärkung kleiner 1.
Das der OP bei Benutzung eines pnp Transistors warm wird, wenn man den 
Basiswiderstand weg läßt, ist eigentlich auch logisch, weil dann der 
Strom in den OP-Ausgang über die Emitter-Basisdiode hineinfließt nur 
durch den 100 Ohm Widerstand begrenzt. Bei 9V müßte der OP dann ca. 80mA 
ab können. Ob das der benutzte OP kann weiß ich jetzt nicht.

von Zeno (Gast)


Lesenswert?

Habe grad Dirk's Post gelesen und muß auch sagen warum baust Du das 
ganze nicht diskret auf mit Fet's und Transistoren. Die Verstärkungen 
die Du haben möchtest sind locker diskret realisierbar.

Wieso muß das bei dem Peakdetektor ein pnp sein? Bei der von Dir 
verlinkten Schaltung (wo Du ganz schön was weg gelassen hast) ist das 
so. Man kann den Peakdetektor genauso gut mit npn Transistoren aufbauen. 
Im Prinzip ist das was Du da gebaut hast nichts anderes als ein 
klassisches VU-Meter halt bloß für höhere Frequenz.

Wieso muß der Transistor überhaupt galvanisch an den OP gekoppelt sein?

von Zeno (Gast)


Lesenswert?

Achim S. schrieb:
> Die Sättigung des Transistors also nicht eine weitere Folge des Problems
> sondern sie ist das eigentliche Problem. Wenn du die Sättigung des pnp
> vermeiden würdest (indem Versorgung und Ansteuerbereich passend gewählt
> werden), dann wäre die Belastung des AD811 kein Thema mehr. Solange der
> pnp wie geplant als Emitterfolger arbeitet, musst du dir um den
> Basisstrom keinerlei Gedanken machen.

Schau Dir mal die von ihm verlinkte Orginalschaltung an. Ich meine er 
hat da einfach zu viel weg gelassen, was den Arbeitspunkt des 
Transistors einstellt. Die Schaltung ist, wie Du schon richtig angemerkt 
hast ein simpler Emitterfolger. Die Schaltung zeichnet sich durch 3 
Dinge aus:
1. Relativ hoher Eingangswiderstand
2. Sehr kleiner Ausgangswiderstand
3. Verstärkung kleiner 1

Deshalb wurde/wird diese Schaltung oft als Impedanzwandler benutzt. 
Desweiteren sollte Ein- und Ausgang über Kondensatoren gekoppelt werden, 
um den Arbeitspunkt der Schaltung nicht zu verschieben.

von Achim S. (Gast)


Lesenswert?

Zeno schrieb:
> Ich meine er
> hat da einfach zu viel weg gelassen, was den Arbeitspunkt des
> Transistors einstellt.

Nein, hat er nicht. Sobald er die "Versorgungsspannung" des 
Peak-Detektors (also die Kollektorspannung des pnp) passend zum 
Aussteuerbereich der Basis wählt, funktioniert die Schaltung. Tut er das 
nicht, dann verhindert auch ein Basiswiderstand nicht wirklich die 
Sättigung des Transistors (sie hält nur den OPV etwas kühler).

Wie schon geschrieben wäre mit -9V am Kollektor die Verlustleistung des 
pnp etwas hoch, aber mit etws höherohmigem Emitterwiderstand würde alles 
passen.

Zeno schrieb:
> Wieso muß das bei dem Peakdetektor ein pnp sein?

Weil er die positiven Peaks detektieren will damit sein ADC sie messen 
kann. Mit einem npn könnte er die komplementäre Schaltung für die 
negativen Peaks aufbauen, die wären dann aber außerhalb des Messbreichs 
seines ADCs.

Zeno schrieb:
> Desweiteren sollte Ein- und Ausgang über Kondensatoren gekoppelt werden,
> um den Arbeitspunkt der Schaltung nicht zu verschieben.

Beim Emitterfolger ergibt sich der Arbeitspunkt einfach durch die 
Basisspannung und den Emitterwiderstand. Warum sollte er das AC koppeln 
müssen wenn er es DC gekoppelt haben will?

von Zeno (Gast)


Lesenswert?

Achim S. schrieb:
> Beim Emitterfolger ergibt sich der Arbeitspunkt einfach durch die
> Basisspannung und den Emitterwiderstand. Warum sollte er das AC koppeln
> müssen wenn er es DC gekoppelt haben will?

Ich hatte grad da noch mal was zum Emitterfolger nachgelesen, weil so 
oft mache ich das auch nicht mehr.

Anders herum, warum sollte er nicht AC koppeln. Er koppelt alle 2 OPV's 
AC, da kann er die Ausgangsstufe auch AC koppeln und hätte eigentlich 
schon ein Problem weniger.
Der Kollektor müßte eigentlich auf -9V, weil sonst bei negativer 
Ausgangsspannung des OPV die Basis deutlich negativer als der Kollektor 
wäre. Ob das die Kollektor-Basis-Diode weis ich nicht, aber ich habe bei 
so etwas die Transis meist ins jenseits befördert. Bei AC-Kopplung würde 
er auch das vermeiden.
Was spricht dagegen die Gleichrichter Schaltung ebenfalls über ein C 
anzukoppeln? Eigentlich nichts. Wenn er dann noch einen npn in 
Emitterschaltung benutzt hat er auch in dieser Stufe noch etwas 
Verstärkung.

Ich bin mir nicht sicher ob das von ihm gewählte Schaltungskonzept an 
dieser Stelle optimal ist. Es gibt durchaus geeignete Verstärker auch 
für schmales Geld mit denen man so was realisieren kann. Hier 
http://www.rapp-instruments.de/RemoteSensing/Roves/sidescan/sidescan.htm 
kann man sich sicherlich einige Anregungen holen, wie man so etwas ohne 
große Verrenkungen hin bekommt. Oder auch hier 
https://www.best-microcontroller-projects.com/pic-sonar.html . Da hat 
man das diskret gelöst.

von Achim S. (Gast)


Lesenswert?

Zeno schrieb:
> Anders herum, warum sollte er nicht AC koppeln. Er koppelt alle 2 OPV's
> AC, da kann er die Ausgangsstufe auch AC koppeln und hätte eigentlich
> schon ein Problem weniger.

Zeno schrieb:
> Was spricht dagegen die Gleichrichter Schaltung ebenfalls über ein C
> anzukoppeln?

Die AC-gekoppelten OPVs verstärken ein reines Wechselsignal (kein 
DC-Anteil). Durch die AC-Kopplung an der Stelle geht keine Information 
verloren - nur die störenden verstärkten Offsetspannungen fliegen raus.

Der Peak-Detektor am Ausgang hingegen muss einen Laststrom nur in eine 
Richtung treiben (also kein AC-Signal). Da hat die DC-Kopplung durchaus 
Vorteile, wenn die Peakhöhe am Ausgang einigermaßen genau werden soll.

Zeno schrieb:
> Ich bin mir nicht sicher ob das von ihm gewählte Schaltungskonzept an
> dieser Stelle optimal ist.

Klar könnte man die Schaltung auch auf viele andere Arten bauen. Aber 
auch die hier realisierte Version würde funktionieren, sobald die 
Aussteuerung nicht mehr über den Bereich der Versorgung des 
Peak-Detektors hinausgeht.

von Zeno (Gast)


Lesenswert?

Achim S. schrieb:
> Der Peak-Detektor am Ausgang hingegen muss einen Laststrom nur in eine
> Richtung treiben (also kein AC-Signal). Da hat die DC-Kopplung durchaus
> Vorteile, wenn die Peakhöhe am Ausgang einigermaßen genau werden soll.

Das ist schon richtig, aber dennoch würde ich zumindest zwischen dem 
letzten OPV und dem Transistor AC-Kopplung machen und über einen 
Basiswider einen optimalen Arbeitspunkt für diese Stufe einstellen.

Aber letztendlich führen viele Wege zum Ziel.

von Mark W. (kram) Benutzerseite


Lesenswert?

Christoph E. schrieb:
>
> Gibt es keinen Hüllkurvendemodulator für meinen Frequenzbereich (5 MHz)
> und meine vorkommenden Amplituden (0-8V; wichtig auch im 0-1V Bereich)?
>
Schau Dir mal den ADL5511 an.

von Christoph E. (stoppi)


Lesenswert?

Vielen Dank einmal für die zahlreichen Anregungen. Ich bin leider am 
Wochenende nicht dazu gekommen, die negative Versorgung des Kollektors 
zu testen. Hole dies aber bald nach...
Den emitter-widerstand werde ich ggf. Auch vergrößern, obwohl ja der 
BC327 0.5A abkann. Von daher müssten auch die 100 ohm bei +/-9V 
Versorgung ausreichen.
Danke auch für den Tipp mit dem ADL5511, werde ich mir auch noch genauer 
ansehen.

: Bearbeitet durch User
von Christoph E. (stoppi)



Lesenswert?

Schön langsam geht's hier auch weiter. Heute ist endlich der Arduino Due 
angekommen. Zuerst habe ich mich um das möglichst schnelle Einlesen der 
Analogwerte gekümmert. Das Ergebnis: Für 300 Einlesewerte braucht der 
Due nur ganze 80 µs. Das macht beachtliche 0.27 µs/Einlesewert. Das ist 
ja viel besser als erwartet :headbang:

Dann habe ich mich um die graphische Ausgabe am Due mittels 320x480 
Display gekümmert. Das hat ziemlich gefuchst, da ich das Display mit dem 
ILI9486-Treiber zunächst nicht zum Laufen brachte (zeigte alles 
spiegelverkehrt an und die Grauwerte enthielten auch Grüntöne...)

Jetzt rennt es aber wie gewünscht. Ich muss mich noch mit der am besten 
geeigneten Darstellung der Ultraschallreflexe beschäftigen. Im Moment 
stelle ich 40 Scans nebeneinander (Breite der Linien = 12 pixel, Höhe = 
1 pixel) dar und zwar jede Sekunde ein neuer. Nach 40 Durchläufen 
beginnt die Darstellung wieder ganz links.

In den nächsten Tagen werde ich mich noch um die US-Empfängerschaltung 
(genau genommen um den envelope-Teil) kümmern. Da habe ich für den 
Präzisionsgleichrichter einen sehr schnellen OPA (LM7171) bestellt. Aber 
zuerst probiere ich die bereits vorhandene Schaltung mit dem 
pnp-Transistor noch aus und adaptiere diese.

von Christoph E. (stoppi)



Lesenswert?

Das Projekt biegt dank eurer Hilfe (im besonderen dank Achim) schön 
langsam in die Zielgerade. Habe nun den envelope-Teil etwas modifiziert 
und zwar -9V an Kollektor des BC327 und einen höheren Emitterwiderstand 
(nun 560 Ohm). Mit dem Endladepotentiometer kann ich schön die Steilheit 
der abnehmenden Flanken der Echos beeinflussen. Im Moment verwende ich 
einen 100 pF-Speicherkondensator.

Jetzt muss ich eigentlich nur mehr alles schön löten und dann die 
Sender- und Empfängerschaltung mit dem Arduino Due verheiraten  ;)

von Christoph E. (stoppi)


Angehängte Dateien:

Lesenswert?

Jetzt stellt sich die Frage, ob ich die Schaltung mit dem LM7171 als 
Präzisionsgleichrichter überhaupt noch probieren soll....

von Christoph E. (stoppi)


Angehängte Dateien:

Lesenswert?

Aufbau ist soweit fertig. Wenn ich ein wenig Zeit habe, gibt es den 
ersten Funktionstest...

von Philipp G. (geiserp01)


Lesenswert?

Interessantes Projekt. Wie löst Du nun das Problem mit dem Körper?

von Achim S. (Gast)


Lesenswert?

Christoph E. schrieb:
> Aufbau ist soweit fertig. Wenn ich ein wenig Zeit habe, gibt es den
> ersten Funktionstest...

sieht gut aus, danke für die Rückmeldung. Wie früher schon mal 
angedeutet: ich bin fast ein bisschen überrascht, dass die >100MHz OPV 
auf Lochraster und mit Potis in der Rückkopplung so sauber laufen. Aber 
wenn man sich die Echos anschaut tuns sie es ganz offensichtlich.

von Christoph E. (stoppi)



Lesenswert?

So, es gibt gute und schlechte Neuigkeiten.

Zuerst die guten:

* Ich habe nun erste Bilder mit doch einigermaßen gut sichtbaren Echos.

* Die Zeitdehnung und der Pauseschalter funktionieren wie sie sollen.

Nun die Schlechten:

* Der negative Spannungswandler 7660 war mit den 3 OPV und dem 
Transistor überfordert und fliegt raus. Ersetzt wird er durch eine 
symmetrische Spannungsversorgung mit 2 Steckernetzteilen.

* Der ADC des Arduino Due liefert immer die gleichen Werte für rund 4-5 
nacheinander folgende Konvertierungen. Daher wirkt die Auflösung 
besonders im 0-120µs-Modus bescheiden, da ich anstelle der Linien nun 
Rechtecke mit einer Höhe von 4-5 Pixel mit dem selben Grauwert erhalte. 
Dem muss ich noch nachgehen, indem ich in den nächsten Tagen einmal ein 
1 MHz-Signal einspeise und schaue, welche Werte der ADC dann liefert. 
Ein analoger Einlesevorgang dauert im Moment rund 0,47 µs.

Vielleicht hat ja einer von euch einen Tipp, warum die vom ADC 
gelieferten Werte quasi immer gebündelt sind. Die Codezeilen für das 
Einlesen der analogen Werte habe ich angefügt...

: Bearbeitet durch User
von Markus K. (markus-)


Lesenswert?

Christoph E. schrieb:
> indem ich in den nächsten Tagen einmal ein
> 1 MHz-Signal einspeise und schaue, welche Werte der ADC dann liefert.

Der ADC macht doch maximal 1MSPS. Da ist ein 1MHz-Signal wahrscheinlich 
eine schlechte Idee.

von Analog OPA (Gast)


Lesenswert?

Markus K. schrieb:
> Der ADC macht doch maximal 1MSPS. Da ist ein 1MHz-Signal wahrscheinlich
> eine schlechte Idee.

Ich glaube, dass schon die Nutzung dieses built-in-ADCs die schlechte 
Idee ist. Lieber einen externen, guten. Diese Typen eignen sich nur für 
Spannungsüberwachung und andere langsame Vorgänge.

von Christoph E. (stoppi)



Lesenswert?

So, kurzer Zwischenbericht. Das Einlesen der analogen Werte funktioniert 
jetzt mit einer zeitlichen Auflösung von 0.37µs/Wert bei 3-facher 
Kopplung (d.h. immer 3 ausgegebene Werte sind ident) bzw. durch ein 
geringfügig anderes Auslesen des ADC's 1µs/Wert, aber diesmal ohne 
Wertwiederholungen.

Die gesamte Empfängerschaltung habe ich neu löten müssen, nachdem die 
erste Ausführung nach einigen Umlötaktionen ein starkes Rauschen zeigte. 
Jetzt fehlt nur noch ein etwas ansprechender Aufbau auf einer Platte und 
dann werde ich zum Abschluss noch versuchen, am Körper Echos zu 
erfassen...

Erste Auslesevariante:
1
unsigned long start_time;
2
unsigned long stop_time;
3
unsigned long values[100];
4
5
void setup()
6
 {        
7
  Serial.begin(9600);  
8
  
9
  adc_init(ADC, SystemCoreClock, 21000000UL, ADC_STARTUP_FAST);
10
11
  //analogReadResolution(10);
12
  
13
  ADC->ADC_MR |= 0x80;  //set free running mode on ADC
14
  //ADC->ADC_CR=2;
15
  ADC->ADC_CHER = 0x80; //enable ADC on pin A0
16
  
17
 }
18
19
void loop()
20
 {
21
  unsigned int i;
22
    
23
  start_time = micros();
24
  
25
  for(i=0;i<100;i++)
26
   {
27
    while((ADC->ADC_ISR & 0x80)==0); // wait for conversion
28
    values[i]=ADC->ADC_CDR[7]; //get values
29
   }
30
  
31
  stop_time = micros();
32
33
  Serial.print("Total time: ");
34
  Serial.println(stop_time-start_time); 
35
  Serial.print("Average time per conversion: ");
36
  Serial.println((float)(stop_time-start_time)/100);
37
38
  Serial.println("Values: ");
39
  
40
  for(i=0;i<100;i++)
41
   {
42
    Serial.println(values[i]);
43
   }
44
  
45
  delay(8000);
46
 }

zweite Auslesevariante:
1
unsigned long start_time;
2
unsigned long stop_time;
3
unsigned int values[100];
4
5
unsigned int i;
6
7
void setup()
8
   {        
9
    Serial.begin(115200);  
10
11
    //analogReadResolution(8);
12
    
13
    REG_ADC_MR = 0x10380080;              // change from 10380200 to 10380080, 0 is the PRESCALER and 8 means FREERUN
14
    ADC -> ADC_CHER = 0x03;                 // enable ADC on pin A7
15
   }
16
17
void loop()
18
   {
19
    start_time = micros();
20
    
21
    for(i = 0; i < 100; i++)
22
       {
23
        while((ADC->ADC_ISR & 0x03)==0);  // wait for conversion
24
        
25
        values[i] = ADC->ADC_CDR[0];      //get values
26
       }
27
    
28
    //delayMicroseconds(100);
29
    //delay(5);
30
    
31
    stop_time = micros();
32
33
    Serial.print("Total time for 100 values: ");
34
    Serial.print(stop_time-start_time);
35
    Serial.println(" microseconds");
36
    Serial.print("Average time in microseconds per conversion: ");
37
    Serial.println((float)(stop_time-start_time)/100);
38
39
    Serial.println("Values: ");
40
41
    
42
    for(i=0;i<100;i++)
43
       {
44
        Serial.println(values[i]);
45
       }
46
    
47
    delay(2000);
48
   }

von Christoph E. (stoppi)



Lesenswert?

So, habe nun die Empfängerschaltung ein wenig geändert und im Anschluss 
an die 3 AD811-Verstärkerstufen mit dem LM7171 noch einen 
Präzisionsgleichrichter umgesetzt. Das funktioniert jetzt einigermaßen 
zufriedenstellend. Ich erhalte am Wasserballon 2-3 Echos. Die Stärke der 
Echos hängt stark von der richtigen Ausrichtung des Messkopfs ab.

Einen Wermutstropfen hat die gesamte Geschichte allerdings: An den 
Körper gehalten ergeben sich nur ganz schwache einzelne Echos. Von einem 
richtigen Abbild der inneren Struktur bin ich weit entfernt. Da ich 
vermutet habe, dass die Signale beim Körper viel schwächer sind als bei 
den Metallzylindern bzw. dem Wasserballon, habe ich dem Empfänger eine 
4-te (mit dem verstärkenden Präzisionsgleichrichter eigentlich 5) 
Verstärkerstufe spendiert. Aber selbst da, gehen die Körperechos nahezu 
im Rauschen unter. Verstärke ich also nochmals, so erhalte ich nicht 
wirklich mehr Informationen. Mich würde es ja interessieren, mit welchen 
Pegeln die richtigen Sonographien arbeiten. Weiß das vielleicht jemand 
von euch?

An und für sich ist das Projekt somit abgeschlossen. Anbei noch der 
finale Schaltplan. Ein Video werde ich zum Abschluss noch hochladen. 
Obwohl nicht zur Gänze zufriedenstellend verlaufen, bin ich mit dem 
Ergebnis dennoch zufrieden. ;)

P.S.: Eine Frage hätte ich noch. Die besten Resultate erziele ich, wenn 
ich die Stelle mit dem ? ohne Widerstand direkt mit GND verbinde. Warum 
das so ist, ist mir schleierhaft. Da schließe ich doch das Signal kurz? 
:gruebel: Vielleicht hat ja einer von euch eine Erklärung dafür...

von M.A. S. (mse2)


Lesenswert?

Christoph E. schrieb:
> P.S.: Eine Frage hätte ich noch. Die besten Resultate erziele ich, wenn
> ich die Stelle mit dem ? ohne Widerstand direkt mit GND verbinde. Warum
> das so ist, ist mir schleierhaft. Da schließe ich doch das Signal kurz?

Weder habe ich den ganzen Thread komplett gelesen, noch mag ich mich 
jetzt detailiert mit den Einzelheiten der Schaltung beschäftigen.
Aber:

Du hast hier insgesamt einen Verstärker mit hohem Verstärkungsfaktor 
(und noch dazu mit nicht ganz geringer Bandbreite?) gebaut. Bei solchen 
Sachen musst Du immer berücksichtigen, dass es ungewollte Kopplungen 
zwischen den einzelnen Stufen über GND geben kann.
Dein Aufbau ist auf Lochrasterkarte, soetwas schreit förmlich nach 
Effekten dieser Art.

Wenn Du an der von Dir bezeichneten Stelle eine GND-Verbindung 
herstellst, schließt Du in der Tat Dein Signal nach GND kurz. Allerdings 
fließt dann der Ausgangsstrom vom dritten OP von links (leider hast Du 
keine Bauteilnamen vergeben, wie z.B. IC3) nach GND. Dieser GND-Strom 
könnte evtl. den rechten OP entsprechend beeinflussen (eine andere 
Erklärung fällt mir spontan nicht ein).


PS:
Trotzdem alles in allem: eine interessante Projektidee. Cool, dass Du es 
konsquenz durchzuziehen versucht hast und uns hier teilhaben lässt.

: Bearbeitet durch User
von B e r n d W. (smiley46)


Lesenswert?

> die Stelle mit dem ? ohne Widerstand direkt mit GND

Eventuell kannst du mal eine Induktivität mit ca. 100µH...1mH probieren. 
Damit werden tiefe Frequenzen nach GND kurzgeschlossen.

Überhaupt würde eine bessere Eingrenzung der Bandbreite des Verstärkers 
den Rauschabstand deutlich verbessern. Möglicherweise werden damit die 
Körpersignale deutlicher.

von Achim S. (Gast)


Lesenswert?

Christoph E. schrieb:
> P.S.: Eine Frage hätte ich noch. Die besten Resultate erziele ich, wenn
> ich die Stelle mit dem ? ohne Widerstand direkt mit GND verbinde. Warum
> das so ist, ist mir schleierhaft.

Das ist seltsam.

Vielleicht fehlt deinem LM7171 zwischendurch der Eingangs-Biasstrom, 
wenn grade beide Dioden sperren, und er reagiert zickig. Ein halbwegs 
hochohmiger Widerstand (ein paar kOhm) von der Stelle nach Masse sollte 
das beheben ohne das Signal kurzzuschließen.

von Christoph E. (stoppi)



Lesenswert?

So, ich nähere mich schön langsam wohl dem Optimum, das ich wohl aus 
meinem simplen Aufbau herausholen kann. Habe nun am display auf der 
Seite eine Zeitachse jeweils für 0-120µs bzw. 0-240µs hinzugefügt.

Den US-Kopf befeuere ich nun nicht mehr mit 15V wie zu Beginn, auch 
nicht mit 50V wie in der kurzen, mittleren Ausbaustufe, sondern aktuell 
mit 100V.

Halte ich nun den US-Kopf an meinen längsten Aluminiumzylinder, so 
übersteuert der Empfänger schon extrem stark. Daran erkennt man, mit 
welcher Empfindlichkeit ich nun verglichen mit dem Beginn meiner 
Versuche unterwegs bin. Halte ich den US-Kopf etwa an meinen 
Oberschenkel, so erhalte ich 1-2 schöne Echos. Wird wohl mein 
Oberschenkelknochen sein...

Damit ist dieses Projekt eigentlich abgeschlossen. Mit dem Ergebnis bin 
ich einigermaßen zufrieden. Natürlich hätte ich mir schönere Bilder vom 
Inneren meines Körpers erhofft, aber dies ist wohl nicht so einfach 
möglich, vor allem mit einen Lackdickenmessgerät.

von Bastler (Gast)


Lesenswert?

@hans: ich verwende natürlich ein Gel und zwar das Elektrodengel von
meinem EKG...

EKG != Ultraschall   !!!!

EKG Gel muss Strom leiten, beim Ultraschall muss die Schallwelle 
eingekoppelt werden.

Probier also mal mit richtigem US-Gel.

von Christoph E. (stoppi)


Angehängte Dateien:

Lesenswert?

;-)

von Dieter (Gast)


Lesenswert?

Der Arm ist ganz schoen hin. Das war anscheinend zu viel Ultraschall.

von Schneemann (Gast)


Lesenswert?

Mit wie viel Watt und welcher Frequenz wurde der US Sender betrieben?

von Schneemann (Gast)


Lesenswert?

Christoph E. schrieb:
> ;-)

Dieter schrieb:
> Der Arm ist ganz schoen hin. Das war anscheinend zu viel
> Ultraschall.

Der fällt genau an dieser Stelle nach kurzer Zeit einfach ab.

von Christoph E. (stoppi)


Lesenswert?

Die Pulsschaltung habe ich oben eingefügt. Der 100nF Kondensator entlädt 
sich über den 50 Ohm Widerstand, zu dem der US-Sender parallel liegt. 
Die Leistung weiß ich jetzt nicht, die Spitzenspannung beträgt 
einstellbar 45-300V, konkret 100V. Spezifiziert ist dieser mit 5 MHz, in 
diesem Fall ist es aber nur ein einzelner Puls.

Und übrigens, das ist mein Oberschenkel und nicht mein Arm...

: Bearbeitet durch User
von Schmeemanm (Gast)


Lesenswert?

Dann laufe schleunigst zu Arzt! Ich kann die Bilder zeigen wo die 
Extremitäten einfach abgefault sind.

von Dieter (Gast)


Lesenswert?

Glaube Schneemann meint Unfaelle mit Beruehrung von Schwingflaechen im 
Betrieb von Ultraschallbecken oder Verschweisser.

von Uzo (Gast)


Lesenswert?

Schneemann meint bestimmt Gefrierbrand.

von Uzo (Gast)


Lesenswert?

Sehe gerade, einmal heißt er Schneemann, dann Schmeemann, hmmm.

von Schneemann (Gast)


Lesenswert?

Übliche Leistungen bewegen sich im medizinischen Bereich von mW!

von Wolfgang (Gast)


Lesenswert?

Schneemann schrieb:
> Übliche Leistungen bewegen sich im medizinischen Bereich von mW!

Aber nicht als Peak-Leistung, sondern als Mittelwert. Bei Pulsbetrieb 
kommen da schnell ein paar Zehnerpotenzen zusammen

Beitrag #5640705 wurde von einem Moderator gelöscht.
von doc Brown (Gast)


Lesenswert?

Du solltest beim Einschallen tatsächlich Cavitation im Hinterkopf 
behalten und nicht beliebig großen Schalldruck im Gewebe aufbauen.
Du scheinst den Transducer ja mit 9V in deiner Schaltung zu benutzen, 
von daher ist das vermutlich kein reales Problem.
Trotzdem geht es ja nciht nur um eine absorbierte Leistung.

cooles Projekt aber

von Uzo (Gast)


Lesenswert?

Bei medizinischen Ultraschallgeräten wird der Schall auch stark 
fokussiert und elektronisch geschwenkt (Array). Die Schallköpfe sind 
dafür entsprechend geformt. Das wäre auch hier denkbar, damit das 
bisschen Schallenergie nicht zu stark im Gewebe gestreut wird. Schwenken 
natürlich von Hand.

von Jemin K. (jkam)


Lesenswert?

Wenn Du den Schallkopf reproduzierbar und gleichmäßig verschieben 
kannst, kannst Du ein synthetic aperture Bild errechnen!
Die Leistung würde ich auch mal ausrechnen, Deine Haut sieht jedenfalls 
schon mal ganz schön mitgenommen aus. Normalerweise testet man sowas an 
einem Phantom, nicht an sich. Also Gelatine pluss Konservierungsmittel 
plus Kugel in der Mitte.

: Bearbeitet durch User
von Uzo (Gast)


Lesenswert?

> Normalerweise testet man sowas an einem Phantom, nicht an sich.

Ehefrau (so man hat) reicht vollkommen.

von Christoph E. (stoppi)


Lesenswert?

Hallo!
Danke für die Einwände. Die pulsleistung ist wie schon gesagt mit 
Sicherheit erheblich größer als ein paar mW. Ich drücke den Kopf zwecks 
Kopplung ziemlich fest auf die Haut, von daher rühren die Rötungen. Habe 
dies auch im ausgeschalteten Zustand wiederholt, mit denselben 
Auswirkungen...
Zudem erstelle ich nur 1x pro Sekunde ein Bild. Die Möglichkeit des 
schwenkens habe ich bei der Programmierung dahingehend berücksichtigt, 
dass ich in x-RIchtung 18 scans parallel anordne, bevor diese 
überschrieben werden.

Glaube nicht, dass ich was die körperlichen Auswirkungen meiner Versuche 
angeht, auf den Spuren von Marie Curie wandle, werde meinen Oberschenkel 
und Arm aber die nächsten Tage beobachten...

von Jemin K. (jkam)


Lesenswert?


von Michael K. (michaelkk)


Lesenswert?

Tolles Projekt, habe es gerade entdeckt und mit großem Interessen 
gelesen.
Bevor ich Fragen stelle kann ich zumindest etwas Wissen reinbringen: 
Ultraschall Geräte für Materialprüfung im MHz Bereich haben ca. 200V 
Spannung am Piezo und machen auch nur einen Puls. Olympus stellt solche 
Geräte her, kosten 7000€+. Im medizinischen Bereich kenne ich die 
Spannungen nicht.
Eine interessante Arbeit zum Thema 2D Ultraschall, also genau Dein Fall, 
gibt es hier: 
http://arantxa.ii.uam.es/~jms/pfcsteleco/lecturas/20140410RelannoIborraHelia.pdf
Ist englisch (mit spanischem Cover), erklärt ganz gut wie man zu 2D 
Bildern kommt.


Ich habe schonmal ein Projekt angefangen um einen MHz Ultraschallmesser 
für Materialstärken (Wand, Platten etc.) und Risse zu bauen, bin aber 
auf halben Weg verhungert. Mit Deiner Vorlage würde ich das gerne 
nochmal starten, jetzt kommt meine Bitte:
Könntest Du bitte Deine Schaltpläne & Bauteile teilen? Ich hab 
angefangen mir aus Deinen Posts alles zusammenzusammeln, an manchen 
Stellen fehlen mit jedoch informationen (z.B. Boost Converter).

Danke für die Motivation die Du mir gegeben hast und das Teilen Deiner 
Arbeit

Grüße
Michael

von Christoph E. (stoppi)


Angehängte Dateien:

Lesenswert?

Hallo Michael!

Als Boost-Converter habe ich 2 Modelle in Serie betrieben. Der erste 
Converter erzeugt mir aus 9V rund 16V und mit diesen betreibe ich dann 
den zweiten für die >= 100V (momentan 100V aber da ist noch wie du auch 
schreibst Luft nach oben).

Links:

https://www.ebay.com/itm/DC-DC-Adjustable-Step-up-boost-Power-Converter-Module-XL6009-Replace-LM2577/322569609593?epid=1364500465&hash=item4b1aa5a179:g:BDgAAOSwvflZUkmI:rk:4:pf:0

https://www.ebay.com/itm/DC-DC-Boost-Converter-8-32V-to-45-390V-High-Voltage-ZVS-Step-up-Booster-Module/172465661600?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649


Die Anordnung dieser beiden Module siehst du in der Abbildung oben...

: Bearbeitet durch User
von ja1999 (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

I'm building this project currently and having a few issues.
The ICL7667 is only outputting 0V and therefore the MOSFET drive isn't 
being turned ON.  The chip I'm using is the ICL7667CPA+ from maximum 
integrated.

The voltage I get on pin 2 and 4 of the ICL7667 is 3.87V. I'm not 
completely sure why I'm getting 0V out, as I've bought all the componets 
that were listed in the component listing. However, it was making me 
think that The voltage rating of my capacitors may be affecting it? Is 
it possible for you to link the capacitors that were used?

Next, I'm using a two DC bench power supplies that have been set to 
9V/1A. However, the circuit only takes what it needs the current 
supplied is shown in the photo.

Lastly, I get 100V etc from the boost converter which is good! however 
there just seems to be an issue with driving the power mosfet gate ON.

Thanks in advance.

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.