PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Logic Analyzer



zackzack
08.02.2006, 12:21
Einen LA werde ich mir bald einmal zulegen müssen.

Da ich aber einen HP Speicher Oskar (100 MHZ 4 Kanal, Kauf aus Insolvenz) schon habe (mit dem ich mich auch bei hohen Frequenzen / Baudraten behelfen kann), würde mich nun erst einmal ein "Billigteil" interessieren.

Hat jemand hiermit

http://www.xs4all.nl/~jwasys/old/diy2.html

schon gearbeitet ? Läuft es ?

Grüsse

stegr
08.02.2006, 21:33
noch nicht mit gearbeitet, allerdings hat das nur eine Sample-Rate von einigen zig kHz - das wäre mir doch etwas zu langsam ;)

Für was genau brauchste denn einen LA?
Bei den meisten (so auch bei mir) liegt er im Schrank und wartet auf den einen Tag im Jahr, an dem man ihn mal rausholt und dann damit versucht nen Fehler in ner Digitalschaltung zu finden, der am Ende doch durch ein analoges Verhalten hervorgerufen wurde.

Ist dein Speicheroszi digital oder analog aufgebaut (ja, es gab mal von HP auch analoge Speicherröhrenoszis, aber relativ selten). Wenn es digital ist, solltest du mit den 4 Kanälen eigentlich relativ weit kommen... Notfalls kannst du ja über Puffer und Widerstände dir ne Art DA-Wandler aufbaun und dann die analoge Spannung mitm Oszi messen. Das sollte für zumindest 5-6 Bit reichen (so dasss man es noch erkennen kann) ;)

MfG
Stefan

zackzack
09.02.2006, 05:36
noch nicht mit gearbeitet, allerdings hat das nur eine Sample-Rate von einigen zig kHz - das wäre mir doch etwas zu langsam ;)

Für was genau brauchste denn einen LA?
Bei den meisten (so auch bei mir) liegt er im Schrank und wartet auf den einen Tag im Jahr, an dem man ihn mal rausholt und dann damit versucht nen Fehler in ner Digitalschaltung zu finden, der am Ende doch durch ein analoges Verhalten hervorgerufen wurde.

Ist dein Speicheroszi digital oder analog aufgebaut (ja, es gab mal von HP auch analoge Speicherröhrenoszis, aber relativ selten). Wenn es digital ist, solltest du mit den 4 Kanälen eigentlich relativ weit kommen... Notfalls kannst du ja über Puffer und Widerstände dir ne Art DA-Wandler aufbaun und dann die analoge Spannung mitm Oszi messen. Das sollte für zumindest 5-6 Bit reichen (so dasss man es noch erkennen kann) ;)

MfG
Stefan

Hallo,

Speicheroszi ist analog. aber dennoch lassen sich Bit-Folgen gerade bei hohen Frequenzen gut darstellen. Aber darstellbare Samplerate ist gering und die Weiterverarbeitung am PC geht nicht. Idela wäre Meilhaus, ist mir aber definitiv zu teuer. Bis im Internet ein Selbstbauprojekt fertig ist, muss ich mich eben behelfen. LA brauche ich übrigends auch für die Waschmaschine - nicht lachen - aber habe gerade meine Miele mit Einsatz Oszi repariert. Ist nur recht umständlich.

Grüsse

PICture
13.02.2006, 02:41
Hallo zackzack!
Ein Handheld Logic Analyzer (weiter LA) ist einer von meinen laufenden Projekten. Es wäre schon längst fertig, konnte mich aber bis jetzt nicht über entgültige Gestalltung entscheiden. Du bist an einem LA (selberbauen ?) wirklich interresiert.
Deswegen möchte ich Dir eine Zussamenarbeit vorschlagen, um das Projekt baldmöglichst abzuschliessen.
Ich würde Dir sehr dankbar für jeden Ratschlag über LA, der in der Praxis sinnvoll ist. Ich denke, dass so ein Gerät(chen) sogar vermarktbar ist. Aber vielleicht denke ich zu weit...

Als Hardware habe ich PIC18F252 mit LCD Grafikdisplay 32x122 pixel, (4x100 Samples) oder Nokia 3310/3330 (6x50 Samples) vorgesehen. Bis jetzt habe ich folgende Parameter festgelegt:

Eigangsspannung: Logikpegel 5V mit ev.Teiler ?

Samplerate: 5 MHz - 500 Hz in 16 Bereichen stufenlos 2:1 einstellbar ?

Speichertiefe: 1024 Samples ?

Speicherung: in EEPROM 4x512 oder 8x256 gewählte Samples ?

Triggerung: mit reisender oder fallender Flanke nach einstellbarer Zeit ohne Impulse ?

Messung: Zeit zwischen zwei markierten Samples ?

Betriebsarten: Aufzeichnung von 4/6 Kanälen gleichzeitig von Kabel oder nacheinander (bei wiederholenden Signalen) von Prüfspitze ?

Eingangsanschluß: PS2 (Maus) Buchse ?

Bediennung: Menügesteuert mit Mausrad und ein paar (1-3) Taster/Schalter ?

Stromversorgung: Steckernetzteil oder internes Akku ?

Abmessungen: ca. 130x40x20 mm ?

Bis jetzt habe ich ca. 6kB von Programm (in ASM) geschrieben und aktuell schreibe ich Unterprogramm, der die variable Taktfrequenz des Prozessors messen soll, um die Messungen der Zeit zwischen zwei markierten Samples zu ermöglichen.

MfG

Vogon
13.02.2006, 13:26
... Du bist an einem LA (selberbauen ?) wirklich interresiert... ... das möchte ich auch bauen. :-k


...Ich würde Dir sehr dankbar für jeden Ratschlag über LA, der in der Praxis sinnvoll ist... Wie ist es mit einer Schnittstelle zun PC ?
Mit USB sollte es sogar in Echtzeit gehen. Wenn der Analyzer nur Änderungen überträgt kann man sporadische Ereignisse festhalten.

PICture
13.02.2006, 16:55
@Vogon
Ich habe vor bloß ein Handheld LA ohne PC Schnittstelle zu entwickeln.
Da der PIC18F252 32kB Programmspeicher hat, hoffentlich bleibt mir noch etwas übrig. Er hat nur USART und ich weiß nicht, ob es für USB geht. Wenn Du den LA mit PC verbinden willst, schreib mir bitte, welche Pinsl ich für diesen Zweck frei lassen soll. Dann kannst Dir das selber erweitern. Für COM Schnittstelle sind die Pins 17 und 18 vorgesehen.
MfG

Vogon
13.02.2006, 17:16
@PICture:
Eine COM reicht ja erst einmal zum Daten abholen aus.

Das mit USB ist ja nur so eine Idee. Wenn wirklich jemand die "Echtzeit" Auswertung braucht, kann man mit der Erfahrung an deinem Projekt, es mit einem üpiger ausgestatteten MC noch erweitern.

PICture
13.02.2006, 17:35
@Vogon
Dann lasse ich die o.g. Pins frei. Der LA ist für Service und Bastler geplannt, und soll möglichst klein, einfach zu bediennen und billig sein.
Vielleicht kannst Du mir noch ein paar Wörtchen über Parameter schreiben? Ich bedanke mich im voraus.
MfG

Vogon
13.02.2006, 22:46
@PICture: Parameter ?
Du meinst für die COM ? 19200,N,8,1

Oder das Format der gespeicherten Daten ?
Am schnellsten sind die drausen wenn sie so gesendet werden wie sie der PIC im Speicher abgelegt hat. Dann braucht man aber ein externes Programm um sie anzuzeigen.

Einfacher ist es wenn man sich das mit Hyperterminal gleich anschauen kann. Ich denke da an eine Folge von Nullen und Einsen.

Die Komfort-Anzeige könnte so ausehen wie deine Schaltpläne in ASCI.

stegr
14.02.2006, 02:18
Für nen LA mit direktem PC-Anschluss bietet sich ein PIC18F4550 an. Der hat schon USB drinnen und bietet die Möglichkeit Daten vom Parallel Slave Port mittels Bulk-Transfer zu übertragen. Dazu könnte man sich mal die Application Notes dazu bissle anschaun (zu mehr hats bei mir noch nicht gereicht).
Das interessanteste an einem LA ist aber meist nicht die Datenaufzeichnung, sondern die Triggerung - und dafür wird man wohl nicht um nen CPLD drum herum kommen.

MfG
Stefan

PICture
14.02.2006, 06:36
Hallo!
@Vogon
Ich meinte die Parameter von LA, die ich vorgeschlagen habe.
@stegr
Ich bin sehr optimistisch, dass ich die Trigerrung dem Prozessor überlassen kann. Damit er dafür genug Zeit hat, wird die Aufzeichnung der Eigangsdaten durch einen FIFO Register um 16 bzw. 64 Samples zeitlich verzögert. Um es einfach zu machen, werde ich wahrscheinlich interrupt on change benutzen.

Jetz ist mir was eigefallen. Es ist auch ev. vorgesehen auf dem Display (auf)gezeichneten Signale an die Eingänge, die jetzt als Ausgänge dienen, zu schicken. So wäre es Programmable Logic Generator. Gibt´s so was überhaupt schon ?
MfG

Vogon
14.02.2006, 23:52
... folgende Parameter festgelegt:

Eigangsspannung: Logikpegel 5V mit ev.Teiler ?
:= Eine Schaltung, die den Eingang vor dem Durchbraten schützt. [-X Kommt leider vor das man an eine zu hohe oder negtiven Spannung kommt. :oops:

Samplerate: 5 MHz - 500 Hz in 16 Bereichen stufenlos 2:1 einstellbar ?
Speichertiefe: 1024 Samples ?
Speicherung: in EEPROM 4x512 oder 8x256 gewählte Samples ?
Triggerung: mit reisender oder fallender Flanke nach einstellbarer Zeit ohne Impulse ?
:= Das ist das was ich mir wünsche. Dann kann ich mit meinem Uralt-HAMEG 412 ohne Speicher weiterleben.

Messung: Zeit zwischen zwei markierten Samples ?
Betriebsarten: Aufzeichnung von 4/6 Kanälen gleichzeitig von Kabel oder nacheinander (bei wiederholenden Signalen) von Prüfspitze ?
:= Ist OK.

Eingangsanschluß: PS2 (Maus) Buchse ?
Bediennung: Menügesteuert mit Mausrad und ein paar (1-3) Taster/Schalter ?
:= Wenn du dir die Mühe mit der Maussteuerung antun willst - Bitte gern.

Stromversorgung: Steckernetzteil oder internes Akku ?
Abmessungen: ca. 130x40x20 mm ?
:= Ein Fach für Extern geladene Akkus und Buchse für Steckernetzteil. :-k

Es ist auch ev. vorgesehen auf dem Display (auf)gezeichneten Signale an die Eingänge, die jetzt als Ausgänge dienen, zu schicken. So wäre es Programmable Logic Generator.
:= Die Idee ist gut. Wird aber mit einer Sicherheits-Beschaltung nicht so einfach sein. :-k

PICture
15.02.2006, 08:07
Hallo Vogon!
Vielen Dank für Deine Meinung über die Ausgangsparameter des LA´s. Man muss ja mit etwas anfangen, und alle Schaltungen mit Microcontroller sind immer ziemlich leicht änderbar.
Das mit den zu hohen oder negativen Spannungen kommt nur vor, wenn man den LA ausser digitalen Schaltungen einsetz. Deswegen habe ich es mit der Buchse vorgesehen, wo man sich entsprechenden Frequenzkompensierten Teiler, der die Ausgangspannung immer im Logic Bereich hält, einstecken kann.
Unter Bediennung mit Mausrad habe ich aus der PC Maus ausgebautes Rad gemeint und nicht die ganze Maus. Das ist ganz einfach zu programmieren und ist für mich besser als "+" und "-" Tasten, damit kann man sich sehr gut am Bildschirm nach links und rechts bewegen und schnell auf bestimmte Stelle der Aufzeichnung kommen.
Bei Stromversorgung habe ich vergessen, die Möglichkeit den LA von der analiesierenden Logic Schaltung mit +5 zu versorgen. Das mit dem Akku und Steckernetzteil würde ich so machen, das das Netzteil das Akku aufladen wird.
Bei dem Logic Generator (LG) habe ich auch gemeint, daß er nur in Logic Schaltungen benutzt wird, und am Ausgang nur Bustreiber vorgesehen.

Ursprunglich wollte ich Speicheroszi (SO) mit LA in einem Gehäuse bauen, da die ganze digitale Schaltung für beiden gleich ist. Dann aber ist mir eine Idee mit SO eigefallen, die mich zur Trennung den beiden bewegt hat. Außerdem finde ich kein Grafikdisplay der sich für beide Geräte eignet. Für LA ist der 32x122 besser (für SO zu lang und zu niedrig) und für SO der 48x84 (für LA zu kurz und zu hoch).

Wenn Du einen Handheld SO mit 40MHz Abtastrate bauen willst, dann schreib mir, bitte, was für SO Parameter gut wären, weil ich (wie bei jeder Entwicklung) im Zweifel bin. Ich zweifle sogar, was ich zuerst bauen soll, weil beides (SO und LA) brauche ich. Oder nur SO, weil LA ist ja einfacher S0. Vielleicht einen "normalen" SO mit großen LCD Bildschirm und keinen Handheld ? Was meinst Du ? :)

MfG

Vogon
15.02.2006, 12:40
Das mit den zu hohen oder negativen Spannungen kommt nur vor, wenn man den LA ausser digitalen Schaltungen einsetz. ... es reicht leider, den falschen Pin an der H-Brücke zu erwischen. :-&
Deshalb dachte ich an so etwas: http://www.elektronik-kompendium.de/public/schaerer/ovprot.htm

Bedienung mit Mausrad ... ja, das ist so in Ordnung. :-b
... das Netzteil den Akku aufladen wird. Wenn du das mit einer modernen Ladeschaltung machst - OK. Ich denke halt, es ist einfacher die Akkus in so einem fertigen "Delta-Ultra-Fast-Microcontrolled-Super-Charger" zu stecken. Wenn der LA nur ab und zu genutzt wird, sind die Akkus doch leer oder sogar kapput.

...nur in Logic Schaltungen benutzt wird, und am Ausgang nur Bustreiber vorgesehen.... Wenn man den Busstreiber in einen Sockel hat, ist es ja kein Problem einen Abgerauchten auszutauschen. :Haue

Wenn Du einen Handheld SO mit 40MHz Abtastrate bauen willst... da habe ich noch keine Idee. :-k Mein 30 Jahre alter Hameg tuts ja noch. Aber wenn ich so an einen SpeicherOszi denke, dann glitzert es doch in meine Augen :roll: Also ich hab noch keine Ahhhhhnung - - ... doch einen "normalen" SO mit großen LCD Bildschirm ???? :Strahl
Das habe ich grade gesehen: http://www.demotech.dk/
http://www.demotech.dk/contents/media/mainpicture_small.jpg

PICture
16.02.2006, 07:03
Hallo Vogon!
Ich habe aber gemeint unter "normalen" SO solchen, der ganz "selbständig" ist, also ohne PC. Unter grossen LCD Bildschirm habe ich Grafikdisplay 128x256 oder 256x256 pixel mit integriertem Kontroller und ohne Inverter gemeint, da die Bildschirme aus Notebooks lassen sich nicht einfach vom PIC´s steuern. Ich habe selber einen Hameg HM 203-7 und den benutze ich nur für analoge Schaltungen. Der ist mir aber zu gross und zu schwer um ihn in der Hand zu halten. Für digitale Schaltungen habe ich bis jetzt ein Logic Tester (selberentwickelt) benutzt.
Den finde ich besser, weil er einzelne Impulse ab ca. 30ns zeigt, die auf normalem Oszi unsichtbar sind. Die Informationen die er liefert reichen aber nicht mehr aus, da die digitale Schaltkreise immer komplexer werden.
Auf die Idee mit LA bin ich gekommen, weil ich ein Handy Display mit 64x96 pixel habe und in SO verwenden möchte. Für das Display habe ich aber keine Daten. Deswegen will ich die Initialisierung und ein ganzes Bild (768 Bytes) einlesen und danach auf das Display vom LA schicken und vergleichen. Wenn das Bild identisch mit dem von Handy wird, habe ich die richtige Daten im LA und kann ich sie analisieren. Danach kann ich das Display vom PIC steuern. Das ist nur ein konkretes Beispiel von verwendung des LA´s.

MfG

Vogon
16.02.2006, 09:55
Hallo Picture!

..."normalen" SO solchen, der ganz "selbständig" ist, also ohne PC.
Ja, das ist richtig. Es ist nicht so sinnvoll immer einen PC oder Laptop rumzuschleppen.
Mein alter HAMEG (Baujahr 197x) ohne Speichermöglichkeit, taugt nur für simple Digitalschaltungen. Wenn ich kein periodisches Signal und eine Triggermöglichkeit finde, sehe ich damit nichts brauchbares.
Deshalb möchte ich ja den LA bauen. Wie oft habe ich mir schon gewünscht, ein Ereigniss festzuhalten, das in der Vergangenheit liegt... O:)
Hast du dir schon mal überlegt ob man für den SO auch einen Speicher bauen kann ? :-k

PICture
16.02.2006, 10:13
Du meinst ein Speicher für normalen Oszi, oder?

Der SO (Speicher Oscilloscope) hat natürlich Speicher. Ich habe dafür nur 64 Bytes FIFO vorgesehen weil, das Handy Display nicht mehr auf einmal zeigen kann. Natürlich für grössere Bildschirme kann man die FIFO´s seriell schalten und z.B. 4x64=256 Bytes daraus machen. Ich habe auch darüber gedacht ob es nicht sinnvoll wäre den OS als einsteckbaren modul für den LA zu bauen. Ich habe das alles schon auf dem Handy Display teoretisch (noch ohne Hardware) ausprobiert und ich selber finde die Idee nicht schlecht, da bei dem Bau von SO muss man die gleiche digitale Schaltung wieder bauen. Ausserdem aus kostengründen ist das isgesamt viel günstiger.

Vogon
16.02.2006, 10:29
Ja, Du speicherst also die digitalisierten Daten in einer FIFO und kannst den gesuchten Ausschnitt dann Anzeigen. :-k

PICture
16.02.2006, 10:38
Genau. Und ich kann mir zwei Punkte auf dem Bildschirm markieren und der Prozessor errechnet aus der Abtastfrequenz (Periode) und Anzahl der Punkte zwischen den markierten Samples den Zeitabstand zwischen denen markierten. Übrigens schau noch mal mein letztes Beitrag (bearbeitet). Wie findest Du die letzte Idee?

Vogon
16.02.2006, 20:01
Deine Idee ist doch gut. Warum soll man das zweimal aufbauen.

Zur Anzeige auf dem PC habe ich noch eine Idee.
Zum "PSpice Student" Programm gibt es das Modul "Probe". Es ist zur Darstellung der Schaltungssimulation. Mir fehlt leider noch die Beschreibung zum Datenformat. Schau mal in den Link. http://img126.imageshack.us/img126/8402/probe9yv.jpg

PICture
17.02.2006, 06:31
Hallo Vogon!
Ich habe in den Link geschaut und auser enem Bildschirm mit unerklärlichen Impulsen nichs gefunden. Wenn es um irgendeine Simulation geht, bin ich immer der Meinung, das es verlorene Zeit ist. Ich bin leider ein Typ, der nur mit echter Hardware und Software arbeitet und es bleibt bei mir schon so. Deswegen wenn ich Probleme habe, sind sie auch echt und lassen sicht echt beheben.
Ich denke, dass es höchste Zeit ist um das Thema LA und SO zu unterbrechen. Ich melde mich wieder mit fertigem Projekt. Danke Dir für Deine hifreiche Kommentare die meine Meinung bestätigt haben.
Schade, das keiner mehr sich gemeldet hat.

MfG

zackzack
17.02.2006, 07:21
Hallo zackzack!
Ein Handheld Logic Analyzer (weiter LA) ist einer von meinen laufenden Projekten. Es wäre schon längst fertig, konnte mich aber bis jetzt nicht über entgültige Gestalltung entscheiden. Du bist an einem LA (selberbauen ?) wirklich interresiert.

MfG

Hallo PICture


Es ist nett, dass Du mich fragst - fühle mich geehrt. Bin allerdings ein schlechter Partner, da ich beruflich sehr wenig Zeit habe, soll heissen: Job geht vor, Hobby eher unzuverlässig sporadisch. Ich würde mich gerne in das LA Thema einarbeiten, aber keine Zeit.

Hinzukommt, dass mein Haupt-Hobby (nach Familie) meine LGB ist, die ich momentan (seit 3 Jahren !!!) auf MC Steuerung umstelle. Nun siehst Du auch, wo das Problem liegt. Dennoch, ich stehe zu "Anwendungsfragen" gern zur Verfügung.

Grüsse

PICture
17.02.2006, 07:44
Hallo zackzack!
Das freut mich sehr, dass Du Dich doch gemeldet hast. Ich erwarte von Dir nichts mehr, als Bewertung denen von mir vorgeschlagenen Parameters des LA´s. Ich möchte was wirklich eifaches, aber auch genügend nutzliches für alle die es brauchen, entwickeln. Deswegen sind für mich die Meinungen aller zukunftigen Benutzern am wichtigsten.
Vielen Dank im voraus und keine Sorgen, das ich Dich mit meinem Projekt beschäftigen will.
MfG

Vogon
17.02.2006, 10:12
... Bildschirm mit unerklärlichen Impulsen ...
Das war doch anders gedacht.
Das Grafik-Programm stellt die errechneten Daten wie auf einem Oszi oder Analysator dar.
Wenn ich eine Beschreibung zum Dateiaufbau finde, kann ich das doch nehmen.
Es wird aber auch noch andere Programme geben die Daten von deinem LA auf dem PC anzuzeigen und zu drucken.

PICture
17.02.2006, 10:43
Hallo Vogon!

Natürlich! Vielleicht werde ich so ein Programm selber schreiben, da mein Laptop steht sowieso auf meinem Arbeitstisch und ist permanent per LPT mit einem Programmer für PIC´s verbunden. Die COM ist noch frei und kann ich sie für den LA nutzen. Aber zuerst möchte ich den einfachen LA haben. Um die aufgezeichnete Daten mit bestimmter Baudrate ins PC übertragen zu können muss ich dann den LC Taktgenerator des Prozessors auf Quarz umschalten, das wird also berücksichtigt. Vielleicht reicht es feste Samplefrequenzen zu haben (X MHz/n), dann fehlt den LC Taktgenerator Drehko und die Taktfrequenzmessung und auch dazu notwendiges Unterprogramm (was ich gerade schreiben wollte) ab.
Ich habe schnell ins Datasheet des PIC18F252 geschaut und die Übertragung per COM mit 19200 bps geht erst ab 16 MHz Taktfrequenz, das ergibt die höchste Samplerate 2MHz (geplannt war 40 MHz und 5MHz). Dann muss man sowieso umschalten.

MfG

Vogon
17.02.2006, 11:36
Danke,
obwohl ich den LA am liebsten schon bauen möchte, lass dich nicht hetzen oder aus der Ruhe bringen. [-(
Wenn du mal bei Gelegenheit dein vorläufiges Konzept vorstellen könntest. Bin halt schon so neugierig.

PICture
17.02.2006, 19:05
Was möchtest Du? Hardware oder Software ?
Bis jetzt habe ich noch kein Schaltplan mit Eagle erstellt, weil mir so (wegen Schnelligkeit) der ASCII Schaltplan Editor gefällt. Wenn Du willst kann ich Dir schnell was skizzen. Dann kannst auch an Deinem LA mitwirken. Von Software habe ich schon ca. 6kB in ASM, aber ohne Kommentare, also unverständlich.
Hier im Code ein "Schaltplan" vom Eingang, wenn es ausreichend lesbar ist, würde ich gerne alles so zeichnen.
MfG


+VCC
Ri 330 |
____ /->|---o GND
K1 >--|___|-+-------|---\ ===
\-|<-\ | | 4,|12
Ri 330 | | | 3.-------------. 1
B ____ /->|-|-o \-o---| |----->D0 z
K2 >--|___|-+-----|-|-\ | 5| FIFO | 7
\-|<-o | \--|---| 64 x 4 bit |----->D1
u Ri 330 | | | 11| | 9
____ /->|-|-o /--|---| 74HCT7731 |----->D2 u
K3 >--|___|-+-----|-|-/ | 13| |15
c \-|<-o | /-|---| IC1 |----->D3
Ri 330 | | | | '-------------'
____ /->|-|-/ | | 2,6|10,14 14 m
h K4 >--|___|-+-----|-----/ | | .-----. /\
\-|<-o | \-|74HC |/1|
8x | | 12| 73 o--|------<SCK
s 1N4148 === VCC | |IC3/1|--o
MD >-----------\ GND + | '--o--'3 |
| | | 2| | P
e | \--|---o--o---o-----/
| | | 7|.-----.
GND >-\ | | |5 \|74HC |---\ _
| | o---|---o 73 |9 | |_ I
=== | /--|---|---|IC3/2| o
GND | | | | 10'--o--' ----o->SLP
| === | | 6\---- o _
| GND | o-----\4 | | _| C
| | | 2.--o--.5| |
| | \---|74HC |-|-/
| \-------| 74 | |
| 3'--o--' |
LA Input | IC2/1 1\---o-------<CTR
\---------------------------------->MD

Vogon
17.02.2006, 19:44
Erst mal nur die Hardware. Ich habe jetzt schon eine Vorstellung wie du es dir denkst, aber eben nur eine Blasse.
Da ich den PIC kaum kenne, ist das ja ein Grund mich da rein zu denken.
Mit PIC-ASM werd ich mich den später befassen. Bei einem 4040, 6502, 8008, 8032, 8068, 8080, Z80, 6809, 68HC11, 80168 usw habe ich es wenn nötig mal begriffen, da kann ich das mit dem AVR und PIC auch noch mal versuchen.

PICture
18.02.2006, 06:57
Hallo Vogon!
Dein Beitrag war schon da, wenn ich meinen noch editiert habe. Deswegen schau, bitte, meinen letzten Beitrag. Genauer betrachtet dient der FIFO nur als Verzögerung den Eingangsdaten um dem Prozessor eine Zeit für Feststellung gewählter Trigerflanke zu geben. Die zeitversetzte Eingangsdaten vom Ausgang des FIFO´s sollten im RAM des PIC´s abgelegt (1000 Bytes) und danach davon 100 Bytes auf dem Display gezeigt werden. Mit dem Mausrad sollte man das 100 Byte breite "Fenster" innerhalb denen 1000 Bytes hin- und herschieben können. Ohne diese Verzögerung wären die Samples während der Detektion der Trigerflanke verloren. Dafür habe ich noch keine Software.

MfG

PICture
18.02.2006, 12:00
Hallo Vogon!
Hier noch eine Schaltung von Display. Um I/O Pins beim PIC zu sparen habe ich seriellen Datentransfer angewendet. Deswegen braucht das Display nur 4 statt 11 Pins. Die Pinsanzahl bei Displays lässt sich immer bis auf 2 reduzieren da ist dann aber immer mehr IC´s und man muss ein Kompromis finden. Für das Modul habe ich schon fast fertige Software, fehlt nur noch Inhalt des Menüfensters.

MfG



.-----------------------------------------.
| / \ |
| Grafik Display 32 x 122 pixel 10.-. | |
| Ohm| | | |
| | | V ->Beleu-
| 1 1 1 1 1 1 1 1'-'1 - | chtung
VCC | 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 | 9 | |
+ '-----------------------------------------'
| | | | | | | | | | | | | | | | | |
\----|-/ / | | | | | | | | | | | | + ===
| / | | | | | | | | | | | |VCC GND
/--o-/ |10k| | | | | | | | | | | |
| | _V_ | | | | | | /---/ | | | | |
=== \-|___|-/ / | | | | | /---/ | | | |
GND Kontrast | | | | | | | | | | |
E1 >----------------|-/ | | | | | | | | |
E2 >----------------|---/ | | | |GND | | | |
DT >------- VCC o--o-\ | | | |=== | | | |
CK >-----\ \ + | | | | | | | | | | | |
| | 10| |.---------------. | | | |
vom PIC | | .----.9|| 1 2 3 4 5 6 7 | | | | |
| \-|74HC|/ | | | | | |
| 12| 74| | 74HC164 IC4 | | | | |
o---|IC2/2 | 1 1 1 1 1 | | | | |
| 11'----' | 4 3 2 1 0 9 8 | | | | |
| 13| '-----------o---' | | | |
| + | | | | | | | | | | |
| VCC + | | | | + | | | | |
| VCC| | | |VCC| | | | |
\---------------|-|-|-|---/ | | | |
| | | \-------/ | | |
| | \-----------/ | |
LA Display | \---------------/ |
\-------------------/

Vogon
18.02.2006, 12:33
Danke, wenn ich mir den Aufwand so überlege, dann ist das doch akzeptabel.
:)
Hast du schon mal den Preis überschlagen ?
Display wird den Preis bestimmen.
Das Gehäuse macht die meiste Arbeit. (... :-k dein Aufwand an Gehirnschmalz will ich da nicht mit einrechnen. )

PICture
18.02.2006, 13:33
Wenn ich was für mich selber mache, dann ist es automatisch das einfachste und billigste. Ich bin Reichelt Kunde und bei ihm kostet so ein Display (ohne Beleuchtung) 22,35 €. Ich habe meins (mit Beleuchtung) bei ebay unter 5 € ersteigert und bekommen. Als Gehäuse habe ich SP2090 zu 2,15 € von Reichelt vorgesehen. Für jeden, der sich den LA bauen wird, ist der Preis anders. Ausser schon vorgestellter Hardware kommt noch der PIC18F252 (bei Reichelt 6,55 €) und noch ein paar Kleinteile dazu. Aber zur Sache. Ich werde heute mich mit der Triggerung beschäftigen, so das ich sagen kann, ob es rein Softwaremässig möglich ist es so zu machen, wie ich mir das vorstelle. Wenn nicht, werde ich das Hardwaremässig erledigen, was noch 2 bis 3 IC´s brauchen kann. Es ist mir klar das die FIFO´s 64x4 bit sehr schwer beschaffbar sind. Wenn ich es schaffe in bis zu 32 Takten zu Programmieren, werden es 2 FIFO´s 74HCT40105 (16x4bit) die beim Reichelt 0,53 € pro Stück kosten. Ich zweifle auch noch mit dem LC Taktgenerator. Es läuft als Quarz in der PLL Konfiguration und ich habe schon bemerkt, dass wenn man schnell die Frequenz ändert, hängt das Programm, weil wahrscheinlich der Tiefpass Filter des PLL´s zu langsam dafür ist. Im schlimmsten Fall wird der LA nur feste Abtastfrequenzen haben, das heisst 5MHz/n , wo n ganze Zahlen sind. Wäre es noch akzeptable? Ich kann natürlich auch versuchen einen LC Generator als externe Taktquelle anwenden, aber es scheint mir zu kompliziert. O.K. jetzt möchte ich Deine Meinung lesen.

Vogon
18.02.2006, 20:28
Meine wichtigste Quelle für Bauelemente sind einige Schubladenkästen mit Halbleitern, Widerständen und sonstigen Kram. Dazu noch einige Schachtel mit Namen "Dinge zum Wegwerfen zu schade". Ich bin immer erstaunt, was man im Elektronikschrott so elles finden kann. Mein Verdacht, mit dem Display als "Preistreiber" schein ja zu stimmen.

Feste Abtastfrequenzen sind beim LA doch kein Problem. Beim Oszi dreh ich schon mal gerne an der variablen Frequenz.

Aber lasse dich erst mal nicht aufhalten. Wer Schaltpläne und einen Lötkolben hat, kann doch immer noch was ändern und erweitern.

PICture
19.02.2006, 10:09
Hallo!

Ich habe mich entschieden, die bischen erstellte Schaltpläne, nach jeder Änderuhg nicht neu zeichnen, sondern immer aktualisieren. So ist es möglich von vorläufigem zu endgültigem Schaltplan zu gelingen. Deswegen, bitte, immer die alle im Code enthaltene Schaltpläne verifizieren.

MfG




K1><--------->K1 B K1><------------>K1 B



K2><--------->K2 u K2<------------->K2 u

Prüfspitze

K3><--------->K3 c /->K3 c
|
|
|
K4><--------->K4 h o->K4 h
|
|
|
s o->MD s
|
|
|
GND><--------->GND e GND><----------o->GND e

4 Kanal Modus 1 Kanal Modus



><- Klemprüfspitze

LA Kabel

PICture
19.02.2006, 16:20
Hallo!

Das ist das letzte Teil des LA´s, weil ich mich mit Verbindung zum PC nicht beschäftige. Für alle die es brauchen sind die dazu Benötigte Pins des PIC´s frei gelassen. Das alles ist noch nicht abgeschlossen, aber ermöglichst schon sich eine Meinung über das Project zu bilden. Für Anschlüsse sind volgende Buchsen vorgesehen: Eingang-Mini DIN Buchse (EB-DIO M06) und Stromversorgung-Hohlbuchse (HEBW 21). Dazu braucht man noch ensprechenden Stecker. Die Bezeichnung in Klammern ist jewels eine Bestellnummer von Reichelt. Ich habe kein Spannungregler angewendet, da der LA meistens von analisierter Schaltung mit +5V versorgt wird (zumindest bei mir).

MfG



.---------.
|1 28|-<SLP
I | |
D0>-|2 27|->CTR
n | |
D1>-|3 26|-
p | |
D2>-|4 25|-
u | | o
Cc D3>-|5 24|----o---- Menü (Umschalter)
t | | o o-\
|| +-|6 23|-o---- | Param.(Umschalter)
/-||-\ | | | o----+
| || +---+-\ +-|7 22|-o |
\ o C |/ | | | | ----o----+ Mausrad
\ --- C | GND-|8 21|-o |
Sc \. --- C | | | ===.-------------.
o /| C \------|9 20|- VCC GND|VCC |
| V | | L | | | + |
SCK<--+-----+---+--------|10 19|- GND | | T1 Buchse|
33p || __|__ | | | - ---<+5V|
/-||-/ _-_ \-|11 18|-<RX C | \ v |
| || |___| | | O | --- /-< 0V|
|32768Hz- /-|12 17|->CX M | | | |
| || --|~~ | | | .-.=== |
33p +-||-/ CK<-|13 16|->E2 | Ru| |GND |
| || Display | | Display | 1k| | |
=== DT<-|14 15|->E1 | '-' |
GND '---------' | | |
IC0 PIC18F252 | === |
| GND |
'-------------'
LA PIC COM Umpolungsschutz

PICture
22.02.2006, 10:34
Hallo!

Ich denke, dass die Hardware schon nicht geändert wird. Ich schätze, dass nach der Detection gewählter Flanke, das Ablegen der Eingangsdaten in den RAM des PIC´s wird nach ca. 10 Systemtakten starten. Deswegen muss man die Daten um ca. 5 Takten des FIFO´s verzögern (Takt des FIFO´s = Systemtakt/2). Es scheint möglich zu sein den FIFO aus 4 Schieberegister 74HC164 zu erstellen. Sie sind 8 bit lang, was ergibt max. Verzögerung um 16 Systemtakte. Vorteil ist, dass sie nach jeder Stufe Ausgang haben, und man kann hardwaremässig die Verzögerung festlegen, was die Software vereinfacht. Ich habe die Version auch schon geskizzed und werde sie wahrscheinlichst anwenden.

MfG


VCC 1,2.--------.13
+ /-------|74HC164 |------->D0
Ri 330 | | /----|IC5 |--\
____ /->|---o | | 8'--------'9 |
K1 >--|___|-+-------|-o-/ | 1,2.--------.13|
\-|<-\ | | /--|----|74HC164 |--|---->D1
Ri 330 | | | | o----|IC6 |--o
B ____ /->|-|-o | | | 8'--------'9 | z
K2 >--|___|-+-----|-|---/ | 1,2.--------.13|
\-|<-o | | /--|----|74HC164 |--|---->D2
u Ri 330 | | | | o----|IC7 |--o
____ /->|-|-o | | | 8'--------'9 | u
K3 >--|___|-+-----|-|---/ | 1,2.--------.13|
c \-|<-o | | /--|----|74HC164 |--|---->D3
Ri 330 | | | | o----|IC8 |--o
____ /->|-|-/ | | | 8'--------'9 | m
h K4 >--|___|-+-----|-----/ | .-----.14\ +VCC
\-|<-o | \----|74HC |/1|
8x | | 12| 73 o--|-------<SCK
s 1N4148 === | VCC |IC3/1|--o
MD >-----------\ GND | + '--o--'3 |
| | | 2| | P
e | | \--o--o---o-----/
| | | 7|.-----.
GND >-\ | | |5 \|74HC |----\ _
| | o-----|---o 73 |9 | |_ I
=== | | /--|---|IC3/2| o
GND | | | | 10'--o--' ----o->SLP
| | === | 6\----\ o _
| | GND o-----\4 | | _| C
| | | 2.--o--.5| |
| | \---|74HC |-|--/
| \---------| 74 | |
| 3'--o--' |
LA Input | IC2/1 1\---o--------<CTR
\ -------------------------------->MD

Vogon
22.02.2006, 12:14
@PICture:
Ich habe mir deine Schaltpläne angeschaut.
Kann ich auch alles so verstehen und werde es auch so bauen.
Jetzt werde ich mir erst mal mit den PIC anschauen.

Zur Software habe ich noch einen Wunsch: Post-Mortem Debugging
Aufzeichnen der Daten (Ringpuffer) bis zum Stop durch den Trigger.
Ich hatte schon sehr oft die Situation das ich den Fehler kenne, aber gerne wüste wie es zu der Situation gekommen ist. :-k :-s

PICture
22.02.2006, 13:11
Hallo Vogon!

Das mit dem Post-Mortem Debugging finde ich interessant, aber weiss ich noch nicht wie ich das machen kann. Das Problem ist, dass um die Eigangssignale mit 5 MHz in den Speicher zu bringen werde ich einfach 1000 gleichen Befehlen dem Prozessor ausführen lassen, da jede Schleife wird eine Unterbrechung des Datenflusses bedeuten. Ich kan mir das nur rein hardwaremässig vorstellen, und zwar, als langen FIFO Register, der ständig getaktet ist, und der Trigger wird den Taktgenerator stoppen. Danach kann man die im FIFO gespeicherte Daten einlesen und interpretieren. Wie langen FIFO brauchst Du ? Ich habe mal 40 Stück (64x4bit) in SMD günstig bei ebay ersteigert und brauche ich selber nur ein paar. Ich denke, das der Trigger muss dann nicht nur durch eine Flanke, sondern bestimmte Kombination der Eingangssignale gesteuert werden. Man könnte eventuell den FIFO nicht mit fester, sondern mit vom PIC generierter Frequenz takten, was den Vorteil hätte, dass man für langsame signale über längere Zeit die Eigangssignale "Aufnehmen" kann.
Es scheint mir jetzt, dass der LA 2 FIFO´s haben sollte. Wenn ich ihn aber ausbaue wird er wahrscheinlich grösser und irgendwan nicht mehr handheld. Schon die 4x74HC164 möchte ich aus Platzgründen in SMD nehmen und auf einer kleiner Platine in ein 14 pin IC Sockel stecken.

MfG

Vogon
22.02.2006, 17:33
Das ist ein Problem das sich sicher nicht so einfach lösen lässt!
Die notwendige Geschwindikeit bekommst du nur so hin.
Das Gleiche in einer Schleife ist zu langsam und wenn der SpeicherZeiger auf den Pufferanfang soll geht noch zusätzliche Zeit drauf.
Aber mit einem zweiten PIC die sich gegenseitig abwechselnd die Daten holen ? Dann ist es aber eine Synchronisation notwendig.
Oder gleich ein Externes RAM (62256) mit AdressZähler ?

PICture
23.02.2006, 06:42
Hallo Vogon!

Ich werde den LA sicher nicht kompliezieren, sondern vereinfachen. Kannst Du mir, bitte, erklären, warum sollte es Ringpuffer sein ? Ich verstehe es nicht.

Mein letztes und entgültiges Konzept des LA´s habe ich schon festgelegt und werde ich bald vorstellen. Ich gehe davon aus, dass jeder sich den LA je nach bedarf selber konfigurieren kann. Es sind kleine Änderungen in bisheriger Hardware nötig, aber grundsätzlich wird nichts gravierend geändert. Beispielweise wird für RS232 Schnittstelle kein Quarz mehr verwendet , sondern ein Kondensator, der durch einfachen Schliesser parallel zu dem Variablen geschaltet wird, um die Frequenz (4 MHz) genau (+/- 1%) einstellen zu können. Die Frequenz wird sowieso 4 stellig gemessen, lässt sich also genug genau einstellen. Ich glaube, das die Stabilität des LC Generators ausreichend ist. Weiter wird noch eine Version mit dem 2'er FIFO, der mit der Abtastfrequenz gesteuert wird, vorgestellt und seine Länge kann sich jeder, je nach Bedarf, festlegen. Wenn jemand keine Aufzeichnung vor der Triggerflanke braucht, braucht auch kein 2'er FIFO. Ich will möglichst bald das Projekt abzuschliessen, weil ich den LA selber brauche. Deswegen habe ich mich für die einfachste Version entschieden. Im Code ist die Hardware für die ich jetzt noch fehlende Software schreiben werde. Wenn das einwandfrei funktioniert kann man den LA noch modifizieren.


MfG






K1><--------->K1 B K1<------------->K1 B

Prüfspitze

K2><--------->K2 u /->K2 u
|
|
|
K3><--------->K3 c o->K3 c
|
|
|
K4><--------->K4 h o->K4 h
|
|
|
XS><--------->XS s XS><------------>XS s
|
|
|
GND><--------->GND e GND><----------o->GND e

4 Kanal Modus 1 Kanal Modus



><- Klemprüfspitze

LA Kabel


VCC
+
Ri 330 |
____ /->|---o
K1 >--|___|-o-------|---------------------------->D0
\-|<-\ |
Ri 330 | |
B ____ /->|-|-o z
K2 >--|___|-o-----|-|---------------------------->D1
\-|<-o |
u Ri 330 | |
____ /->|-|-o u
K3 >--|___|-o-----|-|---------------------------->D2
c \-|<-o |
Ri 330 | |
____ /->|-|-o m
h K4 >--|___|-o-----|-|---------------------------->D3
\-|<-o | VCC
Ri 330 | | +
___ | | | P
e XS >-|___|- | | \--o--\
| | | | 7|.----
| /->|-|-/ |5 \|74HC |----\ _
\-o-----|---o-----|---o 73 |9 | |_ I
GND >-\ \-|<-o | /--|---|IC3/2| o
| | | | | 10'--o--' ----o->SLP
=== === | === | 6\----\ o _
GND GND | GND o-----\4 | | _| C
| | 2.--o--.5| |
| \---|74HC |-|--/
\---------| 74 | |
3'--o--' |
LA Input S IC2/1 1\---o--------<CTR



.---------.
|1 28|-<SLP
I | |
D0>-|2 27|->CTR
n | |
D1>-|3 26|
p | |
D2>-|4 25|
u | | o
D3>-|5 24|-o--o---- Param. (Umschalter)
t | | o o
+-|6 23|-o---- | Menü (Umschalter)
| | | o--o
/---o-\ +-|7 22|-o |
C |/ | | | | ----o--o Mausrad
--- C | GND-|8 21|-o |
--- C | | | === .-------------.
/| C \------|9 20|- VCC GND |VCC |
V | | L | | | + |
\---o--------|10 19|- GND | | T1 Buchse|
33p || -___ | | | +- ---<+5V|
/--||-/_L_ \-|11 18| | \ v |
| || |___| | | | --- /-< 0V|
|32768HzT /-|12 17| | | | |
| || /~~~ | | | .-.=== |
o--||-/ CK<-|13 16|->E2 | Ru| |GND |
33p| || Display| |Display | 1k| | |
=== DT<-|14 15|->E1 | '-' |
GND '---------' | | |
IC0 PIC18F252 | === |
| GND |
'-------------'
LA PIC Umpolungsschutz



.-----------------------------------------.
| / \ |
| Grafik Display 32 x 122 pixel 10.-. | |
| Ohm| | | |
| | | V ->Beleu-
| 1 1 1 1 1 1 1 1'-'1 - | chtung
VCC | 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 | 9 | |
+ '-----------------------------------------'
| | | | | | | | | | | | | | | | | |
\----|-/ / | | | | | | | | | | | | + ===
| / | | | | | | | | | | | |VCC GND
/--o-/ |10k| | | | | | | | | | | |
| | _V_ | | | | | | /---/ | | | | |
=== \-|___|-/ / | | | | | /---/ | | | |
GND Kontrast | | | | | | | | | | |
E1 >----------------|-/ | | | | | | | | |
E2 >----------------|---/ | | | |GND | | | |
DT >------- VCC o--o-\ | | | |=== | | | |
CK >-----\ \ + | | | | | | | | | | | |
| | 10| |.---------------. | | | |
vom PIC | | .----.9|| 1 2 3 4 5 6 7 | | | | |
| \-|74HC|/ | | | | | |
| 12| 74| | 74HC164 IC4 | | | | |
o---|IC2/2 | 1 1 1 1 1 | | | | |
| 11'----' | 4 3 2 1 0 9 8 | | | | |
| 13| '-----------o---' | | | |
| + | | | | | | | | | | |
| VCC + | | | | + | | | | |
| VCC| | | |VCC| | | | |
\---------------|-|-|-|---/ | | | |
| | | \-------/ | | |
| | \-----------/ | |
LA Display | \---------------/ |
\-------------------/

Vogon
23.02.2006, 11:44
Hallo PICture,
ich sagte ja schon, lass dich nicht aus der Ruhe bringen.
Wenn ich keine Ideeen mehr habe bin ich vermutlich tot. :-$
Den LA werde ich auch erst mal so bauen wie du ihn zum laufen bekommst.

Ringpuffer: Für einen LA mit Post-Mortem Debugging kann ich mir das mit einem externen RAM gut vorstellen.
(62256, 32Kx8 S-RAM 70ns SO28 SMD kostet €1,80 bei Segor)
Der PIC brauch dann die Daten nicht selber zu speichern. Der externe Aufwand steigt aber an. Da wäre ja noch weitere Elektronik notwendig um dann die Daten mit dem PIC auszulesen und für das Display aufzubereiten. Für den Trigger noch einen Komperator und wer weis was noch. :(

PICture
24.02.2006, 08:47
Hallo Vogon!

Ich möchte zuerst die Grundhardware des LA´s aufbauen und die Software dazu komplett schreiben.

Weil ich Deine Idee mit dem Post -Mortem Debugging sehr nutzlich finde, wird sie auch in dem LA optional möglich. Ich möchte die Eigangssignale nicht direkt (so wie in der einfachster Version) mit den Eingängen des PIC´s verbinden, sondern dazwischen ein FIFO Register schalten. Wenn ich den FIFO mit gleicher Frequenz, mit der die Eingangsdaten in den RAM des PIC´s eigelesen werden, takte, dann kann ich so viel Samples vor dem Triggerflanke einlesen, wie lang dieser FIFO ist, minus Anzahl Takten die der PIC braucht, um nach der Erkennung der Triggeflanke mit der Speicherung anzufangen.

Der FIFO funktioniert doch genauso wie ein Ringpuffer, oder ?
Der Unterschied ist nur, das im Ringpuffer bewegt sich der Zeiger auf die momentan mit Daten geschriebene/gelesene Speicherstelle und in FIFO bewegen sich Die Daten selbst. Deswegen ist das einfachste Lösung und die Software ist gleich, weil dem PIC egal ist, was er einliest.

Um den EEPROM des PIC´s (256 Bytes) zu nutzen, möchte ich 500 Samples mit allen Parametern, mit denen sie "aufgenommen" wurden, in EEPROM abspeichern (für spätere Analyse oder eine Übertragung in einen PC).

Hier im Code habe ich versucht das mit dem FIFO zu erklären.

MfG


Wenn das Sample S0 entspicht dem Moment in dem
die Triggerflanke auftritt

S ->PIC (ohne FIFO)
0
A
|
Triggerflanke
| FIFO
V .-----------------------.
S->| S S S S S S S S|->PIC
0 |-1 -2 -3 -4 -5 -6 -7 -8|
'-----------------------'

und der PIC erst nach z.B. 4 Systemtakten fängt mit
ablegen der Samples im RAM an:

S ->PIC (ohne FIFO)
4
A
|
ab da werden die Samples gespeichert
|
FIFO V
.-----------------------.
S->| S S S S S S S S|->PIC
4 | 3 2 1 0 -1 -2 -3 -4|
'-----------------------'
A
|
Triggerflanke

Vogon
24.02.2006, 10:10
Hallo PICture.
Mit dem FIFO ist es sehr einfach zu bauen. Mit dem RAM steigt, wie gesagt, der Aufwand erheblich an, hat dann aber Zugriff auf einen grossen Speicher.
Für Spezialanwendungen gibt es aber auch Kombinationen, zB Videospeicher oder Dualportram.

PICture
24.02.2006, 10:27
Hallo!

Um die 5MHz Abtastfrequenz zu erreichen (beim 10 MHz Systemtakt, also 40 MHz Oscillatorfrequenz) kann ich nur den PORTA in den RAM übertragen und erst ab 2,5 MHz runter kann ich noch die Abtastfrequenz mit dem PIC generieren. Deswegen ist es noch für die Version mit FIFO einen "Umschalter" zwischen 5 MHz und den allen anderen Abtastfrequenzen, die der PIC schon generieren kann, anzuwenden. Das ist am einfachsten mit einem 74HC00 zu realisieren. Natürlich wenn man mit max. 2,5 MHz Abtastfrequenz zufrieden ist, braucht man den IC nicht.
Hier die Version, wo FCK ein Takt für den FIFO Register ist. Auf dem Pin 26 werden die Abtastfrequenzen ab 2,5 MHz generiert und der Pin 25 wird umschalten zwischen denen und 5 MHz (10 MHz/2).

P.S. Ich habe ein FIFO Register mit 256x4 bit vorgesehen (4xHCT7731).

MfG



4 __
.---------. 1 __ /----| | 6
|1 28|-<SLP +-| |3| |& |o-+
I | | | |& |o/ /--|__| |9 __
D0 >-|2 27|->CTR +-|__| | 5 +-| |8
n | | |2 | 12 __ |& |o->FCK
D1 >-|3 26|------+-------|---| |11 -|__|
p | | | |& |o-/10
D2 >-|4 25|--------------|---|__|
u | |PARAM. o | 13
D3 >-|5 24|----o---- | IC5
t | | o o-\ | 74HC00
+-|6 23|-o---- | |
| | |MENÜ o----+ |
/---+-\ +-|7 22|-o | |
C |/ | | | | ----o----+ |
--- C | GND -|8 21|-oMausrad | |
--- C | | | === |
/| C \-------|9 20|- VCC GND |
V | | L | | |
+---+---------|10 19|- GND |
|33p||32768 Hz| | |
| /-||--|-----|11 18| |
| | || _-_ | | |
| | |___|/--|12 17| |
| | || - / | | VCC |
| o-||--|/CK<-|13 16|->E2 + |
| | || | | | |
|===33p DT<-|14 15|->E1 +14 |
|GND '---------' |\.---. |
| IC0 PIC18F252 |1| |-/ IC3/1
\------------------------------|-| |12 74HC73
+-| |
LA PIC FIFO |3'-o-'
\--/2

PICture
25.02.2006, 09:16
Hallo!

Vor dem Schreiben der Software möchte ich meine Idee der Triggerung zuerst vorstellen, weil vielleicht lässt sich das noch einfacher machen.

Im Code habe ich versucht es darzustellen.

Ich bin sehr dankbar für Eure Meinungen!

MfG


_
Angenommen es wurde _| Flanke gewählt

XS _|_|_|_|_|__________|____________________________| _|_|
__ __ ___ ____
SLP _| L| L|__________| L________________________|
__________________________________________________ ____
TRC | | |

BTF ___|___|___|___|___|___|___|___|___|___|___|___|__ _|__
Zähler 0 0 1 2 3 0 1 2 3 4 A
eingestellt 4 4 4 4 4 4 4 4 4 4 |
A ab da
| speichern
ab da auf
Flanke warten

Erklärung den Symbolen

XS - Externe Synchronisation

SLP - Flanke (Slope)

TRC - Trigger Löschen (Trigger clear)

BTF - PIC Befehl, der SLP testet

Zähler - wird - gelöscht, wenn SLP während BTF=1
- erhöht, wenn SLP während BTF=0

eingestellt - Wert mit Mausrad eingestellt

PICture
26.02.2006, 03:24
Hallo!

Ich habe versucht das Menü, so einfach, wie möglich zu gestalten, da ich nur ein "Fenster" 32x20 Pixel (4x5 Zeichen) zur Verfügung habe. In der untersten Zeile wird die aktuelle Funktion gezeigt.

Mit "Menü" Schalter wird die unterste Zeile invers dargestellt, mit Mausrad die gewünschte Funktion gewählt, und die Wahl mit dem "Menu" Schalter bestätigt. Danach wird die Funktion normal gezeigt.

Der mit Maurad eintellbader Parameter wird mit dem Schalter "Param" gewählt und invers dargestellt.

Ich bin, wie immer, sehr dankbar für Eure Vorschläge, wie man das noch einfacher machen kann.

MfG



Vorläufiges Menü (kann sich noch ändern)
.-----.
|XXXXX|<- gemessener Parameter (wird nur angezeigt)
|XXXXX|<-\ mit Param
|XXXXX|<-/ Schalter wählbar
|XXXXX|<- aktuelle Funktion, mit Mausrad wählbar
'-----'

Beispiele
.-----. .-----. .-----. .-----. .-----.
|SCAN | |SCAN | |TIME | |SCAN | |SCAN |
|FRQ | | | |REF | | | | |
|DEL | |ADR | |REL | |X | | |
|REC | |VIEW | |MEAS | |SAVE | |CALL |
'-----' '-----' '-----' '-----' '-----'

Erklärung der Symbole:

SCAN - Abtastfrequenz
FRQ - Abtastfrequenzbereich (0 bis 15)
DEL - Verzögerung, nach der die Triggerflanke Aufnahme startet (0
bis 255)
ADR - Adresse des ersten linken Samples auf dem Display (0 bis 900)
TIME - gemessene Zeit zwischen REL und REF
REF - Adresse des Samples, das als Referenz markiert wird (0 bis
999)
REL - Adresse des Samples, dassen Zeitdifferenz zu REF gemessen
wird (0 bis 999)
X - Kanalnummer unter dessen gespeichert wird

REC - Aufnehmen (Record) (Input->RAM->Display)
VIEW - Betrachten (RAM->Display)
MEAS - Messen (Measure) (RAM->Display)
SAVE - Speichern (RAM->EEPROM)

PICture
25.03.2006, 11:49
Hallo!

Ich schreibe jetzt Software für die einfachste Version des LAs. Wegen zu niedriger Stabilität des Uhrenquarzes für Timer1 mit dem internem Oscillator musste ich leider einen externen Oscillator zuschalten. Um Zeit zu sparen werde ich ab jetzt nur die im Code vorgestellte Hardware aktualisieren. Mein ICSP Anschluss ist dokumentiert unter:

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=13619&start=22

Weil ich den LA nur für logic Schaltungen benutzen werde, aus denen er mit Betriebspannung versorgt wird, verzichte ich auf die schutzende Ri und Di, und werde nur Rd als pull-down anwenden. Er wird auch keine Buchse für +5V Versorgungspannung, nur ein Kabel mit Klemmprüfspitzen haben.

Ich bin sehr dankbar für jede Idee, die zum Verbesserung des LAs beiträgt.

Abgeschlossenes Projekt des LAs werde ich als "Logic Analyzer" im Forum "Weitere Projekte und Bauanleitungen" posten.

MfG


Vorläufiges Menü (kann sich noch ändern)
.-----.
|XXXXX|<- gemessener/eingestellter Parameter (wird angezeigt)
|XXXXX|<-\ mit Param Schalter wählbar
|XXXXX|<-/ und mit Mausrad einstellbar
|XXXXX|<- aktuelle Funktion, mit Mausrad wählbar
'-----'
Beispiele
.-----. .-----. .-----. .-----. .-----. .-----. .-----. .-----.
|SCANA| |SCANL| |SCANL| |TIMEL| | | |SCANA| |SCANL| |SCANL|
|F XX | | | | VV| |RXXXX| | | |F XX | | | | |
|T XXX| | | |A XXX| |MXXXX| | | |CT OT| |A XXX| |A XXX|
|SET | |REC D| |VIEW | |MEAS | |EDIT | |GEN | |SAVED| |CALLD|
'-----' '-----' '-----' '-----' '-----' '-----' '-----' '-----'
Erklärung der Symbole:
SCANA- aktuelle Abtastfrequenz (Mit dem Drehko Cv einstellbar)
SCANL- zuletzt beim SET eingestellte Scanfrequenz
TIMEL- gemessene Zeit zwischen R und M (0,2µs/pixel-13ms/pixel)
F - Abtastfrequenzbereich (0=max. 5MHz bis 15=min. 75Hz)
T - Zeit, nach der gewählte Flanke die Aufnahme startet (0-255)
A - Adresse des ersten linken Samples auf dem Display (0-923)
R - Adresse des Samples, das als Referenz markiert wird (0-1023)
M - Adresse des Samples, dassen Zeitdifferenz zu R gemessen wird
V - Zeiger der Geschwindigkeit des Bildschiebens mit dem Mausrad,
links=schneller (x10), mit dem Param Schalter wählbar
D - Ausgeführt (done)
CT - (continuous) kontinuerlich (in endloser Schleife) generieren
OT - (one time) einmalig generieren nach dem Drücken der Taste

SET - Einstellen der Scanfrequenz und Triggerung (nur 100 Samples)
REC - Aufnehmen (Record) (Input->RAM->Display)
VIEW - Betrachten (RAM->Display)
MEAS - Messen (Measure) (RAM->Display)
EDIT - Logic Signale editieren (Mausrad und Taste->RAM->Display)
GEN - Logic Signale (aufgenommene/editierte) ausgeben (RAM->Output)
SAVE - Speichern (RAM->EEPROM)
CALL - Abrufen (EEPROM->RAM->Display)
.................................................. .................................................. .......
K7 >----p--------------------------------> D7 z
B
K6 >----p--------------------------------> D6

K5 >----p--------------------------------> D5 u
u
K4 >----p--------------------------------> D4

K3 >----p--------------------------------> D3 m
c
K2 >----p--------------------------------> D2

K1 >----p--------------------------------> D1
h
K0 >----p--------------------------------> D0 P
VCC
+
s IC1 |
74HC86 +--\ 4 I
__ |2.-o-.5
XS >----p---------------|EX| +-| |----> SLP
e |OR|---| |
+-----+-|__| 3'-o-'
GND >-+ _ | _ | \-----< CTR C
| |_ o _| .-.
=== \ | |Rs IC2/1
GND \ | |10k 74HC74
o '-'
| |
=== +
GND VCC


----p---- = ----+----
|
.-.
| |Rd
| |
'-'1M
|
===
LA Input/Output GND
.................................................. .................................................. .......
VCC
+
___ |
+-|___|-+
| 10k |
Mausrad o--------+--------------> MW0
+-o--__ | z
| o--------+--------------> MW1
| | ___ |
| +-|___|-+
| 10k | u
| |
| ___ |
| Menü +-|___|-+
| _/ | 10k | m
+-o/ o--------+--------------> MEN
| |
| ___ |
| Param. +-|___|-+
| _/ | 10k |
+-o/ o------ -+--------------> PAR
| | P
| ___ |
| E +-|___|-+
| --- ___ | 10k |
+--o o---|___|-+--------------> _CK I
| 1k |
| ___ |
| S +-|___|-+
| --- ___ | 10k C
+--o o---|___|-+--------------> _DT
| 1k
===
GND LA Schalter
.................................................. .................................................. .......

VCC 7 ICSP Buchse 3 2 5 4 1 9 8
V V V V V V V V
+ Rm Dm | | | | | === | |
| ___ | .---------. | | | | GND | |
+-|___|-->|----------+-|1 28|-------/ \-< D7 | |
10k | | | | I | |
S MW0 >-|2 27|---/ \-----< D6 n | |
c | | p | |
h MW1 >-|3 26|-----------< D5 u | |
a | | t | |
l MEN >-|4 25|-----------< D4 | |
t | | / | |
e PAR >-|5 24|-----------< D3 | |
Fosc=5-10MHz r | | O | T |
+----+----+--+ |---+ 23|-----------< D2 u | |/
| T | A | | | | | t | +-|
30p| / | / C| | -|7 | 22|-----------< D1 p | | |<
--- --- C| | | | | u | .-. |
Ct--- ---Cv C| | |---+ 21|-----------< D0 t | | |Rs|
/ | / | | L| | | | | | |1k|
+----+----+ +-------------|9 | 20|--------------------+ '-' |
~10p 5-70p |10µH | | | | |
+----------------|10 +-----|-----------+-----------+ |
Ro 2M___ | | | | |
+-|___|-+-------------|11 18|- === | |
Co|| | __ | | | GND | |
+--||--+-|EX| | -|12 17|- | |
|8p|| |OR|o-+ | | | |
| VCC-|__| | _CK<-|13 16|-> CTR V V
| _ .--. | Display | Display | A A
| | | |EX|--+ & _DT<-|14 15|-< SLP 0V +3-6V
+-|| ||-o|OR| Schalter '---------' von analisierter
|_| '--' IC0 PIC18F252 Schaltung
32768 Hz IC1 74HC86
LA PIC 8
.................................................. .................................................. .......
.-----------------------------------------------.VCC
| Grafik Display 64x128 pixel | +
| | |
| HP12542R-DYO |.-
| 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2|| |
|1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4|| |10k
'-----------------------------------------------''-'
| | | | | | | | | | | | | | | | | |
| === ===| | | | | | | | | |=== |===\------+
| GND GND| | | | | | | | | |GND |GND |
+---------+-/ | | | | | | | | | / ---
| /---+ | | | | | | | | / --- µ1
| | +---+ | | | | | | | / |
VCC | | | +---+ | | | | | | / ===
+ | | | | +---+ | | | | || VCC GND
| | | | | | | | | | || +
+--+---------+ +-------------|-------+
| | | | | | | | | | | || |74HC74 |
.----------o--.| | | | ||+-+-+ |
|1 1 1 1 1 9 8|| | | | ||| 4| |
|4 3 2 1 0 || | | | |||5.-o-.2 |
|) || | | | +---| |---+------<CK
| 74HC164 || | | | || | |-+ |
|1 2 3 4 5 6 7|| | | | || '-o-'3| |
'-------------'| | | | || 1| | |
| | | | | | | | | | | |+---+ +--------<DT
+-+ | | | |===| | | | || 10| 12| |
| | | | |GND| | | | ||9.-o-. | |
| | | | +---+ | | | +--| |-+ |
| | | +-------+ | | || | |---+
| | +-----------+ | || '-o-'11
| +---------------+ || 13|
+-------------------/ \--+
LA Display

PICture
29.05.2006, 01:19
Hallo!

Ich habe jetzt ein Problem, weil ich keinen geeigneten Signalgenerator habe, mit dem ich die Triggerung für LA entwickeln und testen kann. Deswegen habe ich mich entschieden, einen zweiten LA (nur Generatorteil) aufzubauen. Weil ich kein zweites Grafikdisplay habe, habe ich mir den günstigen Hyundai HP12542R-DYO (64x128 pixel) beim Pollin gekauft. Weil den kann ich mit nur 2-pin vom PIC ansteuern, überlege ich gerade ob der LA nicht vielleicht ein bischen grösser machen und auf 8 Kanäle erweitern. Schaltplan für das Display ist in:

https://www.roboternetz.de/phpBB2/viewtopic.php?t=20277

Ich würde mich sehr freuen, wenn ich Eure Meinungen dazu kennen darf.

MfG

PICture
13.06.2006, 08:43
Hallo!

Nach dem Testen der Ansteuerung des Hyundai Displays, habe ich mich entgültig für ihm entschieden. Es scheint mir zu aufwendig zwei eigentlich softwaremässig gleiche LAs mit verschiedenen Displays zu programmieren. Die bisherige Software (z.Z. ca. 24kB ASM) braucht nur bei der Displayausgabe geändert werden, was ziemlich einfach ist. Die Erweiterung auf 8 Kanäle braucht keine Softwareänderung.

Ausser Displayhardware (zusätzlich 74HC74) und Pinzuweisung vom PIC, sind keine Änderungen vorgesehen.

Mit dem bisherigen Display habe ich angefangen, weil nur das ich am Anfang gehabt habe. Es ist aber nicht mehr beschaffbar, also uninteressant geworden. Dagegen die Hyundai Displays gibt´s beim Pollin (hoffentlich) immer noch.

Meine letzte Idee, die ich verwirklichen will:
- für I²C Bus und RS232 Analyse sind nur 2 Kanäle notwendig
- für SPI u.ä. nur 3-4 Kanäle
- max. hat der LA 8 Kanäle
Die anzahl der dargestellten Kanäle wird im Menü wählbar und um die Lesbarkeit der aufgezeichneten Signale zu verbessern, wird die Amplitude eines Kanals für weniger angezeigten Kanäle grösser, so das immer ganze höhe des Bildschirmes genutzt wird.

Die Hardware habe ich schon aktualisiert, das Menü werde ich erst am Ende des Projekts aktuallisieren, da es "Softsache" ist. Der Taster "T" wird u.a. eine Start/Stop Funktion bei dem Logic Generator haben. Genau weiss ich noch nicht.

Übrigens, es wird mit dem Logic Generator ein Logic Tester und nicht nur Logic Analyser, vielleicht sollte ich ihn umbenennen ?

MfG

PICture
22.09.2007, 19:21
Hallo!

Ich habe diesen Tread ausgegraben, weil ich schon fast am Ende mit der Entwicklung bin. Damit der LA nutzlich wird, möchte ich, vor allem Leute die mit LA schon gearbeitet haben, nochmal um aus der Praxis stammende Erfahrungen bitten.

Bisher habe ich um 30kB in ASM programmiert und mir bleiben nur noch ca. 2 kB Flasch speicher frei. Ich musste schon ein paar mal das ganze umprogrammieren, weil der Flasch für alles, was ich realisieren wollte, nicht ausgereicht hat. Aus diesem Grund habe ich die Triggerung der Aufnahme hardwaremässig realisiert.

Jetzt habe ich mich entschieden das ganze (hoffentlich) zum letzten mal neu zu programmieren.

Meine letzte Idee ist den LA zum langzeitigen Testen der Schaltungen zu nutzen, um die ewentuell auftretende Differenzen (Fehlfunktionen) fest zu stellen (quasi: Post-Mortem Debugging). Dafür möchte ich die aufgenommene 1024 Samples im Flasch speichern und wieder 1024 Samples aufnehmen. Danach sollten die frisch aufgenommene Samples mit den zuletzt gespeicherten verglichen werden und bei einem Unterschied die letzte Aufnahme im Flasch gespeichert und weiteres Aufnehmen beendet werden. Somit hat man in Flasch zwei mal 1024 Samples, die man sich anschauen kan. Die Unterschiede werden markiert.

Ich würde mich sehr freuen auf Ihre hilfreiche Beiträge, die mir helfen den LA optimal zu gestalten. 8-[

MfG