Hi, ich denke über ein neues DSO nach, das komplett mit recht einfachen Mitteln zu realisieren ist und dessen GUI auf einem Android Handy rennt. Um alles im Rahmen zu halten sind 32MS/s angepeilt, was für jeden Bastler reichen sollte (wenn er nicht gerade so ein DSO bauen will). Zwei Kanäle sollen es aber unbedingt werden. So soll das aussehen: -Verbindung zum Droiden per Bluetooth mit einem BTM112 Daher relativ geringe Datenrate -> mehr als ein paar kB Speichertiefe geht kaum aber sollte reichen -ein ATMega lenkt alles -Analogteil wird abgekupfert von den zugänglichen Schaltplänen des PCS32/64 von Velleman. Besser fummelt man das als Bastler sicher nicht hin. -die Werte von 2 AD-Wandlern werden laufend in je ein SRAM geglappert (überlaufend nach 4kB) -ein 74HC4040 zählt laufend die Adressen für die SRAMs durch (12bit also 4k) -eine Triggereinheit (eingestellt vom µC) überwacht ständig die Werte (mit den 8 bit wobei die 6 MSB wohl locker reichen würden) und löst den Trigger aus. Dadurch wird ein weiter 11bit Zähler (2k) gestartet, wenn der voll ist wird gestoppt. Der Trigger ist also immer in der Mitte des 4kB-Frames. - dann liest der µC die SRAMs aus, einfach inkrementierend von der letzten Adresse. Der Trigger hat ja in der Mitte des Frames zugeschlagen. -für die zusammen 8kB Daten kommt externes SRAM an den µC -damit es flotter geht, werden immer nur 800Byte um den Trigger herum aus den beiden Frames gesendet bis man scrollt Meint ihr, das ist so praktikabel? Klar, mit diskreter Logik wird das ein Gattergrab aber da ich das gleich in SMD mache sollte das überschaubar sein. FPGA oder Ähnliches kommt nicht in Frage. Was mir noch fehlt ist der Trigger. Ein 74irgendwas, der mir zwei Bytes vergleicht und mir sagt welches grösser ist. Was nehme ich da oder wie macht man das? Gruß, Norbert
Hi Norbert, mit einem async-Zähler wie dem HC4040 kommst du nicht auf 32MHz weil die Ausgänge erst nacheinander umschalten. Du brauchst einen sycronen Zähler. Schau dir mal das Design des Minilog Logikanalysers hier im Forum an. Der kommt mit diskreten Bauteilen auf bis zu 80MHz. Sourcen sind verfügbar und eine Triggerlogik ist auch drin. Ich hab den selbst auch nachgebaut, allerdings mit einem CPLD Latice M4A5-64 als Ersatz für die ganzen Logikchips. Derzeit plane ich ebenfalls einen Vorsatz um dem LA als Oszi zu nutzen incl. anderer Software zur Darstellung. - Sampletiefe ist 32kB, umstellbar auf 4kB um einen kontinuierlichen Bildrefresh des Analogteils zu erhalten. - ebenfalls über Bluetooth angebunden. - Analogteil ist noch undefiniert, ein erster Entwurf mit einem ADS830 auf Steckboard steht (zeigt bei hohen Sampletakten fast nur noch Störungen an, bis 5MHz geht). Es gibt allerdings nur einen analogen Kanal. - an der Software für den AVR sind noch ein paar Anpassungen nötig, dann kann ich mit den ersten Tests meines Umbaus starten. - PC-Software steht, allerdings sind die neuen Funktionen mit 4kB Sampletiefe noch ungetestet. Mit 32kB ging es jedenfalls. Soll ich dir meine angepassten Sourcen mal zur Verfügung stellen? Evtl. können wir ja gemeinsam dran bauen. mfg Harri
Harri schrieb: > mit einem async-Zähler wie dem HC4040 kommst du nicht auf 32MHz weil die > Ausgänge erst nacheinander umschalten. Du brauchst einen sycronen > Zähler. Hi, das verstehe ich jetzt nicht ganz. Bei jedem Takt zählt der HC4040 doch die Ausgänge einen hoch oder nicht? Ich ahne da was... Wenn man sich das Datenblatt ansieht, der Takt muß erst ganz durchrattern um alle Ausgänge zu aktualisieren. Nein, durch die Verzögerung der Gatter langt es nicht für etliche MHz. Ok, was wäre dann ein synchroner Zähler? Den Rest muß ich mir noch zu Gemüte führen. Gruß, Norbert
Hi, der Minilog ist ja ganz famos, Danke! Also den Adresszähler kann ich praktisch so übernehmen, nur das mit dem Trigger wird so nix. Passen müsste ein 74HC682. Der Minilog hat mir aber bei der Suche sehr geholfen. Die Art der Flanke kann ich dann mit Gattern einstellen. Von daher wirst Du auch mit Deinem Vorsatz nicht glücklich werden bzw. musst den Trigger im CPLD entsprechend anpassen. Vor dem Analogteil habe ich höchsten Respekt, das übernehme ich praktisch 1:1 von dem PSC64. Daran krankt ja auch das DSO203 während der Rest wohl ziemlich genial ist. (Verglichen mit dem Niveau auf dem wir uns hier bewegen). Mit der PC-Software werde ich wohl kaum was anfangen können und die Sources für den AVR sind a) eher nicht das Problem und b) wohl doch sehr anders bei meinem geplanten Projekt. Sehe gerade, das ist ja in ASM - Weia, da kann ich ja nun auch so gar nichts mit anfangen. Ich mache das mit Bascom und auch die Soft auf dem Droiden wird wohl in einem Basic-Interpreter laufen (wenn der das schafft). Immer alles schön einfach. Mein Problem war eigentlich bisher nur die externe Logik und das sieht jetzt sehr gut aus! Danke! Wie man sich sowas aber auf Lochraster antun kann... Gruß, Norbert
Hi Nrbert, ich bin's wieder - diesmal sogar angemeldet. Norbert S. schrieb: > Also den Adresszähler kann ich praktisch so übernehmen, nur das mit dem > Trigger wird so nix. > Passen müsste ein 74HC682. Der Minilog hat mir aber bei der Suche sehr > geholfen. Hast du schon eine Bezugsquelle für den HC682 gefunden? Sowas exotisches dürfte nicht ganz einfach sein. Es gibt aber auch noch den HC85, die 4 Bit Version davon. Meiner Meinung nach reicht der Trigger des Minilog aus und es ist gar kein genauer Vergleich der AD-Werte mit einem Triggerwert nötig. Beispiel: Nullpunkt in Skalenmitte entspricht 10000000 bzw. 01111111 (der genaue AD-Wert dürfte um diesen Punkt schwanken). Normalerweise muss man selten genau auf einen bestimmten Wert triggern. Also wertet man einfach die obersten 3 Bits aus und kann bei 101, 110, 111 triggern. Negative Werte gehen auch, Trigger auf 011, 010, 001. Damit kann man mit der minilog-Triggerlogik auf 25, 50 und 75% des Skalenwertes positiv wie negativ triggern. Sehr schnelle Flanken könnten den Triggerbereich durchlaufen ohne dass der AD-Wert einmal aufgetaucht ist. Aber dann hat man vermutlich sowieso eine zu geringe Samplerate gewählt ;-) > Vor dem Analogteil habe ich höchsten Respekt, das übernehme ich > praktisch 1:1 von dem PSC64. Daran krankt ja auch das DSO203 während der > Rest wohl ziemlich genial ist. (Verglichen mit dem Niveau auf dem wir > uns hier bewegen). Dann schau dir mal das hier an: Beitrag "Projekt - universelle analoge Oszilloskop-Vorstufe" Dort wird/wurde eine universelle analoge Vorstufe mit richtig guten Leitungsdaten entwickelt. > Wie man sich sowas aber auf Lochraster antun kann... Wenn man das ganze TTL-Gerödel in einen CPLD-Baustein packt, dann geht es. Ich hab dir mal ein Bildchen meines Aufbaus dran gehängt, du siehst den AVR, das RAM, den Eingangspuffer, beide Oszillatoren und der Rest steckt im CPLD. Der hat zwar keine Pins mehr frei, aber die Logikzellen sind gerade mal zur Hälfte belegt - also noch Platz für einen zweiten Zähler und ein Schieberegister für Config-Daten. Ein HC682 sollte auch kein Problem sein, falls ich mit meinem Triggerkonzept nicht zufrieden bin. Aber um das rauszufinden müsste ich erstmal weiter basteln ;-) mfg Harri
Hi, Harald S. schrieb: > Sehr schnelle Flanken könnten den Triggerbereich durchlaufen ohne dass > der AD-Wert einmal aufgetaucht ist. Genau da sehe ich das Problem aber hast Recht, so dramatisch ist das vermutlich nicht. Aber mit einem 682 oder 684 ginge das perfekt und nur 3 Triggerstufen wäre mir dann doch etwas wenig. Bezug einer der Dinger ist in der Tat ein Problem, erst recht in SMD. Der HC85 ist eigentlich perfekt und 4bit sollten reichen. Bei 8 div vertikal gibt das einen Trigger in Stufen von 0,5 div. HC85 gibt es für ganz schmales Geld bei Segor. Klar, mit der programmierbaren Logik ist das eleganter aber da hab ich keinen Schimmer von und wenn man das alles in SMD macht (eigene Produktion, sehr schön eingespielt) ist das kein Problem. Harald S. schrieb: > Dann schau dir mal das hier an: > Beitrag "Projekt - universelle analoge Oszilloskop-Vorstufe" Na das wäre weit übertrieben. Was mir jetzt noch fehlt ist ein passender AD-Wandler, den TDA8703 vom PCS32/64 gibt's nicht mehr. TDA8702 von Segor ginge wohl... Gruß, Norbert
Norbert S. schrieb: >> Beitrag "Projekt - universelle analoge Oszilloskop-Vorstufe" > > Na das wäre weit übertrieben. Sag das nicht zu schnell. Mir gefällt an dem Konzept, dass der Teiler 10 und 100 getrennt voneinander sind. Bei Vellemann beeinflusst der Abgleich des einen Teilers u.U. den anderen Teiler. > TDA8702 von Segor ginge wohl... Glaube ich kaum, das ist ein DA-Wandler. Andere Richtung :-) Wie wäre der ADS830?
Hi, dafür ist die Vorstufe von Velleman so schön einfach. Wobei der Offset mit der Temperatur immer wieder abhaut, was etwas nervte. Vielleicht baue ich da noch ne geregelte Heizung ein, dann müsste das nach 10-20s stabil sein. Ich denke das ist der Fet (SST440) der da so driftet? Ansonsten will ich es wirklich nicht übertreiben und Analog ist nicht meine Welt. 20-40MS/s müssen reichen. Wenn der Abgleich etwas umständlicher ist - das macht man einmal. Dazu habe ich noch 74HCT590 gefunden, 8bit synchron. Dann wird die Zählerei noch etwas einfacher und ich kann die Speichertiefe aufbohren, der Speicher ist ja 32k (10 St. mit 20ns fürn Appel & Ei aus der Bucht aus GB). Ausserdem muß ich bei 4k auch nochmal bis 2k nach dem Trigger zählen. Für kleinere Sampleraten nehme ich dann noch einen 74hc590, bei 40MHz geht das dann max runter auf 156kHz, darunter kann dann der ATMega den Krempel steuern. Hier und da wird dann noch das eine oder andere Gatter nötig werden - oh mann, was hab ich mir da bloß vorgenommen. > das ist ein DA-Wandler ups, falsch rum ;-) > Wie wäre der ADS830? Passt, gibts aber auch nicht an jeder Ecke. Also habe ich mal bei Digikey geschaut. Die parametrische Suche bei digikey ist wirklich immer wieder vom feinsten, da sind noch ein paar andere günstigere Kandidaten dabei. Auch die Logik-Exoten sind da kein Problem. Also Beschaffung ist erstmal gelöst und da ich gleich für mind. 3 Stück bestelle komme ich auch in den kostenlosen Versand. Also ich fasse zusammen: -Es bleibt für mich bei der Eingangsstufe vom PCS32/64. -AD-Wandler ADS830 oder ähnlich. Sieht passend aus: ADC0804S040 http://www.nxp.com/documents/data_sheet/ADC0804S030_040_050.pdf -Speicher CY7C199-20VC 32k x 8 (schon gekauft) -Speicherzähler 2x 74hc590 kaskadiert erstmal nur bis 4k -Zähler nach dem Trigger noch 2x 590 erstmal nur 2k -Trigger 4bit Vergleicher 74hc85 (4 MSB macht 0,5div Triggerauflösung) -Teiler für den Takt noch ein 590 -div. Gatter um das alternativ per ATMega steuern zu können Das wird noch heftig das zu routen... Danke für Deine Hilfe! Komisch, daß hier keine blöden Kommentare kamen sondern nur Deine äusserst hilfreichen Antworten. Gruß, Norbert
Mahlzeit! > dafür ist die Vorstufe von Velleman so schön einfach. Wobei der Offset > mit der Temperatur immer wieder abhaut, was etwas nervte. Vielleicht > baue ich da noch ne geregelte Heizung ein, dann müsste das nach 10-20s > stabil sein. > Ich denke das ist der Fet (SST440) der da so driftet? Jupp, das liegt am FET. Deshalb hat die Vorstufe hier im Forum eine DC-Stabilisierung eingebaut, kombiniert mit der Offset-Einstellung. Die Linear Appote 47 enthält eine andere Lösung zur DC-Stabilisierung eines FET. Mit einem geeigneten OP kannst du den FET auch gleich weglassen. Schau mal hier Beitrag "Re: Eigenbautastköpfe" rein. Das würde dann den Aufbau der Vellemann Vorstufe aber auch die universelle Stufe hier aus dem Forum wesentlich vereinfachen. > Hier und da wird dann noch das eine oder andere Gatter nötig werden - oh > mann, was hab ich mir da bloß vorgenommen. Hmmm. Hast du mal die Anzahl der Bauteile grob durchgezählt? Da kommen locker 20 Chips zusammen. 2 x hct590 Adresszähler 2 x hct590 Triggerzähler 1 x hct590 Taktteiler 1 x hc85 Triggerkomparator 1 x hct151 Taktauswahl 1 x 164 Schieberegister für Triggerdaten 2 x 00 Logik vom Minilog 2 x RAM 1 x AVR 2 x AD-Wandler 2 x OP-Amp 1 x Treiber für die Relais im Analogteil Alle zeitkritischen Bauteile müssen schnell genug sein, da gibt es manchmal schon Unterschiede zwischen zwei hct590 verschiedener Hersteller. Und danach hast du ein 2 Kanal Oszi, eine Zweitnutzung als Logikanalyzer scheidet aus, weil es deine Triggerlogik nicht hergibt. Ich hab den 7485 für eine richtige analoge Triggerlogik noch mit in mein CPLD gequetscht, soll ich dir meine Sourcen mal per PM senden? Ist noch in Abel geschrieben, das ist zwar veraltet aber (meiner Ansicht nach) näher an der Logik als VHDL. VHDL hat mich bisher immer abgeschreckt, weil es mir zu abstrakt aussah. >> Wie wäre der ADS830? > Passt, gibts aber auch nicht an jeder Ecke. Ich hatte meinen damals von Reichelt. > -Es bleibt für mich bei der Eingangsstufe vom PCS32/64. > -AD-Wandler ADS830 oder ähnlich. Sieht passend aus: ADC0804S040 > http://www.nxp.com/documents/data_sheet/ADC0804S030_040_050.pdf Hat laut Datenblatt keine interne Referenzspannung. Du musst also noch eine Referenzspannung extern erzeugen. Der ADS830 hat das drin :-) > Das wird noch heftig das zu routen... Und bei jeder nötigen Schaltungsänderung musst du neu routen und ggfs eine neue Platine machen. Fragt sich dann ob du die SMD-Bauteile zum Teil erneut nehmen kannst oder nicht. Die AD-Wandler und seine Kondensatoren würde ich evtl. auf ein Adapterplatinchen setzen, auch wenn das elektrisch gesehen ungünstig ist. Wenn alles funzt, kannst du ja nochmal einen saubeen Aufbau machen. > Danke für Deine Hilfe! Komisch, daß hier keine blöden Kommentare kamen > sondern nur Deine äusserst hilfreichen Antworten. Einfach mal Glück gehabt? mfg Harri
Hi, eine kleine Vereinfachung wäre noch, nur Ch1 als Trigger zu verwenden. Das hielte ich für absolut akzeptabel. Bleibt trotzdem ein böses Gattergrab, kaum flexibel so fest verdrahtet. Für die Entwicklung wird das sicher erstmal als Module zusammengesteckt, sonst werde ich ja irre dabei. Ich hab mir jetzt mal Abel, VHDL und Verilog angesehen und überlege ernsthaft, da mal einzusteigen. Wobei mir Abel ziemlich kryptisch erscheint und in eine eigentlich obsolete Sprache einzusteigen erscheint mir auch nicht sehr sinnvoll. Also ev. VHDL oder Verilog, wobei mir Verilog auf den ersten Blick etwas sympatischer ist. Trotzdem wäre es nett, wenn Du mir Deine Sourcen schicken würdest. Was ich jetzt auf die Schnelle nicht gefunden habe: Kann man die Dinger nur mit Jtag programmieren oder geht das auch mit SPI wie z.B. mit AVRdude oder so? Also was wäre da der minimale Einstieg was die Hardware angeht? Ich denke diese Geschichte wäre ein schöner Einstieg in CPLDs & Co. Gruß, Norbert
Sowas aehnliches (von der Idee her) habe ich schon mal gebaut: http://www.pdamusician.com/lcscope/ Auf den Pretriggermodus habe ich aus Einfachheitsgruenden verzichtet. Die Samplerate ist auch niedriger (1 MHz war die Grenze der verwendeten ADCs, sonst sollte es schon auf einige MHz gehen). Dafuer besteht die Logik auch aus gerade mal vier 74HCxx-Chips. Triggerlevel wird mittels Opamp (als Komparator verwendet) eingestellt. Auf der Webseite ist die Schaltung auch im Detail beschireben. Fuer den analogen Frontend, schau Dir mal auch mein DPScope an. Mit einem aehnlochen Konzept aber schnelleren Opamps ist da durchaus 10 MHz Bandbreite und mehr drin: http://www.dpscope.com Design des Fontends ist auch hier beschrieben, ist aenlich, aber hat Frequenzkompensation. Wolfgang
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.