Forum: Mikrocontroller und Digitale Elektronik DIY Speicheroszi


von Maxim (Gast)


Lesenswert?

Ich habe vor, einen Logicanalyzer mit einem AVR32 aufzubauen. Wie 
sinnvoll ist es, als zusätzliches Feature einen einfachen Speicheroszi 
zu realisieren? Geht das? Im Prinzip müssen ja nur die ADC-Werte in den 
RAM geschaufelt werden, oder? Ich frage mich, was man hardwareseitig 
beachten muss. Also z.B. Überspannungsschutz, Spannungsteiler für höhere 
Eingangsspannungen u.s.w.

Vielleicht existieren bereits solche DIY-Geräte mit veröffentlichten 
Schaltplänen?

von Steffen (Gast)


Lesenswert?

>Vielleicht existieren bereits solche DIY-Geräte mit veröffentlichten
>Schaltplänen?

vielleicht gibt es dir wirklich. Hast du schon mal gesucht? Google und 
Co. und die Hilfe dieses Forums können dabei helfen.

Steffen.

von Stefan Salewski (Gast)


Lesenswert?

>zusätzliches Feature einen einfachen Speicheroszi
>zu realisieren? Geht das?

Sicher geht das. In der Regel nimmt man dann aber (zusätzlich) einen 
FPGA.
DSO ist ein weites Feld, von extrem einfachen Geräten mit ein paar MHz 
Abtastfrequenz bis zu Geräten mit mehreren Hundert MHz, weitem 
Eingangspannungsbereich usw. Das alles wurde schon oft diskutiert -- die 
Meisten haben dann aufgegeben, weil es doch sehr viel Aufwand ist, ein 
brauchbares Gerät zu bauen.

von Manuel Kampert (Gast)


Lesenswert?

Ich habe mich damit auch eine ganze Weile beschäftigt. Das Problem ist 
hauptsächlich der Breitbandvorverstärker. Wenn Du hier etwas sinnvolles 
> 10 MHZ haben willst wird das ganze ZIEMLICH komplex.

Das bekannteste OpenSource Projekt wird wohl dieses hier sein:

http://www.bitscope.com/

Wenn wieder so ein Projekt gestartet werden sollte wäre ich natürlich 
gerne dabei :-)

Gruß
  Manuel Kampert

von 3356 (Gast)


Lesenswert?

Ja. zusaetzlich zum LA kommt ein Vorverstaerker und ein Trigger.

von Maxim (Gast)


Lesenswert?

Vielleicht kann man etwas aus dem c't-Labor übernehmen. Die müssten doch 
etwas ähnliches haben. Ansonsten schaue ich mir die Projekte bei 
bitscope.com an. Die sehen aber schon sehr professionell aus. Da wurde 
bestimmt nich gegeizt bei den ICs.

Wozu ein Trigger im Speicheroszi-Modus? Welche Vorteile bringt er mir?

von Marcus W. (blizzi)


Lesenswert?

Maxim wrote:
> Wozu ein Trigger im Speicheroszi-Modus? Welche Vorteile bringt er mir?

Sobald die Signale so schnell werden, so dass man nicht mehr von Hand 
auf den Auslöser drücken kann braucht man einen Trigger. (Selbst RS-232 
is schon zu schnell)

Ausser du nimmst einen sehr langen Zeitraum auf und scrollst dann rein, 
aber das nimmt seeehr viel Speicherplatz in Anspruch und treibt die 
Kosten in die Höhe und schränkt den Bedienkomfort sehr ein.

von Maxim (Gast)


Lesenswert?

Reicht da ein sehr simpler Trigger nicht aus? Z.B. wird die Messung 
gestartet, wenn ein Signal auf der sonst ruhenden Leitung auftaucht. Ich 
vermute, es gibt noch die Möglichkeit, auf ein bestimmtes Signal zu 
Triggern. Aber das ist schon zuviel Luxus für mich. Außerdem wird diese 
Funktion doch in Software umgesetzt, denke ich. Kann ich das also später 
"nachrüsten"?

von Simon K. (simon) Benutzerseite


Lesenswert?

Maxim wrote:
> Reicht da ein sehr simpler Trigger nicht aus? Z.B. wird die Messung
> gestartet, wenn ein Signal auf der sonst ruhenden Leitung auftaucht.

Ruhende Leitung? Egal auf welcher Leitung, Rauschen und Störungen gibt 
es immer. Für gewöhnlich sollte man schon eine Triggerschwelle (in Volt) 
einstellen können.

von 3362 (Gast)


Lesenswert?

>Wozu ein Trigger im Speicheroszi-Modus? Welche Vorteile bringt er mir?

Eine ruhende Leitung... aha ...

Zum einen muss man kontinuierlich messen koennen, und kontinuierlich 
anschauen koennen, es ist moeglicherweise nicht immer das Gesuchte 
drauf. Und dann sollen die Bilder immer zu einem definierten Punkt 
beginnen koennen.

von Manuel (Gast)


Lesenswert?

Den Trigger kann man aber per "Software" machen...

von Maxim (maxim) Benutzerseite


Lesenswert?

Wie kriegt man es hin, dass der ADC auch negative Spannungen 
registriert? Muss es ein spezieller ADC sein oder wird das durch ein 50% 
Offset mit vorgeschalteter Elektronik gemacht?

von Stefan Salewski (Gast)


Lesenswert?

In der Regel Letzteres.
Stichwort Addierer.

von Maxim (maxim) Benutzerseite


Lesenswert?

Stefan Salewski wrote:
> In der Regel Letzteres.
> Stichwort Addierer.

Ist mir noch nicht ganz klar? Ich vermute, hier braucht man einen OPV 
als Addierer, nicht?

Ich stelle mir das in etwa so vor:

Gewünschter Messbereich: -10V bis +10V
ADC Messbereich: 0V bis 5V
ADC Auflösung: 8 Bit

1) Zur gemessenen Spannung werden +10V addiert
2) Die Summe wird durch vier geteilt
3) Der vom ADC ermittelte Wert wird um 127 vermindert
4) Gemessene Spannung ist U=(20/255)*(127-Wert_ADC)

Das habe ich jetzt erfunden, aber es geht doch bestimmt einfacher.

edit: Damit ein OPV negative Spannungen verarbeiten kann, braucht er 
doch eine symmetrische Spannungsversorgung, oder? Geht es nicht ohne?

von Stefan Salewski (Gast)


Lesenswert?

>Das habe ich jetzt erfunden, aber es geht doch bestimmt einfacher.

So in etwa -- ist doch einfach.

>Damit ein OPV negative Spannungen verarbeiten kann, braucht er
>doch eine symmetrische Spannungsversorgung, oder? Geht es nicht ohne?

Notfalls schon: Drei Widerstände sternförmig, außen einmal das Signal, 
einmal Masse und einmal eine negative Spannung. Wurde erst kürzlich hier 
gefragt und von jemanden mit Bildchen oder konkreten Widerstandswerten 
beantwortet, musst mal etwas suchen.

Das ganze Thema wurde eh schon oft durchgekaut, auch hier im Forum.

Wenn man etwas halbwegs sinnvolles bauen will:

- Messbereich +-5mV bis +-50V in Stufen umschaltbar, mit 
Überspannungsschutz
- eher etwas mehr als 8 Bit
- linearer Frequenzgang bis 100 MHz
- 200 Mega-Samples Abtastrate
- USB Datenübertragung zum PC

- Dann die Software/Messoberfläche auf dem PC

Bis man das alles zusammen hat dauert es schon etwas...

von Stefan Salewski (Gast)


Lesenswert?

>außen einmal das Signal, einmal Masse und einmal eine negative Spannung.

Eine POSITIVE Spannung war natürlich gemeint, wenn man die negative, zu 
messende Spannung in den positiven Bereich schieben will.

Zum Thema gibt es sogar einen WIKI-Eintrag:

http://www.mikrocontroller.net/articles/Spannungsteiler

Es gibt grundsätzlich natürlich viele Möglichkeiten negative Spannungen 
zu verarbeiten. Einige AD-Wandler können wohl tatsächlich auch negative 
Spannungen verarbeiten. Und dann gibt es spezielle Verstärkerbausteine 
wie etwa den THS4509, mit differentiellen Ausgang und Offset.

von Maxim (maxim) Benutzerseite


Lesenswert?

Danke für die hilfreichen Infos.

> - Messbereich +-5mV bis +-50V in Stufen umschaltbar, mit
> Überspannungsschutz

Ja, mir würden drei Stufen reichen: +-1V, +-10V +-50V

> - eher etwas mehr als 8 Bit

Ich vermute mal, dass schnelle ADCs mit hoher Auflösung nicht billig 
sind.

> - 200 Mega-Samples Abtastrate

50 oder noch weniger würden mir reichen. Möchte nicht so viel Geld 
ausgeben, weil eben die Gefahr besteht, dass das alles nichts wird und 
ich nen Haufen teuer ICs rumliegen habe und mir dann zwanghaft eine 
andere Verwendung für sie ausdenken muss. ;)

> - USB Datenübertragung zum PC

Es gibt ja schon ein Programm, hab es auch hier im Forum gesehen und es 
funktioniert mit vielen Selbstbau-Logicanalyzern. Mir fällt nur der Name 
nicht ein. Der AVR32 hat aber sowieso eine USB-Schnittstelle. Außerdem 
wird das Gerät einen 640x480 SW-LCD haben, sodass die Übertragung der 
Messungen auf den PC nicht zwingend notwendig ist.

Ich möchte mir jetzt ein Paar Bauteile zum Experimentieren bestellen, 
also OPV und ADCs und was man sonst noch brauchen könnte. OPV nehme ich 
10 Stück LM358, bei den ADCs weiß ich aber nicht, was ich nehmen soll. 
Der billigste bei Reichelt kostet 1,85€ (ADC 0804 CN). Kann man mit dem 
etwas anfangen bzw. ist es ein "stinknormaler" ADC?

von Stefan Salewski (Gast)


Lesenswert?

>Der billigste bei Reichelt kostet 1,85€ (ADC 0804 CN). Kann man mit dem
>etwas anfangen bzw. ist es ein "stinknormaler" ADC?

Bei Billigteilen kann ich Dir nicht viel helfen.

LM358 hat wohl ein Verstärkungsbandbreiteprodukt von nur einigen 
Megahertz.

Thema billig-ADC: Da gibt es irgendeinen mit 8 Bit mit 830 im Namen, der 
wohl nur wenige Euro kostet und nicht schlecht ist, mit 80 MSPS.

Musst halt selber mal die Suchfunktion des Forums benutzen, und 
natürlich die Datenblätter ansehen.

von Stefan Salewski (Gast)


Lesenswert?


von Maxim (maxim) Benutzerseite


Lesenswert?

Also das ist mein Testaufbau. Damit möchte ich zunächst Erfahrungen mit 
OPVs und ADCs sammeln.

Bevor es ans Ätzen geht:

1) Wo fehlen noch wichtige Bauteile, Abblockkondensatoren?
2) Kann ich V_REF/2 einfach in der Luft hängen lassen? Oder muss da 
unbedingt eine Referenzspannung drauf? Soweit ich das Datenblatt 
verstanden habe, wird bei nicht angesclossenem V_REF/2-Pin VCC als 
Referenzspannung genommen.
3) Wenn ich den ADC mit einem uC takte, kann der CLK_R-Pin dann 
ebenfalls unbeachtet gelassen werden?

Einen Überspannungsschütz und einstellbare Messbereiche lasse ich bei 
diesem Aufbau noch aus ...

von Maxim (maxim) Benutzerseite


Angehängte Dateien:

Lesenswert?

Schaltplan

von Maxim (maxim) Benutzerseite


Lesenswert?

Ach ja, noch zwei Fragen bezüglich der Samplingrate und der Frequenz: 
Welche Samplingrate könnte man Pi mal Daumen mit einem AVR32@60MHz 
erreichen? Welche Frequenz dürfen die gerade noch messbaren Signale dann 
haben?

Wenn ich davon ausgehe, dass der uC im schnellsten Modus arbeitet und 
nur noch Daten vom ADC empfängt und in den SRAM ablegt, schätze ich pro 
Sample etwa 10 uC-Takte. Also 6 MSp/s?

Um ein Sinussignal einigermaßen gut abzubilden, braucht man schon etwa 
20 bis 30 Samples. Die max. Frequenz wäre also 6.000.000/30 = 200.000 
Hz? Ist ja ziemlich wenig ... Hoffentlich mache ich irgendwo einen 
Fehler. ;)

von 3363 (Gast)


Lesenswert?

Weshalb den ADC mit einem Controller bedienen ? Was gewinnt man damit ? 
Ist doch viel einfachen den ADC die Werte direkt in das RAM werfen zu 
lassen. Das bedeutet im Wesentlichen den Adresszaehler hochzaehlen.

von Maxim (maxim) Benutzerseite


Lesenswert?

Stimmt, dann kann ich auch wesentlich mehr Speicher nutzen und mehr 
Samples/Sekunde erreichen. Das hochzählen der Adresse können dann zwei 
4040 erledigen (wie in diesem Projekt: 
http://www.microlaboratories.com/?page_id=77).  Die schaffen max. 90 
MHz. Muss der Takt dann mit PLL erzeugt werden? Es gibt doch sicherlich 
ICs, an die man nur noch Kondensatoren und Widerstände dranhängen muss 
und die dann den Takt liefern.

edit: Moment mal. Irgendwie muss ja auch der ADC angesteuert werden. Man 
kann ja nicht mit einem Taktsignal gleichzeitig die RAM-Adresse 
hochzählen und den ADC takten. Oje, das wird kompliziert.

von Stefan Salewski (Gast)


Lesenswert?

@Maxim S

Der ADC0804 hat 100us Wandlungsdauer (conversion time), damit wirst Du 
also maximal Zehntausend Wandlungen pro Sekunde machen können.

Ich sage jetzt besser nichts mehr...

von Maxim (maxim) Benutzerseite


Lesenswert?

Stefan Salewski wrote:
> @Maxim S
>
> Der ADC0804 hat 100us Wandlungsdauer (conversion time), damit wirst Du
> also maximal Zehntausend Wandlungen pro Sekunde machen können.

Ist mir schon klar. Dieser ADC ist auch nur zu Testzwecken da. Die 
Fragen beziehen sich aber auf den Aufbau des tatsächlichen Gerätes, 
welches gerade erst in groben Umrissen in meinen Gedanken entsteht.

> Ich sage jetzt besser nichts mehr...

Da habe ich nichts dagegen. Es sein denn, du kannst meine Fragen 
wirklich beantworten. Nichts für ungut!

von Maxim (maxim) Benutzerseite


Angehängte Dateien:

Lesenswert?

Die Testschaltung ist fertig. Am CLK_R-Pin kann ich auch einen Takt 
messen. Der liegt bei 333 KHz.

Morgen geht's dann ans Anschließen an den uC. Mir ist nur noch nicht 
klar, für was RD und WR da sind. Das wird aus dem Datenblatt leider auch 
nicht ersichtlich. Wahrscheinlich sind die Funktionen schon so 
selbstverständlich, dass sie gar nicht erst erklärt werden.

Bei Speicherbausteinen würde RD für read und WR für write stehen. Das 
Erste würde hier noch passen, man ließt schließlich die Werte aus dem 
ADC aus. Aber wozu ist WR gut?

INTR weiß ich auch nicht so recht. Aber ich vermute, dass der ADC hier 
einen Interrupt beim uC auslösen kann, sobald eine Konvertierung zu Ende 
ist.

von Andreas K. (a-k)


Lesenswert?

Maxim S. wrote:

> Samples/Sekunde erreichen. Das hochzählen der Adresse können dann zwei
> 4040 erledigen (wie in diesem Projekt:

Als schneller Adresszähler (MHz) ist ein Ripple-Counter wie der 4040 
nicht sinnvoll, weil es ewig dauert, bis sich der Takt bis zum letzten 
Bit rumgesprochen hat (ca. 130-220ns typ, je nach Hersteller).

Besser: 74HC590.

von Bernhard M. (boregard)


Lesenswert?

Datenblatt von
http://www.datasheetcatalog.net/de/datasheets_pdf/A/D/C/0/ADC0804.shtml
schreibt:
 Conversion begins
 with the arrival of a pulse at the WR input if the CS input is low.

von Maxim (maxim) Benutzerseite


Lesenswert?

@Bernhard M.: Ok, hab's wohl übersehen, danke!

Warum wird beim Triggering die 1. Ableitung des Messsignals ausgewertet 
und nicht seine Amplitude?

von Michael H* (Gast)


Lesenswert?

ohne jetzt alles gelesen zu haben:
http://www.embedds.com/diy-40msps-avr-oscilloscope-with-graphical-lcd/
echt geniales teil!

von Maxim (Gast)


Lesenswert?

Konnte gerade nicht einschlafen und da kam mir eine Idee: Da ADCs mit 
über 80 MS/s und 10 Bit teuer sind, kann man doch zwei langsamere ADCs 
nehmen und parallel betreiben, oder? Solange ein ADC konvertiert, wird 
der andere ausgelesen. Die Schwierigkeit dürfte darin bestehen, den Takt 
zu synchronisieren.

btw: Bei Farnell gibt es einen ADC (ADS5500IPAPG4) für 10.000 Franken. 
Sind die noch bei trost?

von chris (Gast)


Lesenswert?

teuer? Wenn ich es richtig gesehen habe, kostet der ADS830 bei Digikey 
ca. 5$.
Ob sich da der Aufwand lohnt?

von Olli R. (omr) Benutzerseite


Lesenswert?

Maxim S. wrote:

> Warum wird beim Triggering die 1. Ableitung des Messsignals ausgewertet
> und nicht seine Amplitude?

Weil Du normalerweise auf eine steigende oder fallende Flanke eines 
Signals triggerst.

von Olli R. (omr) Benutzerseite


Lesenswert?

Maxim wrote:

> btw: Bei Farnell gibt es einen ADC (ADS5500IPAPG4) für 10.000 Franken.
> Sind die noch bei trost?

Das kann schon sein: Arbeitsbereich:-40°C bis +85°C.

Wenn wir einkaufen, kostet ein einfacher Transistor auch schonmal EUR 
10,- und ein Widerstand EUR 1,- oder mehr, aber das Zeug ist dann Space 
Grade und soll zum Mars fliegen.

P.S.: du weisst, dass Farnell nicht an Privatfrickler liefert?

von Olli R. (omr) Benutzerseite


Lesenswert?

chris wrote:

> Ob sich da der Aufwand lohnt?

Der lohnt sich ohnehn nicht, vom Lerneffekt mal abgesehen...

von Stefan Salewski (Gast)


Lesenswert?

>Da ADCs mit
>über 80 MS/s und 10 Bit teuer sind, kann man doch zwei langsamere ADCs
>nehmen und parallel betreiben, oder?

Wenn man mehr als 100 MSPS will kann das schon sinnvoll sein. Zwei ADC 
um 180 Grad versetzt abtasten zu lassen ist grundsätzlich auch nicht so 
schwierig.
Aber trivial ist die Welt ab 100 MHz nicht mehr, Stichwort Impedanz, 
Signallaufzeit, Reflexionen... Du kannst auch nicht einfach wesentlich 
mehr als einen ADC an einen gewöhnlichen Taktgeneratur hängen, weder bei 
CMOS, noch bei LVDS bzw- LVPECL Takteingang.

von Stefan Salewski (Gast)


Lesenswert?

>langsamere ADCs nehmen und parallel betreiben, oder?

Ah ja, hier eine längere Diskussion um das Parallelschalten von ADCs:

http://groups.google.de/group/sci.electronics.design/browse_thread/thread/e3e7dbd7e49c84d8/f10921c3c3cc55cc?q=group%3Asci.electronics.design+adc+stacking&lnk=ol&;

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.