nachdem ich das Teil zum laufen bekommen habe, bin ich jetzt doch etwas verdutzt. Es wird nur eine Aufnahmelänge von 1,8ms angezeigt bzw. aufgenommen. Obwohl unten in der Statusleiste 680ms steht. Selbst das wäre mir zu kurz. Mein Hauptfrage lautet jedoch. Kann man das irgendwie umkonfigurieren das es ständig ohne Pause die Signale darstellt?
Ich weis das die Sampletiefe beim Mega hiermit nur 7kB beträgt. Jedoch kann er die doch verwerfen und immer neu einlesen und darstellen. Zur Zeit liest er nur einmal kurz ein und dann stoppt er. Das macht keinen Sinn.
Ich bekomme nicht einmal ein Tasterprellen auf dem Schirm. Kann wild auf den Taster "hämmern" wie ich will. Entweder low oder high aber keine Pulse sichtbar.
mit viel Geduld und Spuke, habe ich nun was ich wollte sichtbar machen können. Alles Einstellungssache gewesen die nirgends so richtig verständlich beschrieben sind. An der nur einmaligen kurzen Messung pro Start kann man aber nichts machen. Damit muß man scheinbar leben. Die Meßzeit hängt von der Abtastrate ab. Damit kann man rumprobieren.
Wie man hier sieht, ist das mein Meßschieberprotokoll. 2 x 24Bit, damit ist das das Sylvac Protokoll. Wurde mit 4MHz Samplingrate aufgenommen.
Falls doch noch jemand weis wie man kontinuierlich messen kann, nur her damit.
Edit: und sieht dann ein prellender kleiner Kippschalter aus beim ausschalten.
Falls doch noch jemand weis wie man kontinuierlich messen kann, nur her damit.
Kann man nicht, denn die mit 4MHz gesampelten Daten bringst Du nie in der Geschwindigkeit vom Arduino zum PC. Die obere Grenze ist dort bei ca. 115200 Baud, also alles über ca. 15kHz Abtastrate ist schon rein theoretisch nicht machbar, vom Programmieraufwand mal abgesehen.
Ich habe zwar einen einen richtigen Logic Analyzer, aber eine schnellere Dauermessung gibt es da auch nicht, dafür sind diese auch gar nicht konzipiert.
Ein LA hat einen begrenzten und damit begrenzenden Speicher, und der wird einfach befüllt. Die Messung kann dann entweder manuell abgebrochen werden, solange noch Speicher frei ist oder eben weiterlaufen bis zur kompletten Speicherbefüllung. Dann erfolgt die Übertragung zum PC und die Auswertung. Je größer die Samplingfrequenz, desto kürzer wird der erfassbare Zeitraum, das ist jabeim Mega2560 nicht anders.
Es sollte klar sein, dass man im Hobbybereich keine Gerätschaften verwendet, die im hohen vierstelligen bis hin zum sechsstelligen Preis liegen. Aber auch in paar hundert Megabyte Speicher laufen bei mehreren Dutzend Kanälen bei Samplingraten im GHz-Bereich voll und werden dann ausgewertet.
Bei der Verwendung des Mega2560 und auch bei vielen weiteren LA, die per USB an den PC angeschlossen werden, kommt ein weiterer Faktor limitierender Faktor hinzu: die Übertragung der Rohdaten auf den Rechner. Wenn das über eine USB-Seriell-Verbindung geht, dauert das schonmal. Da sind die von dir verlinkten Profigeräte klar im Vorteil. Letztlich sollte man aber nach seinem Bedarf kaufen.
die 115.200 baud sind nicht die grenze für den arduino. das ist (meist) die grenze bei im computern verbauten RS232-schnittstellen.
mit einem FTDI geht das wesentlich flotter. ich bin nicht höher gegangen, weil ich's wegen was anderem gemacht habe, aber von der dreambox-USB mit 500.000 an arduino-mega-USB, von dort (Serial) an Serial1 weitergegeben, und von Serial1 mit FTDI mit 500.000 an computerUSB war kein problem.
ich wollte einfach in echtzeit sehen, was ein bestimmtes dreambox-plugin so ausgibt. deshalb der seltsame aufbau...
mehr wie 115200 kann man nicht einstellen. Spielt bei dem Teil auch keine Rolle, weil eh erst alles übertragen wird wenn die Messung fertig ist. Für mich reicht das erstmal mit dem Mega. Auch wenn dieser dann damit immer blockiert ist und umgeflasht werden muß. Oder ich kaufe mir irgendwann nochmal einen Mega2560 für sowas.
Was etwas stört ist, es braucht zum Start der Messung unbedingt einen Trigger. Ohne geht nichts los. Mal so nebenbei was anschauen was gerade anliegt geht nicht.
Bei dem Messchieberprotokoll oben zum Bsp. Triggerkanal ist auf 0 gesetzt, was die Taktleitung ist. Mir ist nicht klar, warum der immer genau "zufällig" den Anfang der gesamten Übertragung erwischt. Der reagiert auf 1>0 Flanke. Zwischen den ersten 24Bit ist auch eine größere Lücke oder ganz blöd gesagt, jeder Takt hat eine 1>0 Flanke. Warum erwischt der das immer am Anfang und fängt nicht mittendrin an.
Oder wenn ich an Kanal 3 zusätzlich einen Taster dran bammel und will das prellen sehen. Dann fehlen die Signale vom Messchieber völlig. Der Messchieber sendet aber permanent Daten. Und es kann ja nun nicht sein das ich zufällig immer den Schalter/Taster in der großen Taktlücke betätige.
Gibt es dafür Erklärungen? Das ist relativ leicht auszuprobieren.
Das lässt ich mittels Wahrscheinlichkeitsrechnung erklären. Es ist eher unwahrscheinlich, dass Du die Messung genau während der Datenübertragung startest, viel wahrscheinlicher ist, dass Du die Sendelücke erwischst und somit die Datenübertragung von Anfang an angezeigt wird.
Kennst Du das Teil bzw. die Software näher? Wenn ja, könntest Du mir sagen warum der nur auf 1>0 Flanke reagiert und eine Messung startet?
Nein, ich kenne sie nicht. Ein kurzer Überflug zeigt, dass Trigger nur in Software ausgewertet werden, was heissen will, dass der entsprechende Zustand ausgewertet wird. Eine Flankenauswertung kann ich nicht erkennen, schon gar nicht Ansätze, dass die Interrupt-Leitung des Arduinos oder ein Pin-Change-Interrupt dafür verwendet werden würde. Somit dürfte es sich mehr um ein Geschwindigkeitsproblem handeln als um ein grundsätzliches Problem.
Für genaueres müsstest Du uns zeigen, wie Dein Signal aussieht und worauf Du triggern möchtest.
Bilder sind ganz oben Thread. Auf dem 2. Bild siehst Du ein Taktsignal und ein Datensignal. Er zeichnet nur etwas auf, wenn ich auf Channel 0, also das Taktsignal trigger. Sonst passiert nichts.
Im 3. Bild sieht man ein Schalter prellen. Getriggert auf dessen Channel 2. Normalerweise müßte man direkt obendrüber noch den Takt und das Datensignal sehen. Habe das mehrfach wiederholt.
So richtig gezielt einstellen kann ich den Analyzer nicht. Ich kann nur probieren bis er mir das zeigt was ich sehen möchte.
Hier habe ich noch ein schönes Exemplar von Bild.
Channel 0 und 1 sind mit Transistoren und deshalb invertiert, wie die anderen Bilder auch. Channel 2 und 3 sind genau die gleichen Signale nur mittels OPV nicht invertierend angeschlossen.
Und wieder das Problem, dass er nur auf 1>0 Flanke Channel 0 beginnt. Würde ich auf Channel 2 triggern, würde mir vorn der erste Highpegel fehlen.