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?
>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.
>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.
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
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?
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.
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"?
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.
>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.
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?
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?
>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...
>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.
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?
>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.
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 ...
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. ;)
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.
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.
@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...
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!
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.
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.
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.
@Bernhard M.: Ok, hab's wohl übersehen, danke! Warum wird beim Triggering die 1. Ableitung des Messsignals ausgewertet und nicht seine Amplitude?
ohne jetzt alles gelesen zu haben: http://www.embedds.com/diy-40msps-avr-oscilloscope-with-graphical-lcd/ echt geniales teil!
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?
teuer? Wenn ich es richtig gesehen habe, kostet der ADS830 bei Digikey ca. 5$. Ob sich da der Aufwand lohnt?
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.
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?
chris wrote:
> Ob sich da der Aufwand lohnt?
Der lohnt sich ohnehn nicht, vom Lerneffekt mal abgesehen...
>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.
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.