www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Oszilloskop mit AVR


Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi !

Ich hab vor folgendes Projekt zu starten:
Eine Art Oszilloskop, dass die Daten direkt an den PC weitergibt (und
später noch gleichzeitig auf einem vollgrafik display anzeigt).
Ich habe vor das mit einem ATMEGA 16 (16Mhz) (evtl.später einen
weiteren zur grafikberechnung fürs display), mit einem USB interface
(oder später LAN/RJ45)  zu übertragen. Das teil soll 3 kanäle mit je 15
bit haben ( was haltet ihr vom MAX1428? ). Glaubt ihr, dass reicht aus ?
Die Daten werden dann auf dem PC durch eine entsprechende software
gespeichert und können jederzeit abgerufen und analysiert werden.

Was sollte das teil, damit man es gebrauchen kann für ne
aktualisierungsrate haben ? und was sollte ich für chips verwenden ?
Kennt jemand schon so ein ähnliches projekt ?

Also nochmal in kürtze: ich will ein digitales speicheroszi bauen dass
eine PC-Schnittstelle hat.

Ich bin für jeden tipp dankbar.

MfG Axos

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
15bit halte ich etwas übertrieben. Selbst die teuren Agilent Oszis haben
nur 8bit + Bereichsumschaltung was auch ausreicht. Geh lieber mit der
Samplerate noch etwas höher.
Die Aktualisierungsrate braucht nicht bei 25fps oder höher zu liegen,
es reichen 5fps.
Wie willst du denn die 450MB/s speichern ?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaub du traust einem avr einiges zu viel zu. er kann die daten
weder so schnell darstellen noch wirst du die daten so schnell an einen
pc schicken können. selbst bei theoretischen 1 befehl pro sample wäre
bei 16mb/s ende. in der praxis wärest du noch m ein vielfaches drunter

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab mal ein Oszi versuchsweise auf einer Steckplatine aufgebaut. Dabei
hab ich nen Mega16 verwendet und ein MAX153 als ADC. Die Werte vom ADC
hab ich dann im internen RAM des AVR zwischengespeichert (etwa 500
Byte). Dabei bin ich mit der Samplerate nicht weiter als etwa 400 kHz
gekommen.
Besser ist ein schneller ADC mit direktem Draht zu externem RAM (15ns).
Ein Zähler macht die Adressierung und ein Oszillator bestimmt die
Abtastrate. Wenn der Speicher voll ist, liest der AVR den Speicher aus
und sendet die Daten an den PC.

Mal noch ne Frage, weiß jemand, welche Übertragungsrate der UART des
AVR mitmacht?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias H.

400kHz Samplerate ?
Mit einem mega8515@16MHz und 64kb SRAM komme ich auf etwa 2MHz

Zum UART:
Schau doch einfach mal ins Datenblatt...

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du dabei die Daten über den AVR in den RAM geschrieben? Da würde
mich der Code schon interessieren. Kann ja dann nur daran liegen. Oder
hat der AVR nur den Takt vorgegeben?

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab mir das Datenblatt noch mal angeschaut und es sieht so aus, als ob
die Baudrate jenseits von Gut und Böse einstellbar ist. Dann ist das ja
kein Problem? Danke noch mal.

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
problem sind dann die pcs, die meist nur mit 115k2 baud agieren
können...

dave

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke an alle !
Huu....ganz schöner beitragsansturm

@Benedikt
8Bit ? des wären dann ja 256 abstufungen. und das bei nem
spannungspegel von beispielsweiste TTL wären das 0,019 V/stufe. ich
glaub des würd reichen ;)
Von welcher aktualisierungsrate sprichst du ?
Kannst du mir mal erklähren, wie du auf 450 MB/s kommst ?

@Tobi
16mb/s -> am anfang schon aber später kann ich das ja z.B. mit nem
anderen controller aufbauen. oder sogar mehrere, die die daten
gelichzeitig verarbeiten.

@dave
115k2 ?? woher hast deu die zahl ? Sollte das nicht über USB schneller
gehen. Kannt da jemand ein geeigneten baustein (evtl. für usb 2.0)?
die maximale tehoretische datenübertragungsrate liegt bei usb 2.0 bei
60 Mb/s (natürlich in der praxis weit darunter wegen dem usb host
controller und so).

man könnte ja, wie bereits gesagt) die daten vom adc direkt in den ram
schreiben und dann 2 atmega16 jeweils einen speicherbereich zur
verarbetung zuweisen (ATMega16 Nr1. 0.-250. Byte, ATMega16 Nr1.
251.-500. Byte).

MfG Axos

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du die Daten im RAM zwischenspeicherst, muss die Datenübertragung
ja gar nicht mehr so schnell sein. Sind die Daten erstmal im RAM, kann
sich der AVR ja theoretisch alle Zeit der Welt nehmen um die Daten zum
PC zu übertragen. Wenn er fertig ist startet er dann die nächsten
Messungen.

Autor: Axos (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi !

@Matthias H.
Stimmt ! Ich hab mal n blockdiagramm aus der sache gemacht ! was haltet
ihr davon. Verbesserungsvorschläge und Kritik ist erwünscht.

Mit was arbeiten eigentlich die high end geräte ? Was fürn cpu takt
habed die ?`und haben die ne seperate cpu für die Grafikgenerierung ?
Was ist das was an denen sooooooo teuer ist ?

MfG Axos

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich denke mal, einen großen Teil des Preises macht die Genauigkeit und
die Qualität der Digitalwandlung aus. Wenn man dann irgendwo jenseits
der 100 MSPS ist, wird geigneter Speicher und die ganze Adressierung
ebenfalls recht teuer.

Zum Blockdiagramm: den Zugriff des µC auf den ADC würd ich weglassen.
Der wird ja eh nur vom Takt gesteuert. Ich habe vor, für die
Ansteuerung von ADC und Speicher einen CPLD zu verwenden. Der bekommt
dann vom µC nur noch die Freigabe und vielleicht einen Startwert für
den Adresszähler.

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias H
wenn du grad auch an so einem projekt dich versuchst wär ja am besten
wenn wir in kontakt bleiben würden !
hast du icq ? kannst mir ja per email schicken, wenn du nicht willst
dass sie jeder weiss.

MfG Axos

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
173446521

jetzt weiß sie jeder.

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Oszilloskop welches auf diese Weise funktioniert war auch in meinem
Kopf schon seit längerem in Planung. :-)
Wäre es nicht sinnvoll, wenn eine Art Trigger existieren würde. Also
die A/D Aufzeichnung beginnt erst wenn der A/D Wert einen bestimmten
vom Benutzer festgelegten Wert über bz. unterschreitet.
Des weiteren wäre möglicherweise für den RAM ein externer Adresszähler
sinvoll, da dieser deutlich schneller zählen könnte als ein AVR der
möglicherweise nebenher noch andere Sachen machen muss. Dieser Zähler
bräuchte dann aber ebenfalls einen vom Benutzer einstellbaren Takt.

All dies spräche sicherlich (wie bereits oben genannt) für einen CPLD.
Allerdings habe ich von deren Programmierung und Fähigkeiten (noch)
keine Ahnung.

PS: 10MSPS (oder besser gleich 20MSPS) wäre das mit der oben genannten
Technik realistisch erreichbar?

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
über den Trigger hab ich mir auch schon den Kopf zerbrochen. Ein Oszi
zeigt aber auch Gleichspannung an. Wie soll da der Triggerpunkt
festgelegt werden?

Wie wäre es wenn man die Aufzeichnung des Signals beliebig startet und
länger aufzeichnet, als man darstellen kann. Dann kann man per AVR oder
Software einen geeigneten Triggerpunkt suchen und ab da die Kurve
darstellen. Oder halt bei Gleichspannung die Linie von Anfang an
anzeigen.

Als Adresszähler sollte auf alle Fälle was Externes her. Der AVR gibt
dann nur den Abtasttakt frei und gibt dem Zähler einen Startwert.
Danach bekommt er ne Rückmeldung, wenn der Zähler bei 0 ist.

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die nachträgliche Erkennung hätte zum Nachteil dass seltene, kurze
Impulse nicht erfasst werden könnten oder nur zufällig. Gleichspannung
würde auch angezeigt werden, wenn der Schwellwert einfach unter der
Gleichspannung liegt.

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist, wenn auf dieser Gleichspannung noch eine Brummspannung reitet?
Sollte da nicht nach der Brummspannung getriggert werden? Wie soll der
Schwellwert vorgegeben werden? PWM?

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde an einem PORT des AVR den Trigger Wert als einstellbaren Wert
ausgeben. Danach fallen mir zwei Möglichkeiten ein:

a (analog): Am PORT befindet sich ein R2R Netzwerk welches eine Analoge
Spannung erzeut. Diese wird dann mit einem Komparator direkt mit der zu
messenden Spannung des A/D Wandlers verglichen. Sobald die Spannung des
R2R Netzwerks die der zu Messenden Spannung über bz. Unterschreitet,
fängt der Adresszähler an zu zählen.
Anstelle des R2R Netzwerks könnte auch PWM verwendet werden, das müsste
dann aber entsprechend gut geglättet werden.

b (digital): Der Ausgangswert des PORTS wird mit dem bereits
gewandeltem Wert des A/D Wandlers (digital) verglichen. Sobald der eine
Wert größer bz. kleiner als der Andere ist, fängt der Adresszähler an zu
zählen.

Das Starten des Adresszählers kann entweder durch eine Freigabe des
Resets oder des Taktes erfolgen.

Auf Wunsch kann dann noch ein automatisches Einstellen des Triggers
erfolgen, indem nach einer ersten Aufzeichnung in den RAM der AVR die
MIN und MAX A/D Werte ermittelt und den Mittelwert automatisch als
Trigger nimmt.

Wie sieht es eigentlich mit einem weiterem A/D Kanal bei entsprechend
halbierter Abtastrate aus?

Bei dem A/D Wandler müsste sich entweder der Ausgang hochohming
schalten lassen können oder es muss ein RAM mit getrenntem Ein/Ausgang
verwendet werden.

Schön wäre es wenn sich der Adresszähler, der 8 Bit Vergleicher und
Takt Vorteiler zusammen in einem CPLD o.ä. realisieren ließe.

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mal ne (dumme) Frage:
 Wieviele MilliSekunden sollte denn die Messung gehen? Also ich denke
100mS sind schon anzustreben... und dann kommt meine Frage auf, wie man
das zwischenspeichern will.

Vielleicht müsste man dazu mal nen 16ner DRAM zugänglich machen, so
wären raten bis 32mhz drin (bei 0,5sek).

Sonst: vielleicht einfach nen FT245 nehmen, AD==>FT245==>USB  und nen
Takt versorgt beide.

dave

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Sonst: vielleicht einfach nen FT245 nehmen, AD==>FT245==>USB  und nen
Takt versorgt beide."

hatte ich auch schon dran gedacht. die frage ist, kann der usb chip
eine bestimmt datenrate garantieren? so weit ich weiss geht das bei usb
nicht und dann müsste man wieder puffern

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich dachte eher daran, dass der Benutzer zwischen Aufzeichnungsdauer und
Samplerate wählen kann, so dass im Prinzip 256Byte reichen würden. Sehr
viel mehr Daten lassen sich auf einem kleinen GLCD (128x128, per
Tastendruck dann 2x Zoom (Ausschnitt aus 256x256)) sowieso kaum
darstellen. Der Einfachheit halber würde ich dann eine 8K oder 32 KByte
SRAM verwenden.
Bei 8KB ließen sich 800µs bei 10MSPS oder eben eine Sekunde bei 8KSPS
oder ein beliebiges anderes Verhältnis SPS:Aufzeichnungsdauer
auswählen.

DRAM hätte den Nachteil, dass noch Aufwand fürs Refreshen betrieben
werden müsste.

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hatte da eh an eine einstellbare Abtastrate gedacht. Ideal wäre da
ein digital einstellbarer Oszillator im Bereich 1MHz bis (40MHz). Alles
darunter könnte der AVR selbst übernehmen, z.B. Abtastraten 1sps,0.1sps
fürs datenloggen. Dann reicht theoretisch wirklich RAM in
Anzeigebreite. Kennt jemand einen programmierbaren Oszillator?

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versteh immer noch nicht wo das problem an der triggerung liegt. Das
kann man doch so machen wie bei einem ganz normalen oszi.

Was könnte man denn da z.B. für einen ADC nahmen der DMA unterstützt?
Was haltet ihr davon, ein speichermodul von einem PC zu nehmen ? (z.B.
PC 133) Da hätte man speicher ohne ende und hohe geschwindigkeiten.
Dei den teilen stell ich mir aber die adressierung sehr schwer vor !

@Matthias H.
Man könnte es doch ähnlich wie ein funktionsgenerator mit veränderbarer
frequenz machen. was ist z.B. mit dem MAX 038 des teil is zwar grad
nicht das billigste aber vielleicht findet sich ja nch was
günstigeres.

Also wenn ich jetzt alles richtig verstanden habe sieht das teil
fogendermasen aus:

ein ADC (8Bit) wandelt das signal in ein digitales signal um und
schreibt es direkt in den Speicher ! Die Adressierung erfolgt durch
einen hardwaremässigen counter. (der ggf vom µC gestartet wird wird)
wenn der speicher voll ist teilt der counter dem µC mit, dass er wider
bei 0 angekommen ist und das es Zeit ist die daten aus dem speicher zu
laden (und auszuwerten). Das MSPS/Aufzeichnungsdauerverhältniss lässt
sich einstellen. (Basis ist immer der Speicher mit 8KB). Der µC stellt
die daten auf einem LCD dar (und sendet sie ggf an den PC). Sobald der
µC mit der auswertung fertig ist (/der benutzer es zulässt) beginnt
nach der Auswertung und darstellung der daten ein ein neue Messung bei
der der speicher von 8KB wider voll geschrieben wird.

Was könnte man denn als speicherbaustein verwenden? Am besten wär
natürlich irgendwas was vollduplex erlaubt und trotzdem schnell genug
ist um die daten aufzunehmen.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die idee mit dem pc speicher hatte ich auch schon:
http://www.mikrocontroller.net/forum/read-1-130559.html#new

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das Problem bei dem PC-Speicher ist, dass es DRAM ist und immer wieder
refreshed werden muss. Das muss dann entweder der AVR machen oder ein
passender Schaltkreis. Dadurch wird auch die Zugriffszeit wesentlich
höher als bei SRAM. Die Ansteuerung ist bei SRAM günstiger und den
gibts mit Zugriffszeiten von 12 oder 15ns und wenns sehr schnell gehen
muss dann halt 5ns. FIFO-Speicher wäre auch nicht schlecht. Dann
entfällt die ganze Adressierung.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mich mit dem ganzen Thema auch schon ausführlich beschäftigt:

FIFO: Super einfach, aber scheißteuer (20€ für 32kB !)

SRAM: billig, in jedem alten PC zu finden. Mit einem synchronen
Adresszähler sollte es funktionieren Daten sehr schnell aufzuzeichnen.
Nur das WR Timing macht mir Probleme: Laut Datenblatt muss es bei der
Adressänderung deaktiviert werden. Wie machte ich nun das Timing ohne
einen halben Taktzyklus für die Deaktivierung von WR zu verschwenden ?

synchroner SRAM: billig, in vielen alten Pentium PC zu finden, sehr
schnell, hat internen 4bit Adresszähler, aber die Ansteuerung ist etwas
komplizierter als beim asynchronen.

DRAM: superbillig, riesig, aber langsam. Lohnt sich nur wenn man große
Daten relativ langsam speichern möchte. Der Refresh erschwert alles.

SDRAM: superbillig, riesig, sehr schnell. Die Ansteuerung ist aber
extrem kompliziert und ohne FPGA oder speziellen SRDAM Controller kaum
zu bewältigen. 2 Layer oder noch mehr sind notwendig. Außerdem ist das
Platinenlayout schon relativ kritisch.

VRAM: Mischung aus DRAM und SRAM mit internem Adresszähler. Optimal für
Datenströme bis 50MB/s. Leider extrem schwer zu bekommen.

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit einem SRAM Speicher wären bei einer Zugriffszeit von 12 ns 83333332
(83Mbyte/s) Schreibzyklen/Sekunde möglich somit wär eine Abtastraten
(bei 8bit AD/Auflösung) von  83 MS/S möglich. Ich glaub das wär erstmal
genug g. (korrigiert mich bitte wenn ich alles falsch gesagt hab*g*)
Wie siehts denn mit denen FIFOs aus ? Hab sowas noch nie verwendet. Ham
die auch zugriffszeiten um die 12ns ? Und ist bei diesen FIFOs noch eine
manuelle adressierung möglich ?

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit dem WR- Signal beim SRAM hab ich auch so mein Problem. Mein erster
Ansatz war, mit der steigenden Taktflanke den ADC anzustoßen und den
Zähler zu inkrementieren und mit der fallenden Flanke dann das WR
auslösen. Besser ist vielleicht, einen ADC zu verwenden, der ein "habe
fertig"- Signal ausgibt und damit das Schreiben zu starten. Dann wartet
man nicht unnötig lange.

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den MAX038 hab ich mir gerade mal angeschaut. Ein interessantes Bauteil,
aber zum einfachen Takten wohl ein bisschen zu viel
(Sinus,Dreieck,usw.). Was mir auch nicht gefällt ist, dass die Frequenz
analog eingestellt wird. Ich glaube, Cypress bietet Schaltkreise an, wo
man die Frequenz digital einstellen kann (CY2212), weiß aber nicht was
sowas dann kostet.

Autor: Andreas Schwarz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Einstellung der Samplerate tut's doch ein einfacher Teiler.

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das wäre auch eine Lösung, mit einem Zähler. Aber leider kommen da nicht
Teilungen zustande, die Oszi- typisch sind(1µs - 1ms - 10ms - usw.).

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht könnte man die typischen Zeiten mit dem AVR ausrechnen?

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal angenommen man nimmt einen Zähler als Teiler z.B. 12 Stufig (Teiler
4096). Bei einer Eingangsfrequenz von 20MHZ wäre die niedrigste
Ausgangsfrequenz 1,2KHZ, was bei einem 8KB Speicher bis zu 2Sec
Aufzeichnung ermöglichen würde. Soweit gut. Nur wie kann der AVR ohne
erheblichen Hardwareaufwand jeweils einen beliebigen Ausgang an den
Adresszähler weiterleiten?

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
per MUX

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mich vertippt, die niedrigste Frquenz bei einem 12 Stufigen Teiler
und 20MHZ wäre 4,8KHZ.
@Mathias:
Ausrechnen wäre sicherlich möglich (allerding ließe sich das
Teilverhältnis 1:10 nur ungenau erreichen). Mir persönlcih reicht aber
auch eine Teilung in 2-er Schritten vollkommen.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias H.
Das "habe-fertig" Signal verkompliziert das Timing.
In meinem 50MS Logik Analyser mit VRAMs werden die Daten bei der
Low-High Flanke eingelesen.
An den Eingang kann ich auch einen ADC anschließen.
Der DA Wandler (ADS830) gibt ebenfalls bei der LH Flanke neue Daten
aus. Aufgrund der Verzögerung durch die Leitung und dem HC245
Eingangspuffer speichert der VRAM noch die alten Daten.
Bei einem SRAM ist das allerdings komplizierter:
Laut Datenblatt sind die Eingangsdaten egal, bis zur Low-High Flanke
von WR\ oder CE\.
Zu dem Zeitpunkt wenn WR\ auf Low geht, muss auch die Adresse stabil
anstehen und stabil bleiben bis WR\ wieder auf High geht.
Dann bräuchte man eine kurze Zeit, die eigentlich nur vom CPLD o.ä.
abhängt und solange dauert bis die neue Adresse stabil ansteht.
Also entweder verwendet man einen stark unsymmetrischen Takt oder baut
sonst irgendwie eine Verzögerung ein.

@all
Den Frequenzteiler kann man auch in den CPLD intergrieren, das ist kein
Problem und man hat kein Kabelgewirr da der Multiplexer für die
Frequenzauswahl auch direkt integriert ist.
Der Frequenzteiler muss nicht durch 2 teilen, sondern jeder beliebige
Faktor ist ohne größeren Aufwand einstellbar.
Auch den Trigger könnte man einbauen. Ein bit Vergleicher ist in einem
CPLD eine Kleinigkeit...
Bei der Samplerate muss man aber aufpassen. z.B. der ADS830 braucht
mindestens 10kHz, ansonsten driftet der S&H Verstärker und man bekommt
einen merkwürdigen DC Offset.

Autor: Kupfer Michi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt
Welche OV Eingangsbeschaltung hast du für den AD830 gewählt? Eine aus
dem Datenblat (AC/DC)? Bin bisher bei High Speed OVs bei R. noch nicht
so richtig fündig geworden.

Wenns nicht zuviel Aufwand ist könntest du die ADC Eingansbeschaltung
posten? Ist sicher auch von allgemeinen Interesse. Danke.

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich habe mit sowas 1996 meine Doktorarbeit geschrieben. War ein
1G/Samples Speicheroszi als PCMCIA-Einschubkarte für Notebooks.

Ein MAX100 zum Beispiel als A/D-Wandler. Ist ein sog.
"Flash"-Wandler. Gibt es mit 6 und 8 Bit.

Dazu ein schnelles PLD. Ein EPM3032 kann schon mit ca. 200MHz laufen.

Als RAM-Speicher ein sog. "Cache"-RAM. Gibt es bzw. gab es damals mit
32kByte. Sind heute sicherlich größer.

Der PLD bildet eine Dual-RAM-Schnittstelle. Somit kann der A/D-Wandler
direkt in den RAM schreiben. Auf der anderen Seite befindet sich ein
Controller, welcher nach beendeter Messung den RAM von der anderen
Seite langsam ausliest und die Daten auf einer Schnittstelle Deiner
Wahl überträgt.

Viel Erfolg!
Jörg.

Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang der Schaltplan für den ADS830E.
Das meiste stammt aus dem Datenblatt, nur der Opamp ist einer, der bei
Reichelt erhältlich ist.
Die wichtigste Funktion des Opamp ist der Überspannungsschutz und die
Impedanzwandlung. Da der Opamp bis 10mA am Eingang verträgt, ist die
Schaltung bis +/-50V am Eingang geschützt.
Der Eingangsbereich liegt bei 2-3V, oder mit einem 10:1 Tastkopf bei
-2,5V bis 7,5V. Oder auch +/-0,5 bzw. +/-5V wenn man AC Kopplung
verwendet.

Autor: Kupfer Michi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt
Spitze!, Danke. Kommt gleich auf die Neujahrsbestellliste.

Wenn ich das DB des OPA353 richtig verstehe hat er zwar eine GBW von
44MHz ist aber etwas Slew-Rate schwach. Bei Vout p-p von 2-3V sind es
nur noch um die 3MHz. Sehe ich das richtig? (Analog hab ich noch viel
zu lernen)

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg
bei den MAX ist das Problem, wenn sie schneller werden, dann kommen die
in Gehäuse, die man als Amateur wohl nicht mehr löten kann.

@Benedikt
ich danke dir für den OPV. Wenn man bei Reichelt was spezielles sucht,
findet man es meistens nicht. Die 44MHz Bandbreite sollten wirklich
ausreichen.

Davor sollte dann noch ein Spannungsteiler mitsamt Analogmultiplexer,
um den Spannungsbereich einstellen zu können. Das kann man dann den AVR
machen lassen. Wird das Signal dann bei 255 abgeschnitten, kann er dann
den Spannungsbereich ändern. Ist das Signal kleiner 30, dann auch.

Langsam nimmt das Ding Gestalt an. Über Weihnachten werd ich mich mal
mit den CPLDs beschäftigen. Dies scheint mir eine Lösung zu sein, mit
der man auch noch nach dem Leiterplattenätzen experimentieren kann,
wenns mal nicht gleich läuft.

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu dem MAX100 kann ich garnix finden kann mir jemand ne bezugsquelle
nenne ?

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den gibts nicht mehr. Der Ersatztyp ist der MAX106

Autor: Matthias H. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
gibts doch noch. Entschuldigung

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Kupfer Michi

Den ADS830 habe ich auf 1Vss Eingangsbereich eingestellt.
Das macht dann 7MHz mit dem OPA353, was mir zumindest reicht und eine
hilfreiche Bandbreitenbegrenzung darstellt.

Autor: Kupfer Michi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt
> hilfreiche Bandbreitenbegrenzung

Meinst du damit das es wegen Stabilitätsproblemen (für Anfänger) nichts
bringt schnellere OVs (und damit ADCs wie den ADS830) zu nehmen?

Weil sonst hätte ich gerade noch den

- OPA642 (7€ bei R.) mit 4Vpp bei 20MHz und G=2 (aber Diff Input
Inpedance von nur 11KOhm?)
- LT1227 (5.25€) mit ca. 4Vpp bei ca 10MHz und G=1
- NE5539 (1.30€) 3Vpp bei ca. 20MHz

gefunden. (Die Analog Welt oberhalb 1MHz ist ganz schön kompliziert)

Komentare?

Autor: C3PO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg: Wenn du ein 1G/Sample -Digital-Oszi als Dr.-Arbeit gebaut hast
und Dual-Port-Ram genommen hast, welche Geschwindigkeit hatten di
denn???
1G-Bytes/s ist ja nun doch schon ne ganze Menge !!!

Hast du vielleicht ne elektronische Version deiner Dr.-Arbeit, würde
mich mal interessieren !!!

Würde mich freuen, wenn du sie mir an meine E-Mail-Adresse schicken
könntest !!!
Danke
C3PO

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg
Ich wär auch daran interessiert ! 1 GB/s, ist sowas überhaupt für
privatpersonen machbar ? für speicheroszi ist das ja schon fast zuviel,
da braucht man ja nen rießigen speicher.

@All
Kennt jemand Bezugsquellen für den MAX106/100, EPM3032, und den von
Jörg erwähnten Cache RAM?

Autor: Malte (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Soweit ich alles richtig mitbekommen habe, müsste das Schema des Teils
jetzt ungefähr so aussehen.
Falls der CPLD genug Pins hat, könnte er ja den Adresszähler auch
gleich noch ersetzen.

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den AVR könnte man doch direkt an den 8bit- Bus zwischen ADC und
Speicher anhängen. Dann müssen die Daten nicht über den CPLD. Die Pins
kann man dann zum Vorladen des Zählers und des Taktteilers (noch ein
Zähler?) verwenden

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für Speicher soll den verwendet werden? Bisher scheinen ja FIFO,
gewöhnlicher SRAM und Dualport SRAM zur Auswahl zu stehen.
Bei der Verwendung von gewöhnlichem SRAM müsste dann entweder der ADC
Ausgang auf hochohmig geschaltet werden können solange aus dem SRAM
gelesen wird oder die Daten des ADC müssen zunächst durch den CPLD zum
SRAM gelangen.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Kupfer Michi

Die 7MHz Bandbreitegrenze nutze ich um das Signal auf halbe Samplerate
zu begrenzen (zumindest so in etwa).

All diese Opamps haben einen nachteil gegenüber dem OPA353: Sie kommen
nicht mit +5V aus, sondern brauchen +/-5V oder mehr.
Am Anfang hatte ich den TDA8703 eingesetzt und etwa 3-4 davon
abgeschossen, denn dieser reagiert extrem empfindlich auf negative
Spannungen am Eingang. Daher bleibe ich jetzt erstmal bei den 5V
Rail2Rail Opamps, denn da kann garantiert nichts über 5V oder unter 0V
rauskommen...

@Malte:
Der Speicher hängt davon ab, wie schnell das Ding sein soll:
Mit normalem 15ns SRAM wie ihn fast jeder aus alten PCs rumliegen hat,
sind rund 60MS/s möglich.
FIFOs sind zwar besser, aber eben auch verdammt teuer. Hier muss man
abwägen ob es sich lohnt, den Aufwand (kein Adresszähler, einfacheres
Timing) zu reduzieren, indem man einen teuren FIFO zu verwendet.
Für Dualport RAM sehe ich eigentliche keinen Grund, da dieser genauso
teuer ist wie ein FIFO, und eigentlich keinen großen Vorteil bringt.
Will man einen neueren High Speed FIFO, SRAM o.ä. nutzen, dann muss man
erstmal einen finden der 100MHz schafft und mit 5V läuft, denn fast alle
laufen nurnoch mit 3,3V. Davon abgesehen haben die meisten keine 9bit
sondern 18 oder 36 !

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Davon abgesehen haben die meisten keine 9bit sondern 18 oder 36 !"

könnte man das nich perfekt für 2 kanäle benutzen, indem man diese
einfach parallel an einen speicher hängt?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, aber mir sind 36€ für 8k x 18 @10ns etwa zu teuer...

Da würde ich lieber beim normalen SRAM bleiben und keine seltenen und
schwer beschaffbaren Bauteile verwenden, denn dann kann ich gleich
irgendein Projekt aus dem Internet nachbauen, wenn ich sowiso zusehen
muss wo ich irgendwelche Spezial ICs bekomme.

Die Low Cost Alternative: 8 oder 32k SRAM in Pseudo DMA Configuration
am AVR. Dieser schafft dann rund 2MS/s @ 16MHz

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schnelle SRAMs findet man auch z.B in alten Festplatten.

Ansonsten hat auch http://www.kessler-electronic.de/ genügend günstige
SRAMs.

(wie reagiert den R. wenn man nicht Lager/Katalog Bauteile anfragt?)

FIFOs machen wirklich keinen Sinn. Ein CPLD braucht man so oder so also
warum was exotisches.

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also als FIFO fände ich
http://de.farnell.com/jsp/endecaSearch/partDetail....
duchaus interessant. Läuft mit 5V, gibt es im DIL Gehäuse, ist mit 12ns
ausreichend schnell und die Kosten sind mit ~10€ ungefähr genaus so groß
wie für ein GLCD von Pollin. Wer mehr als 1K haben möchte, kann den
anscheinen auch einfach durch einen (dann zugegeben allerdings teuren)
16K FIFO austauschen.

Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal ins Datenblatt:
12ns = 50MHz max.!

Da bin ich mit einem CPLD und einem 8k 15ns besser dran: 66MHz...
Ich habe es noch nicht ausprobiert, aber wenn die Adressenausreichend
schnell und gleichzeitig geändert wird, ohne dass WR\ vorher
deaktiviert wird, dann hoffe ich, dass das SRAM keinen Mist baut.
Im Anhang mal mein erster CPLD Entwurf:
Im Pinzip ein synchroner Adresszähler mit umschaltbarem Takt und ein
paar Sonderfunktionionen.

  Port ( sclk : in std_logic;    --Configuartion Shift Clock
         sdata : in std_logic;  --Configuration Data
       set : in std_logic;    --Configuartion Latch
      adresse : out STD_LOGIC_VECTOR (15 downto 0);  --Adressausgang
         reset : in std_logic;  --Globaler Reset
         areset : in std_logic;  --Adress Reset
         SaRe : in std_logic;     --Sample / Read\
         En : in std_logic;     --Enable Sampling
      Read : in std_logic;     --ReadClock
         wr : out std_logic;    --WR\ für SRAM
      oe : out std_logic;    --RD\ für SRAM
      sc : out std_logic;    --Takt für ADC
      sci : out std_logic;     --Takt\ für ADC
      xclock : in std_logic;  --externer Takt
         clock : in std_logic);  --interner Takt (bis zu 66MHz)

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mir überlegt, dass man auf 2 RAMS schreibt, um eine höhere Datenrate
zu bekommen. Dann wär halt die Adressierung n bischen komplizierter.

Als Statischer RAM käme z.B.
http://www.kessler-electronic.de/proddetail.asp?ID...)
in frage.

Hat jemand einen link für mich, wo ich mich über die CPLD's
informieren kann ? Und einen Beispiel-CPLD der in frage käme. Was für
ein unterschied besteht zwischen GALs und CPLDs. was haltet ihr von den
ispGALs ?

Ich werde, wenn interesse besteht, eine Homepage über das Project
erstellen. (mit forum, wo man über jeden einzelnen komponenten sich
beraten kann)

MfG Axos

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Axos

geh auf die Xilinx Webseite, lad dir das ISEWebPack runter und fang an
damit zu spielen...

GALs sind zu klein, man braucht wohl schon (mehrere) XC9572XL oder
XC95144XL.

Einen eigene Webseite kann man machen, schmort dann aber sehr schnell
im eigenen Erkenntnissaft. In einen allgemeinen Forum schaut ab und zu
halt doch ein Experte vorbei...

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Kupfer Michi

denkst du, dass man da mehrere brauch. Wäre nicht schlecht, wenn es in
einen passen würde. Ich denke mal, die I/O-Pins sind da wohl der
entscheidende Faktor. Die "inneren Werte" werden für die paar Zähler
und Vergleicher wohl ausreichen.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einer reicht auf jeden Fall.
In einen XC95108 passt ein kompletter VGA Controller.
Die SRAM Ansteuerung habe ich in einem XC9572 mit 44Pins gepackt.

Was haltet ihr von einer kontinuierlichen Aufzeichnung die erst kurze
Zeit nach der Triggerung gestoppt wird ?
So kann man sich auch das Signal vor der Triggerung anschauen.

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wäre nicht schlecht, wenn es in einen passen würde

Ob eins oder mehere, das ist nicht das Problem, auch nicht die Logik in
VHDL umzusetzen...

Bevor hier all zuviel Euphorie vor alle den 10ns hier und 100Mhz dort
aufkommnt frage ich doch einfach mal in die Runde:

Wer hat schon die praktische Erfahrung und das notwendige Testequipment
um ein Design in dieser Region auf den Boden zubringen? (ich nicht)

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was meinst du jetzt mit Testequipment???

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das Zubehör (Programmiergerät, Software...) überhaupt noch für
Amateure bezalbar ? Deswegen hab ich auch vorher die ipsGALs erwähnt,
die lassen sich wie die AVRs in der schaltung programmieren. Vielleicht
gibts ja auch sowas wie ispCPLD !???

@Benedikt
Super idee ! Könnte man natürlich als Zusatz auch noch einbauen.

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zum Programmieren der CPLD gibts die Software vom Hersteller kostenlos
und die Hardware ist ein Programmierkabel ähnlich dem des AVR
selbstgebastelt. Die Anleitung dazu muss ich mal schnell suchen.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alle CPLDs lassen sich über JTAG programmieren. Die Sofware unterstützt
auch direkt ein Parallelport JTAG Interface. (Ähnlich kompliziert wie
der AVR ISP Adapter)

Und was gibt es sonst noch an Testequpment ?
Einen 8 Kanal Logic Analyser mit 32MS habe ich, den ich auch als 32MS
Oszi betreibe, daher habe ich schon ein paar Erfahrungen mit dem Thema.

Autor: Kupfer Michi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Xilinx Programmer, direkt ansprechbar aus ISEWebPack über LPT port
(nur der obere Header wird gebraucht)

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ein kleine Synchronisierungsfummelei zwischen ADC und SRAM.
Wenn man vonm ADS830 ausgeht:
Neue Daten erscheinen am ADS Ausgang bezogen auf Master Clock nach
5.9-12ns (t2 New Data Delay Time). Dies ist mit den Durchlaufzeiten im
CPLD und Setupzeiten vom SRAM zu synchronisieren.
Bei 10MHz geht das ja alles gemütlich, aber darüber hinaus...

@Benedikt
kein Logicanal. :( und ein 30 jahre alter 10MHz 1 Kanal Hameg :(
(Versuch z.Z. erst mit USB und nachgeschalteten Optoisolierten I2C Bus
die Infrastruktur für diverse Messgeräte aufzubauen).

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, zusammen.

Schnelle Speicherzeiten erreicht Ihr mit Kaskadierung. Der ADC und das
RAM werden mit demselben Takt angesteuert. Der Trick liegt darin, zum
Beispiel mit acht Stück solcher RAMs zu arbeiten.

Nehmen wir mal ein Beispiel.

Wenn Ihr günstig 12ns-SRAMs bekommen habt, dann könnt Ihr mit einem
davon eine theoretische Frequenz von ca. 80MHz erreichen. Kaskadiert
Ihr diese nun zu acht Stück, wäre eine theoretische Frequenz von 640
MHz erreichbar; und so weiter.

In der Summe steuert das CPLD also die "Verteilung" der Daten in
einem kontinuierlichen Fluss von einem RAM zum nächsten. Das Layouting
eines solchen Boards ist ziemlich komplex und im Hobby-Bereich kaum zu
schaffen. Zudem auch ein schneller CPLD seinen Preis hat, der leicht
mehrere Hundert Euro erreichen kann.

Heutzutage würde ich zu einem schnellen DSP, zum Beispiel von Texas
Instruments, greifen. Der letzte, den ich verwendet habe, hatte ca.
3200 MIPS. Es geht aber auch preisgünstiger: "The TMS320C6410 running
at 400 MHz with 160 Kbytes total memory is $17.95."

Die AD9480 von Analog Devices sind auch sehr schön. Gibt es im
QFP-Gehäuse. Die etwas langsameren DSPs sind auch von TI und AD in
QFP-Gehäusen verfügbar.

Lustigerweise könnte man wohl tatsächlich ein solches Oszilloskop bauen
;-) - Aber wer will tatsächlich anfangen, um dann auf halber Strecke
stehen zu bleiben? Kleinere Brötchen führen zum Ziel. Ein
20MHz-Speicheroszilloskop mit 200MSamples/s scheint mir durchaus auch
im Hobby-Bereich machbar.

Viel Erfolg!
Jörg.

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg

>In der Summe steuert das CPLD also die "Verteilung" der Daten in
 einem kontinuierlichen Fluss von einem RAM zum nächsten.

Aber dann muss man ja mehere Adrressen paralell und rollend generieren,
oder versteh ich das falsch?

Ich dachte immer dass mann (um bei deinem bsp. zu bleiben) erst 8 Bytes
im CPLD aufsammelt sie dann mit einer Addr an die SRAMs gibt und am Bus
anstehen lässt während man im CPLD in einem 2.ten Puffer die nächsten 8
Byte aufsammelt, und danach beginnt der Zyklus von vorne.
Also vorne mit 1Byte/Clock rein und hinten mit 8Byte paralell+einer
Addr alle 1/8Clock und 8Clocks dauer raus.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
8 SRAMs kaskadieren ?
Man kann es auch übertreiben....
Mir würde es schon reichen 100MS mit 2 SRAMs zu erreichen.

Im Moment habe ich jedenfalls genug Timingprobleme mit 48MS.
Bei 32MS ist noch alles OK, bei 48MS bekomme ich die lustigsten
Spikes.
Die 9ns die der ADS830 braucht, zusammen mit den 20ns für den 74HC245
macht 29ns, und das ist mehr als ein Taktzyklus bei 48MHz lang ist.
Muss ich halt doch warten, bis meine 74AHC245 ICs kommen...

Hier ist alles ja noch überschaubar.
Bei einem CPLD ist das ganze sehr viel komplexer die Verzögerung zu
berechnen.

Wieviel soll denn das fertige Oszilloskop eigentlich kosten ?

Mein 32MS 8Kanal Logikanalyser/Oszi hat rund 20€ gekostet (mega8515,
XC9572, 2xKM424C257, Quarzoszillator, ein paar HCMOS)

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Kupfer Michi,

nein, jedes RAM ist separat über einen Treiber am ADC angeschlossen.
Somit liegen stets alle 8 Bit an allen Treibern an - allerdings werden
sie nicht übernommen, solange sie disabled sind. Die Enable-Leitungen
werden mit sehr hoher Frequenz bedient. Aber eben nur im
"1/8tel-Takt".

Warum nur zwei RAMs kaskadieren, wenn es mit acht Stück wesentlich
besser geht? 100MS mit zwei RAMs - oder 100MS mit fünf Stück - die
Schaltung mit fünf Stück ist wesentlich stabiler aufzubauen und wird
besser funktionieren.

Benedikt, man kann natürlich eine solche Schaltung auch mit separaten
ICs aufbauen; Spikes und andere Störeinflüsse sollte man aber innerhalb
eines etwas größeren CPLDs / FPGAs oder DSPs lassen - Gegenmassnahmen zu
ergreifen, ist um ein Vielfaches einfacher. Bei einem Preis von 17 Euro
für einen schnellen DSP auch erschwinglich.

Timing, Verzögerungen, etc. - gute Software, die in den allermeisten
Fällen von den Herstellern zur Verfügung gestellt werden, gibt solche
Auskünfte, mit einer Genauigkeit im Pikosekunden-Bereich.

Jörg.

Autor: Kupfer Michi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>Bei einem CPLD ist das ganze sehr viel komplexer die Verzögerung zu
 berechnen.

ich ging (naiver weise) davon aus dass man für die t2 ADC Output valid
verzögerung einfach mehere CPLD gatter (ohne reg) hintereinander
schaltet bis man (mangels testequipment) ins richtige Zeitraster fällt
(urgh!!). Die notwendigen Zeiten  sind im XC9500XL Overview DB auf
Seite 15 beschrieben

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich sehe das Problem.

Im professionellen Bereich gibt es die Möglichkeit, zum Beispiel
"Leonardo" von Mentor zu verwenden. Das ist eine sehr teure Software
für die Simulation von digitalen Schaltungen. Dafür gibt es dann noch
passende "Add-Ons" für die führenden Hersteller, wie Altera, Xilinx,
etc.

Im Hobby-Bereich sollte es zum Ziel führen, wenn man sich einen PLD
sucht, der etwas schneller ist als der Ziel-ADC.

Zudem darf die gesamte Schaltung nur von einer Clock-Source gesteuert
werden, welche idealerweise wiederum vom PLD verteilt wird. Somit gibt
es keine Synchronisierungs-Probleme.

Jörg.

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg
>jedes RAM ist separat über einen Treiber am ADC angeschlossen

Ok.
( die 8 ADCs wollte ich aber eher für 8 Kanäle aufheben :-), der ADS830
ist mit theo. 60MHz ja zunächst schnell genug)

>DSP
Sicher ein interessantes Thema, aber mann muss sich ja auch noch was
für später aufheben.

Autor: Dominik S. Herwald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab den Thread jetzt nicht ganz gelesen, aber vielleicht findet ihr
hier ja ein paar kleine Anregungen ;)

http://www.bitscope.com/design/


MfG,
Dominik S. Herwald

http://www.dsh-elektronik.de/

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt:
Hast du einen Schaltplan und Programmierbeispiele von deinem
Logikanalyser/Oszi? 32MS würden mir reichen.

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wieviel soll denn das fertige Oszilloskop eigentlich kosten ?

Oder anders gefragt was will man den mit dem Ding und was erwartet man
davon?

1) Ich spiel einfach mit dem Gedanken weil man dabei einiges lernen
kann.

2) Wenn man auf seinem Steckbrett rumspielt wäre es manchmal schon
schön wenn mann paralell 4-8 Analoge Signale auf meinem PC Monitor Live
mitverfolgen könnte (was passiert wenn ich daran zupfe?). Genau muss es
nicht sein, etwas schneller schon wenn möglich.

3) auf keinen Fall ersetzt sowas einen guten DigiOszi

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dominik
>http://www.bitscope.com/design/

Gute erinnerung! (hate die schamatics vor einem halben jahr in
meinenArchiv gebunkert nach dem Motto: eines Tages werde ich auch dies
verstehen... und dann ganz vergessen)

Ich nehmen an vielen ist auch schon dieser oft zitierte Logic Analyzer
ueber den Weg gelaufen:

32-Kanal-Logik-Analysator bis 40 Mhz
http://www.qsl.net/dg5dbz/pcla/pcla.html

Autor: Berti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns kein AVR sein muss versuchs mal mit einem 8051 Derivat von Analog
Devices.
ADUC812, ADUC814 usw. haben internen DMA Controller... Das bringt einen
schönen performance Schub was das Speichern der Daten anbelangt...

Autor: C3PO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

irgendwas muss ich übersehen haben:
du sagst du hast letztendlich 1GSample/s herausgeholt, benutzt aber nur
ein 1/8 der Frequenz zum Ansteuern der SRAMS.

wie bekommst du dann die Abstände von 1ns hin wenn du nur nen Takt hast
von 8ns ???
dein CPLD muss ja in Abständen von 1ns die Enable-Leitungen
ein/ausschalten (jeweils gesehen zum vorhergehenden SRAM)

Was meinst du mit:
jedes RAM ist separat über einen Treiber am ADC angeschlossen.

also mit nem 5ns CPLD und einem <=20ns SRAM dürfte eine max.
Samplingrate von 200MHZ drin sein (bei nem ADC brauchts dann allerdings
ne Datenbreite von 32 BIT (zu den 4 SRAMS).

PS.: kann ich deine Dr.-Arbeit haben ???
Gruß

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit folgender Schaltung:
Ein ADS830 und ein SRAM, angesteuert von einem CPLD mit max. 60MHz.
Das ganze 2x für 2 Kanäle. Einer der ADCs wird bei der positiven
Flanke, der andere bei der negativen angesteuert.+
Verbindet man beide analog Eingänge, erhält man so 120MS. Das ganze
einfach und ohne Timingprobleme. Und 120MS reichen eigentlich, das ist
in etwa so schnell wie ein normales 20-30MHz Oszilloskop, eventuell
sogar noch etwas schneller.

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mir die DB von Standard Oszis anschaue so sind deren tr/tf
Zeiten (bei >30-40MHz) selten besser als 4ns, damit hat man doch
schnell ein Sample Jitter Problem am ADC?

Das 830 DB schreibt hierzu:

Particularly in udersampling applications, special consideration
should be given to clock jitter. The clock input should
be treated as an analog input in order to achieve the highest
level of performance. Any overshoot or undershoot of the
clock signal may cause degradation of the performance.
When digitizing at high sampling rates, the clock should
have a 50% duty cycle (tH = tL), along with fast rise and fall
times of 2ns or less.

Wenn 2 ADCs durch invertieren des CLK Signals paralell angesteuert
werden wird das jitter problem noch schlimmer da die Oszi oft nur eine
Waveform Symmetry von 40/60%-45/55% haben.

Oder gehst du etwa von einem heruntergeteilten 120MHz Oszi aus???
(hab bisher nur einen 100MHz Oszi bei R. fuer 7.60€ gesehen, ist das
alles überhaupt beherrschbar?).
Ansonsten ist das gegenphasige Verschränken von 2 ADCs natürlich schon
elegant und einfach...

Wenn man die CLK Leitung des Oszi über den CPLD laufen lässt (und dann
an den ADC geht) verbessert oder veschlechtert sich dann das Jitter
durch die langsame tr/tf Flanke?

Autor: Matthias H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier tun sich ja Abgründe auf. Ich möchte dann die Patentrechte an dem
Oszi.

Autor: Dominik S. Herwald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch zwei gute Links zu DSO Projekten die ich aus meinen Favoriten
ausgegraben habe:

http://www.chocbar.demon.co.uk/
http://www.johann-glaser.at/projects/DSO/

Beide ziemlich interessant, aber alle nutzen FPGAs...

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der johann-glaser link ist sehr gut, geht auf einige der hier
angeschnitten Punkte (z.B. Clock) ein. Werds mir mal in Ruhe
anschauen...

Danke!

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um die Linkliste komplett zu machen:
http://www.fpga4fun.com/digitalscope.html

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.