Hi,
ich habe ein kleines Problem und zwar versuche ich das Signal einer
Ultraschallkapsel (Vss ca. 0,4V, die Frequenz liegt bei 39.06kHz und die
Impedanz bei 39kHz bei etwa 10k) mit dem Analog Comparator des Atmega88
auf zero-crossings hin zu analysieren (Phasenverschiebung). Auf AIN0
habe ich eine Referenzspannung von 2,5V angelegt und mit dem negativen
Pol der US-Kapsel verbunden. Das andere Ende der Kapsel hängt auf AIN1.
Problem:
Messe ich die Spannung über AIN0/AIN1 mit meinem Oszi, kann ich einen
Gleichspannungsanteil von ca. 0,25V auf meinem Signal feststellen, was
bedeutet dass die Spannung nie 0 wird und so der Comparator nie auslöst.
Diese Gleichspannung scheint immer da zu sein, ohne die Kapsel (mit
'nackten' AINs) ist sie auch vorhanden.
Ich habe den Code angehängt; sorry das ist ein Experiment daher ist der
code nicht schön.
Meine Frage ist jetzt: Habe ich im Datenblatt irgendwas übersehen -
diese Spannung ist also 'normal' und ich bin einfach nur zu doof) oder
stimmt sonst was nicht?
(übrigens löst der Comparator-Interrupt ohne weiteres aus, wenn man nen
Kurzschluss baut, so isses ned)
Für 'hints' wäre ich echt dankbar ;)
Tobias Schlegel schrieb:> Meine Frage ist jetzt: Habe ich im Datenblatt irgendwas übersehen
Schwer zu sagen, da niemand ausser dir weiss, welcher Ultraschallsensor
das ist, und folglich nicht ins Datasheet reinsehen kann.
Wenn der Sensor Piezo-Charakteristik hat, dann ist er bzgl. Gleichstrom
stromfrei, folglich fehlt AIN1 die Nullspannung und der Leckstrom
bestimmt das gemessene Potential. Da könnte ein (wohl eher hochohmiger)
Widerstand zwischen AINx helfen.
Whoops sorry die US-Kapseln hab ich vergessen; das ist in dem Fall ein
Piezo-Wandler mit dem Aufdruck "400SR" - Reichelt Bestellnummer UST-40R
(Receiver).
Es handelt sich dabei tatsächlich um einen Piezo-Typ. Das mit dem
Widerstand habe ich bereits erfolglos versucht, allerdings werde ich das
morgen bei klarem Geist nochmal probieren; möglich dass andere Probleme
einen Erfolg verhindert haben (hatte u.a. massive Probleme mit
(HF-)Einstrahlung vom Sender und Kontaktprobleme) - Danke für den Tipp
und die schnelle Hilfe!!
@hacky negativ, es ist keine Verstärkerschaltung vorhanden. Das ist auch
ganz bewusst so gewählt.
Mir ist schon klar, dass ein niederohmigerer (Verstärker-)Ausgang diese
Probleme einfach wegbügeln würde aber in dem Fall wäre ein Verstärker
etwas unpraktisch, da ich gedenke diesen (eigentlich zum Empfangen
gedachten) Wandler auch zum Senden zu benutzen...
@prx wunderherrlich! - ich versuchs mal - danke!
Nur ein Widerstand parallel zum Piezowandler könnte zu wenig wein, da
damit zwar ein Driften der Differenz-, nicht aber der Gleichtaktspannung
verhindert wird.
In der linken Schaltung wird zusätzlich mit einem Spannungteiler die
Gleichtaktspannung auf etwa die halbe Versorgungsspannung gelegt, so
dass garantiert ist, dass der zulässige Eingangsspannungsbereich des
Komparators auch unter ungünstigen Bedingungen nicht verlassen wird.
Wenn die Signalamplitude kleiner als die Offsetspannung des Komparators
(bis zu 40mV) ist, wirst du aber dennoch nichts detektieren können. Die
Schaltung rechts enthält ein Trimmpoti, mit dem der Offset kompensiert
werden kann. Evtl. musst du mit den Widerstandswerten noch etwas experi-
mentieren.
Wahrscheinlich kannst aber mit der einfachen Schaltung ohne Verstärker
und Filter ohnehin nur starke Schallsignale zuverlässig detektieren, so
die Offsetkompensation vielleicht überflüssig ist.
Hi yalu,
meine Schaltung ist (momentan) genau die linke.
Allerdings habe ich die Referenzspannung noch mit je 1µF Elkos und 100n
Kerkos parallel zu den (10k) Teilerwiderständen entkoppelt.
Dadurch habe jetzt ich einen Gleichspannunganteil von ca 2,5V.
Der Parallel-Widerstand ist jetzt mit 39k dimensioniert. Funzt super.
Wie gesagt die Amplitude liegt bei etwa 400mV VSS, also genug für den
Comparator. Ich übertrage das Signal ja auch nur ca. 20cm über eine
Messstrecke, das Signal ist am Empfänger also auch entsprechend stark.
Das Setup funktioniert so recht gut, auch mit dem Input Capture. Jetzt
wirds halt noch mit den Timings haarig...
Die rechte Schaltung ist ne gute Idee. Das Problem ist dass die
Referenzspannung gleichzeitig eine virtuelle Masse für den Sender
darstellt (daher werde ich den Gleichspannungsanteil noch auf ca. 0,5V
senken).
Danke für eure echt super Hilfe!!
Tobias Schlegel schrieb:> Die rechte Schaltung ist ne gute Idee. Das Problem ist dass die> Referenzspannung gleichzeitig eine virtuelle Masse für den Sender> darstellt (daher werde ich den Gleichspannungsanteil noch auf ca. 0,5V> senken).
Und ihn unsymmetrisch anfahren? Keine Ahnung ob der entstehende
Gleichspannungsanteil gesund ist.
Aber wenn es die um die Amplitude geht, dann geht das besser. Fahr den
Transmitter komplementär an, beide Pins gegensinnig, z.B. mit beiden
Ausgängen eines Timers.
Also das ist so. Ich plane ein Ultraschallanemometer
(http://de.wikipedia.org/wiki/Anemometer) und dazu muss ich die Laufzeit
eines US-Signals in 2 Richtungen (vorlaufend und rücklaufend) messen
(und das dann nochmal 90° zur ersten Messrichtung versetzt). Dazu
bräuchte ich aber immer einen Sender und einen Empfänger. Ich habe aber
festgestellt, dass man mit den Receiver-Typen dieser Kapseln fast
genauso gut "senden" kann wie mit den Transmitter-Typen. Also versuche
ich gerade die Empfängerkapseln für beides zu verwenden und mir nebenher
noch eine Rx/Tx Umschaltung zu ersparen...
Im Moment siehts vielversprechend aus.
Daher kann ich die "Sender" nur asymmetrisch anfahren da ich sonst eine
analog-taugliche Rx/Tx Umschaltung bräuchte und zwar mit 4 Kanälen. Und
das ist dann wenn ich sehe wie viele Überschwinger ich schon von den
paar mm zwischen AVR-Pin und der Abschirmung des Koax habe der reinste
Horror...
Tobias Schlegel schrieb:> Daher kann ich die "Sender" nur asymmetrisch anfahren da ich sonst eine> analog-taugliche Rx/Tx Umschaltung bräuchte und zwar mit 4 Kanälen.
Kann ich nicht recht nachvollziehen. Wenn du den gleichen Sensor für
beide Richtungen verwenden willst, dann kannst das doch völlig ohne
Umschaltung tun. Im Idealfall nimmt man für den Transmitter ein OCxA/B
Paar, das man direkt parallel zum AINx Paar anschliesst und im
Empfangsfall auf Eingang konfiguriert und damit passiviert.
Wenn man das Transmitter-Timing zu Fuss statt mit dem Timer macht, dann
geht das auch mit den AINx-Pins selbst, auf Ausgang konfiguriert und
komplementär angesteuert.
PS: Ich seh grad, dass beim Mega88 AIN0 und OC0A sowieso schon auf den
gleichen Pins liegen. Gibt einen Timer-basierenden Rx/Tx-Wandler mit 3
Pins und 10Vss Amplitude.
Richtig, das Problem ist dass ich 4 Wandler ansteuern muss. Und zwar
muss immer einer senden und ein anderer empfangen.
Ich gedachte dafür den MUX des ADC zu verwenden den man praktischerweise
auf den AIN1 aufschalten kann. Senden erfolgt dann indem der Pin auf
Ausgang geschaltet wird und per Soft-PWM ein 39kHz-Signal moduliert
wird. - Also so ist das mal gedacht, getestet ist das noch nicht.
Die "Masse" der Wandler geht auf die virtuelle Masse (+0,5V absolut).
Und dann (mit 39k parallel) auf einen der 8 ADn-Eingänge. Dann kann ich
da nach belieben umschalten. Sendeseitig liegt dann maximal +4,5V und
minimal -0,5V an, was eine Vss von 5V gibt.
Dirty ich weiß ;)