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.
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?
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?
>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.