Forum: Mikrocontroller und Digitale Elektronik Wofür die dicken Logic Analyzer als Hobbyist nehmen?


von Fragender (Gast)


Lesenswert?

Hallo zusammen,

ich habe mal eine Frage an die Hobby-Entwickler da draußen. Wofür 
brauche ich als Hobbyist(!) einen Logic-Analyzer, der jenseites der 
50MHz oder auch jenseits der mittlerweile üblichen 24MHz arbeitet?
Wer hat so ein Ding und ist als Hobbyist an seine Grenzen gestoßen? Was 
hab ich da übersehen?
Kann ich mir da getrost so einen Billigheimer zulegen, denn die bringen 
ja meist schon Decoder/Analyzer für UART/SPI/I2C mit und sind preislich 
wirklich extrem interessant.

Ich hab mal kurz gelistet was man so an gängigen Bussen und 
Busgeschwindigkeiten da draußen findet:
- CAN max 1MBit
- Profibus max 12MBit (aber 1,5MBit üblich)
- UART max. 3MBit üblich
- SPI zwar mehrere MHz möglich, aber meist nicht über 4MHz
- I2S (48Khz) 3MHz
- I2C, meist 400kHZ, max 1MHz bis 3,4MHz
- 1Wire bis 1MHz
- LIN bis 20kHz
- IO-Link 230kHz
- Interbus 500kHz
- USB 1,5Mhz, 12MHz, 480MHz
- EIB / KNX 9,6kHz
- Hi-Speed-IOs am STM32F1xx max. 18MHz mit CPU@72MHz

Was kann ich mit so einem "Billigheimer"-LA denn nicht machen, was mich 
aber als Hobbyist tatsächlich mal interessieren könnte? Und wann braucht 
es mal mehr als 8 Datenleitungen?
Einzig was mich momentan stören könnte wäre USB. Bei Ethernet 
interessiert mich die Kommunikation ZUM Baustein, aber nicht was auf der 
Ethernetleitung selbst abgeht, wie beim Net-IO der ENC28J60. Und 
vielleicht auch Speicherinterface, z.B. bei FPGA-Programmierung oder so.

Wenn ich jetzt aber auf USB/Ethernet/Memory verzichte, fahre ich doch 
mit einem 24MHz USBee/Saleae/PoScope oder sonstwie doch gar nicht so 
schlecht?
Ich meine damit nicht die Pegelwandler zum LA, die galvanische Trennung 
oder sonstwas. Dass ich die evtl. brauche ist mit klar.
Mir geht es vor allem um die Bandbreitenbeschränkung. Schließlich würde 
ein 4MBit-Bus, der mindestens mit 8MHz abgetastet werden muss, bei 24MHz 
immer noch 3-fach überabgetastet werden.

von René B. (reneb)


Lesenswert?

Um etwas über den Signalcharakter aussagen zu können und die 
Verzögerungen paralleler Leitungen untereinander, solltest du mindestens 
um den Faktor 5, besser 10 bei der Abtatsung drüber liegen.
Mit einem 24M Analyzer solltest du unter diesen Gesichtspunkten maximal 
2Mbaud-Signale untersuchen.
Wenn es für dich langt und du vor der direkten Verbindung zwischen Gerät 
und Analyzer/PC nicht zurückschreckst...

von holger (Gast)


Lesenswert?

>Schließlich würde
>ein 4MBit-Bus, der mindestens mit 8MHz abgetastet werden muss, bei 24MHz
>immer noch 3-fach überabgetastet werden.

Hatten wir doch gerade

Beitrag "Warum "dreht" Quarzoszillator Duty-Cycle?"

Da hat sich einer gewundert das sein Clocksignal unsymmetrisch ist.
Mit einem Osci hätte er gesehen das es nicht so ist.
Mit einem 240MHz LA hätte er das Problem nicht gehabt.

von Reinhard Kern (Gast)


Lesenswert?

Fragender schrieb:
> Was
> hab ich da übersehen?

Z.B. die Glitch-Erfassung. Dafür kann die Abtastfrequenz garnicht hoch 
genug sein. Übrigens liegen viele heutige Logik-IOs unter 1 ns 
Schaltzeit, um z.B. Setup/Hold-Bedingungen zu erfassen, sind da 
Gigaherze wünschenswert. Das heisst im Wesentlichen, für Softwarefehler 
reichen langsame LAs, für Hardwarefehler-Suche aber nicht.

Gruss Reinhard

von amateur (Gast)


Lesenswert?

Wenn Du wirklich nur Busprotokolle untersuchen willst, fällt ein 
Logic-Analyzer wahrscheinlich in die Kategorie: Kanonen und Spatzen. Ein 
Oszilloskop oder ein Billigheimer mit ordentlicher Speichertiefe ist 
hier wohl angebrachter. Wichtig wäre allerdings einer mit einer 
ordentlichen Protokollauswertung.
Es gibt übrigens für viele Protokolle angepasste und vor allem handliche 
Prüfgeräte. Beispiele hierfür z.B. Netzwerk-, CAN- oder die guten alten 
seriellen Prüfgeräte.
Willst/musst Du aber Pegel, Kollisionen und Reflektionen per Handschlag 
begrüßen, so hilft nur gutes - sprich schnelles - Equipment.
Hast Du gleich mehrere Signale im Auge, so muss meist ein großes 
Geschütz her.

von unbekannter (Gast)


Lesenswert?

Falls man mit FPGAs bastelt, sind mehr als 8 Kanäle und mehr als 24MS/s, 
d.h. USB2.0 Bandbreite durchaus nützlich

von Verwirrter Anfänger (Gast)


Lesenswert?

Ich hab den Open Bench Logic Sniffer 
(http://gadgetfactory.net/logicsniffer/), der ist zwar mit ~50 EUR auch 
theoretisch ein "Billigheimer" aber ich nutz den ganz gut bis an seine 
Grenzen.

Der Sniffer kann 16 Bit mit 200 Msp/s oder 32 Bit mit 100 Msp/s. In der 
letzten Zeit hab ich den viel benutzt um die Schnittstelle zwischen 
einem 16 Bit RGB Display und einem STM32F4Discovery Board zu debuggen. 
(Relevanter Thread mit Screenshots: 
Beitrag "STM32F4 mit ILI9325 funktioniert nicht" )

Dafür brauch ich 20 Bit und eigentlich bräuchte ich 200 Msp/s. Die 
Frequenz des FSMC geht schon stark an die Auflösungsgrenzen bei 100 
Msp/s. Auch in anderen Bereichen gibts bei den größeren ARM Cortex-M 
Chips Situationen wo 100 Msp/s oder mehr Sinn machen.

von profi (Gast)


Lesenswert?

amateur schrieb:
> Willst/musst Du aber Pegel, Kollisionen und Reflektionen per Handschlag
> begrüßen, so hilft nur gutes - sprich schnelles - Equipment.

Pegel und Reflektionen sind bestimmt nicht die Domäne von LAs, um die es 
hier geht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Reinhard Kern schrieb:
> Z.B. die Glitch-Erfassung. Dafür kann die Abtastfrequenz garnicht hoch
> genug sein.
Eine Glitch-Erfassung macht ein LA aber normalerweise nicht durch 
Oversampling, sondern durch Flipflops, die per Flankenwechsel gesetzt 
werden und so auch einen Glitch zwischen 2 Abtastungen erfassen können. 
Sowas einzubauen kostet aber auch zusätzlich Geld und Gehirnschmalz... 
;-)

holger schrieb:
> Mit einem Osci
Schreb doch bitte "Oszi" (von Oszilloskop). Oder, wenns schon unbedingt 
neudeutsch sein soll, dann so, wie die Angelsachsen sagen: "Scope".

von Fragender (Gast)


Lesenswert?

Hallo,
vielen Dank für die Rückmeldungen und vor allem für deren guter 
Qualität. Ich hatte schon bedenken, dass das mal wieder in eine 
China-Schrott Diskussion und Rumgeprahle mit Equipment wird, was die 
Leute nur in der Firma haben und ein Einfamilienhaus kostet. Vielleicht 
sollte ich öfters mal nachts posten, wo nur der "harte Kern" übrig ist 
und nicht mittags, wenn frustriert vom Arbeitgeber-PC in der 
Mittagspause rumgemosert und gepöbelt wird... :-)

Daher hier auch mal ne ordentliche Rückmeldung meinerseits:

>Wenn es für dich langt und du vor der direkten Verbindung zwischen Gerät
>und Analyzer/PC nicht zurückschreckst...
Galvanisch getrennt macht vielleicht später Sinn, aktuell werden bei mir 
schon uC-Kits aus dem PC heraus versorgt. Für ein stand-alone Gerät hab 
ich eigentlich keinen Platz. Daher kann ich mit der USB-Masseverbindung 
erstmal leben.

>Mit einem 24M Analyzer solltest du unter diesen Gesichtspunkten maximal
>2Mbaud-Signale untersuchen.
Ja, aktuell kommt mir nichts über 2MBit in den Sinn. I2C geht noch mit 
dem 2Ch-Oszi aber wirklich auf die Suche nach einem LA hab ich mich 
gemacht, weil mir aktuell eine SW-SPI kopfzerbrechen bereitet. Außerdem 
nehme ich das Oszi ganz oft nur zur Beobachtung eines Toggle-Pins bei 
schnellem ISR-Debugging. Da sollte mir der PC-LA vor allem viel Platz 
und rumhantieren ersparen.

>Hatten wir doch gerade
>Beitrag "Warum "dreht" Quarzoszillator Duty-Cycle?"
>Mit einem 240MHz LA hätte er das Problem nicht gehabt.
Da wurde versucht die Flankenqualität und duty-cycle eines 8MHz Quarzes 
mit einem 24MHz-LA zu beurteilen -> Das war nicht meine Frage...
Nyquist-Shannon ist mir ein Begriff und für so ein Vorhaben würde ich 
dann schon mein Oszi nehmen.

>Z.B. die Glitch-Erfassung.
>um z.B. Setup/Hold-Bedingungen zu erfassen, sind da GHz wünschenswert.
>Das heisst im Wesentlichen, für Softwarefehler
>reichen langsame LAs, für Hardwarefehler-Suche aber nicht.
Ok, ich bin ja meist auf der Suche nach SW-Fehlern, wenn mir dann was
komisch vorkommt, kann ich ja immer noch mein Oszi nehmen (50Mhz/2Ch, 
war schon teuer genug)

>Oszilloskop oder ein Billigheimer mit ordentlicher Speichertiefe ist
>hier wohl angebrachter. Wichtig wäre allerdings einer mit einer
>ordentlichen Protokollauswertung.
Ok, das wäre mit dem OpenBench LS oder einem Cypress FX2 basierten Gerät 
und sigrok doch drin?
>Es gibt .. angepasste .. Prüfgeräte
>Willst/musst Du aber Pegel, Kollisionen und Reflektionen .. so hilft nur >gutes - 
sprich schnelles - Equipment. Hast Du gleich mehrere Signale im >Auge, so muss 
meist ein großes Geschütz her.
Spezielle Prüfgeräte, teures Profi-Equip -> kollidiert mit 
Hobbyist/Budget.
Falls ich da mal draufschaue, dann muss es mein Oszi richten. Wenn ich 
dann an die Grenzen meines Oszis stoße, hab ich halt Pech gehabt. Aber 
damit kann ich wahrscheinlich leben.

>Falls man mit FPGAs bastelt, sind mehr als 8 Kanäle und mehr als 24MS/s,
>d.h. USB2.0 Bandbreite durchaus nützlich
Bitte mal oben ordentlich durchlesen. Zu der Erkenntnis kam ich auch. 
Ist aber für meine Anwendungen erstmal egal (steht auch oben).

>Ich hab den Open Bench Logic Sniffer
>Der Sniffer kann 16 Bit mit 200 Msp/s oder 32 Bit mit 100 Msp/s.
Der OpenBench LS sieht wirklich gut aus. Ich würde ihn wohl wegen der 
Prokolollvielfalt mit sigrok nutzen (kann dann aber nur 100MHz).
Allerdings macht micht die Speichertiefe ein wenig stuzig. Während die 
Cypress FX2-basierten bei sigrok mit mehr oder weniger beliebig langer 
Zeit auf den Bus schauen können, hat der OpenBench LS eine begrenzte 
Speichertiefe.
>Beitrag "STM32F4 mit ILI9325 funktioniert nicht"
>Die Frequenz des FSMC geht schon stark an die Auflösungsgrenzen bei 100
>Msp/s. Auch in anderen Bereichen gibts bei den größeren ARM Cortex-M
>Chips Situationen wo 100 Msp/s oder mehr Sinn machen.
Ja das Speicherinterface für ein RGB-Display und die ARMs sind doch 
wirklich mal ein Anwendungsfall für mich.

Den Kommentaren von Lothar und profi pflichte ich für meine Anwendung 
erstmal bei. Ist nicht meine primäre Anwendung.


Fazit für mich:
Als Software sieht sigrok für mich Momentan wegen der Protokollvielfalt 
am besten aus.
Zusammen mit dem OpenBench LS hätte ich eine nette Lösung aus OpenSource 
und OpenHardware.
Allerdings haben die Cypress-Clones eine immense Speichertiefe um mal 
Daten am Bus mitzuschreiben.
Um nochmal auf die galvanische Trennung zu kommen: Es gibt die 
USB-Isolatoren nur bis max. 12MBit (ich hab keine anderen gefunden, nur 
Leute die auch keine schnelleren gefunden haben). Bei den Cypress-Clones 
wird das dann wohl nicht funktionieren(24MHz*8=192MHz, das kriegt man 
nicht auf einen 12MBit-USB komprimiert)
OpenBench LS arbeitet über die Emulation einer seriellen Schnittstelle 
und sollte mit einem 12MBit-Isolator auskommen ? Hat das schonmal jemand 
gemacht ?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Rein prinzipiell muss ein per USB angebundener LA die galvanische 
Trennung nicht ausgerechnet an der USB-Schnittstelle durchführen. Das 
kann man auch an anderen Teilen machen, beispielsweise an der 
Schnittstelle zwischen USB-Controller und dem datenerfassenden FPGA.

Bei Deinen Geschwindigkeitsbetrachtungen übersiehst Du, daß der LA 
lokalen Speicher hat, und daß dessen Übertragung an den PC prinzipiell 
beliebig langsam erfolgen kann, ohne die Samplerate zu beeinflussen.

Allerdings ist in so einem Fall die Anzahl der erfassbaren Samples von 
der Größe des lokalen Speichers abhängig.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Fragender schrieb:
> Und wann braucht
> es mal mehr als 8 Datenleitungen?

Das brauche ich häufig.  Nimm ein Setup mit beispielsweise zwei
Funk-Transceivern (bei mir meist IEEE 802.15.4, aber prinzipiell
unterscheidet sich das nicht von bspw. einem RFM12 hier).  Da hast
du als erstes die Standard-SPI-Interfaceleitungen, 4 Stück an der
Zahl (MISO, MOSI, SCK, /SS).  Dann hast du typisch noch mindestens
IRQ und /RESET für den Transceiver, oft noch ein, zwei Signale
mehr (bei mir bspw. SLP_TR).  Damit wäre man bei 7 Leitungn, aber
pro Seite.  Wenn ich jetzt aber was debuggen will, dann geb' ich
gern noch auf einem freien 8-Bit-Port des Controllers eine Art
Statusbyte aus, welches mir das Tracen der Software gestattet. bei
jedem Funktionsein- und -austritt wird da einfach ein Byte ausgegeben.
Das verändert praktisch das Echtzeitverhalten nicht, aber ich kann
hinterher in der LA-Aufzeichnung nachvollziehen, an welcher Stelle
die Software gerade hantiert hat.

Damit sind wir aber schon mal bei 32 bit als Minimalforderung.

Speichertiefe kann man sowieso nie genug haben ;-), je mehr man hat,
um so weniger Aufwand muss man in die Triggerbedingung investieren.
Meist haben die Billigheimer ohnehin nicht so viel Möglichkeiten für
die Triggerung.

Was mir beim Verfolgen von nur sporadisch auftretenden Software-
problemen stets sehr von Nutzen war, ist eine ordentliche Aufzeichnung
der Signale ausschließlich bei einer Zustandsänderung.  Damit kann man
ein Setup stundenlang herumdümpeln lassen, solange sich nichts tut,
wird auch kein Speicher verbraucht.  Im Extremfall braucht man dann
gar keine Triggerbedingung mehr, sondern drückt nach dem Auftreten
des Problems einfach die Stop-Taste und analysiert die Daten.

Allerdings habe ich eine brauchbare Aufzeichnung dieser Art bislang
nur bei den wirklich teuren LAs gesehen; selbst der Zeroplus ist da
nur Spaß.  Die haben offenbar nur ein Byte für die Zeitdifferenz
vorgesehen, sodass nach je 255 Samples (bei 10 ns Abtastung also
nach 2,55 µs) dann doch der nächste Speicherplatz belegt wird.

Schicke Protokollauswertungen sind ein nettes Gimmick, aber die kann
man immer dadurch ersetzen, dass man die Daten exportiert und
anschließend selbst mit einer Scriptsprache oder dergleichen
anlysiert.  Das hat den zusätzlichen Vorteil, dass ich mir die
Auswertung auf meine tatsächlich benutzte Hardware maßschneidern kann,
d. h. ich muss nicht (um beim obigen Beispiel zu bleiben) auf der
Ebene "SPI" stehenbleiben, sondern kann gleich auf Ebene von
Registerlese- und -schreioperationen etc. abstrahieren.  Sowas kann
naturgemäß eine im LA eingebaute Analyse nicht leisten.

von Fragender (Gast)


Lesenswert?

Um die Schnittstelle zwischen dem FPGA und dem USB-Controller zu 
trennen, müsste ich bei dem OpenBench einen üblen Hardwareeingriff 
vornehmen (UART trennen, Stromversorgung 1,8, 2,5 und 3,3V trennen). 
Dann doch lieber einen fertigen USB-Isolator, sofern der eben geht.
Bei den Cypress-Clones ist das wohl nur am Pufferbaustein möglich, da 
sitzt kein FPGA drin und der 12MBit-Isolator ist zu langsam.

Nein, soweit ich das verstanden habe, hab ich bei der 
Geschwindigkeitsbetrachtung das o.g. nicht übersehen.
Deshalb ist die Speichertiefe des OpenBench LS ja beschränkt, weil er 
die 100MS intern wegschreibt und dann über 115k seriell wieder 
rausschiebt. Irgendwann ist der Speicher voll, da sich die Daten 
deutlich schneller anhäufen, als sie weggeschrieben werden.
Die Cypress-Clones übertragen direkt per USB die 24MHz Rohdaten und sind 
von der Speichertiefe nur so beschränkt wie der PC dahinter.

von Fragender (Gast)


Lesenswert?

@Jörg
Ok, anzufangen jeden IO am Controller+Peripherie zu Überwachen ist ja 
nicht mein Ziel. 8 Leitungen zu sprengen krieg ich noch hin, aber mehr 
als 16 kommen bei mir erstmal nicht zusammen, es sei denn ich will mich 
an den FSMC hängen.
Mal eben schnell eigene Skripte schreiben um Protokolle auszuweten? So 
ein Freak, der da mal eben für einen Export einen Dreizeiler tippt um 
sowas zu analysieren bin ich auch nicht. Da bleib ich erstmal bei 
OpenBench LS und sigrok.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Fragender schrieb:
> Ok, anzufangen jeden IO am Controller+Peripherie zu Überwachen ist ja
> nicht mein Ziel.

Es ging nicht darum, jeden Pin zu "überwachen", sondern parallel
zu den eigentlichen Daten noch ein Statusbyte mitzumeißeln, damit
man die Software besser verfolgen kann.  Bei einer Echtzeitkommuni-
kation kannst du ja nicht einfach mal mit dem Debugger anhalten um
zu sehen, wo du gerade in der Software "durchrutschst", weil dann
das Timing im Eimer ist.  Das schnelle Ausgeben eines zusätzlichen
Bytes hin und wieder über einen Parallelport ist dagegen keine
ernsthafte Einschränkung.  Wenn man nur 4 Bits hat, geht das sicher
auch.

Wenn man das dann eben zweimal hat (für zwei Kommunikationspartner,
die man untersuchen möchte), dann läppert sich das.

> Mal eben schnell eigene Skripte schreiben um Protokolle auszuweten? So
> ein Freak, der da mal eben für einen Export einen Dreizeiler tippt um
> sowas zu analysieren bin ich auch nicht.

Kenntnis wenigstens einer Scriptsprache hat einem Softwareentwickler
noch nie geschadet. ;-)  Nicht jedes Problem lässt sich durch Excel
lösen (mit dem ich, nebenbei gesagt, überhaupt nicht klar komme).

von Peter D. (peda)


Lesenswert?

Fragender schrieb:
> Wofür
> brauche ich als Hobbyist(!) einen Logic-Analyzer

Ja, das frage ich mich auch.
Wozu meinst Du denn, ihn zu benötigen?

Daß es Busse gibt, die man benutzen will, ist noch lange kein Grund, 
einen LA kaufen zu müssen.


Fragender schrieb:
> weil mir aktuell eine SW-SPI kopfzerbrechen bereitet.

Ach komm, dazu braucht man doch keinen LA.
Starte einfach den Simulator und steppe durch die 8 Bits durch.

Und ob Du irgendwelche Hardwareprobleme (gegeneinander kämpfende 
Ausgänge) hast, siehst Du viel besser mit dem Oszi.


Ich geb zu, das hier würde mich schon reizen:
http://tmi.yokogawa.com/de/products/oscilloscopes/digital-und-mixed-signal-oszilloskope/dlm4000-mso-series/

8 Kanäle, wow.
Aber fürs Hobby würde ich mir auf keinen Fall einen LA zulegen.
Da hat man doch Zeit und kann in Ruhe überlegen, wo man den Fehler im 
Programm gemacht hat.
Nen LA zu nehmen, ist wie beim Sudoku auf die Lösungsseite zu gehen. Wo 
bleibt die Herausforderung. Und der Stolz, es selbst geschafft zu haben.

Auch gibt es viele Fehler, die man nur durch Überlegen finden kann. Z.B. 
eine fehlende atomare Kapselung, die nur alle paar Stunden den Interrupt 
zur falschen Zeit zerrammelt. Da nützt der LA garnichts.


Peter

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Fragender schrieb:
> und dann über 115k seriell wieder rausschiebt.

Wieso sollte das so wenig sein?

von Fragender (Gast)


Lesenswert?

>Wieso sollte das so wenig sein?
Weil der OpenBench LS so konzipiert wurde. Ich werd jetzt nicht am 
VHDL-Code rumfummeln. Bitte erstmal nachschaun, bevor man dazu was 
postet.

>Kenntnis wenigstens einer Scriptsprache hat einem Softwareentwickler
>noch nie geschadet. ;-)
Nein, aber man kann sichs auch unnötig schwer machen.

>Nen LA zu nehmen, ist wie beim Sudoku auf die Lösungsseite zu gehen. Wo
>bleibt die Herausforderung. Und der Stolz, es selbst geschafft zu haben.
Wie gesagt, man kann es sich auch unnötig schwer machen.

>Starte einfach den Simulator und steppe durch die 8 Bits durch.
Welchen Simulator? Ich hol mir doch nicht für jeden Controller ein JTAG 
oder den Emulator/Simulator.

Die Wahl ist getroffen: Ich besorg mir den OpenBench LS. Das Ding ist 
nebenbei noch ein hübsches FPGA-Board, vielleicht kram ich ja 
tatsächlich mal meine VHDL-Kenntnisse wieder raus.
Als Software ist SUMP wohl etwas schwach, aber sigrok und 
OLS/LogicSniffer scheinen brauchbar.

von Fragender (Gast)


Lesenswert?

Nochmals Danke an die aufmerksamen Leser mit den brauchbaren und 
themenbezogenen Posts :-)

von Ulrich P. (uprinz)


Lesenswert?

Ich habe vor langer Zeit mal einen recht langen Kommentar zu diesem 
"Welcher Oszi ist für mich der Beste" geschrieben, aber ich finde ihn 
nicht mehr. Das Fazit ist aber 1:1 auf den LA anzuwenden.

Man muss sich ansehen, was man mit dem Gerät "höchst selbst" tun möchte 
und was man sich vorstellen kann, in nächster Zeit auch noch zu machen. 
Es ist völlig egal, was andere damit machen, oder machen könnten. Es ist 
auch egal, was Du selbst damit in 5 Jahren machen können möchtest.
Es bringt auch nichts, wenn Du Dir überlegst, welche Signale es am Markt 
gibt, die ein uC liefert, denn ich zeige Dir einen uC, der noch mehr 
liefert und das noch viel schneller.

a) Schaue in Deinen Geldbeutel
b) Gehe in Dich und überlege, was Du machen möchtest und halbiere das, 
denn Dir wird für so viel die Zeit nicht bleiben.
Kaufe Dir das Beste was aus diesem Kompromiss übrig bleibt.
c) Weine nicht, wenn es übermorgen einen LA mit 4x Auflösung für den 
gleichen Preis gibt, das ist immer so. Freue Dich, dass wenn Du in 2..4 
Jahren tatsächlich zu einem noch schnelleren uC mit noch mehr Bussen 
kommst, Du Dir auch einen neuen noch schnelleren LA leisten kannst.
d) verabschiede Dich dann in x Jahren von Deinem ersten LA mit dem 
Wissen, dass er Dir gut gedient hat.

Ach ja: Kleiner Nachtrag:
ein LA ist kein Oszi und wenn man beides hat, sollte man nicht von dem 
einen die Fähigkeiten des anderen erwarten. Also wenn man Glitches und 
Timing Probleme sucht, dann reichen i.d.R. auch zwei Probes an einem 
Oszi, mit denen man dann sequenziell die Flanken zwischen z.B. CLK und 
Data[n] untersucht. Dass man alles parallel auf dem Schirm haben muss 
ist ein Irrglaube und oft erzeugt das geballte Geklipse von 60 Probes 
auf eine Folie mit 120 Leiterbahnen in 4mil mehr Probleme als man damit 
finden kann. Und es kostet 5x so viel Zeit wie das nacheinander 
Kontaktieren mit einer Probe.
Hat man die Signalqualität mit dem Oszi überprüft und hat logische 
Probleme, dann kommt der LA zum Einsatz.

Gruß, Ulrich

von Verwirrter Anfänger (Gast)


Lesenswert?

Fragender schrieb:
>>Wieso sollte das so wenig sein?
> Weil der OpenBench LS so konzipiert wurde. Ich werd jetzt nicht am
> VHDL-Code rumfummeln. Bitte erstmal nachschaun, bevor man dazu was
> postet.

Ich bin mir nicht sicher, ob das in den Specs irgendwo steht, aber 
zumindest mit den Jawis Client erlaubt der Sniffer bis zu 921 600 bps, 
nicht viel besser, aber immerhin.

von MCUA (Gast)


Lesenswert?

>Eine Glitch-Erfassung macht ein LA aber normalerweise nicht durch
>Oversampling...
Doch, z.B haben Tektronix und Agilent dafür sep Zoom-Modes, während dem 
die Abtast-f vielfach erhöht ist. (einige GS/s).
Denn auf einen Glitch zu triggern ist in Realität fast unmöglich. Man 
muss sich den Verlauf ansehen, dafür braucht man die höhere S/s.

von B.B. (Gast)


Lesenswert?

René B. schrieb:
> Um etwas über den Signalcharakter aussagen zu können und die
>
> Verzögerungen paralleler Leitungen untereinander, solltest du mindestens
>
> um den Faktor 5, besser 10 bei der Abtatsung drüber liegen.

Wenn das mal reicht! Messen heisst innerhalb der Toleranz und das ist 
bei digitalen Signalen der Jitter. Der ist im Bereich von <1%. Einen 50 
MHz Takt musst Du also mit 5 GHz genau vermessen. Das war es dann schon.

Die Datenleitungen brauchst Du natürlich nur im Bezug zum Takt und musst 
deren ungefähre Reserve sehen. Dazu reicht in der Takt Faktor 5. Aber:

Heutige Digitalschaltungen laufen intern kaum noch unter 100MHz, siehe 
DSPs, MCUs etc, also landen wir doch wieder beim 500 MSPS - Analyzer.

von Pit (Gast)


Lesenswert?

>Wenn ich jetzt aber auf USB/Ethernet/Memory verzichte
Hierfür gibts auch günstige Geräte um 100,- Euro.

>musst Du also mit 5 GHz genau vermessen
Mag ja sein, aber wenn ich den ersten Post so lese, gehts Ihm eher um 
die Bus-Analyse. Und da braucht man sicher keine 5 GHz Abtastrate.

von W.S. (Gast)


Lesenswert?

Fragender schrieb:
> ich habe mal eine Frage an die Hobby-Entwickler da draußen. Wofür
> brauche ich als Hobbyist(!) einen Logic-Analyzer, der jenseites...

Ich würde die Frage ganz anders stellen:

Braucht man als Hobbyist überhaupt einen Logikanalysator?

oder

Was für ein Hobby müßte es sein, wofür man einen Logikanalysator 
braucht?

Mir fällt selbst bei heftigstem Nachdenken kein Fall ein, wo man als 
Bastler wirklich einen LA braucht. Wenn man einen LA hat, dann ist das 
ja ganz nett und man findet dann auch eine Gelegenheit, ihn 
auszuprobieren, aber BRAUCHEN ist was Anderes.

Als Hobbyist sollte man sein Geld lieber in ein Oszilloskop investieren. 
Das ist die nützlichere Variante.

W.S.

von Verwirrter Anfänger (Gast)


Lesenswert?

W.S. schrieb:
> Als Hobbyist sollte man sein Geld lieber in ein Oszilloskop investieren.
> Das ist die nützlichere Variante.

Würd ich so nicht sagen. Nen Oszilloskop wär toll, aber ich habs bisher 
noch nicht wirklich gebraucht.

Aber gerade bei den größeren ARMs kann ein Logic Analyzer schon sehr 
hilfreich sein, ob die Komponenten auch wirklich das machen, was man 
denkt. Wenn ich über den FSMC, DCMI, I2C oder ähnliches was anschließe 
und es nicht funktioniert, weiss ich erstmal nicht woran das liegt. Da 
kann es schon sehr hilfreich sein, sich den Bus mal direkt anschauen zu 
können.

Natürlich kann man das auch durch viel Nachlesen, Ausprobieren, Fragen 
und Beten hinkriegen, aber mit einem LA geht das oft doch etwas 
schneller.

Ich würde sagen ob LA oder Scope hängt sehr stark davon ab, was man 
macht und wie man arbeitet. Was man wirklich braucht findet man am 
einfachsten raus, indem man sich merkt was einem am häufigsten fehlt.

von W.S. (Gast)


Lesenswert?

Verwirrter Anfänger schrieb:
> Aber gerade bei den größeren ARMs kann ein Logic Analyzer schon sehr
> hilfreich sein

Wiebitte?

Ich befürchte, du hast noch nie sowas programmiert. Zumeist ist es 
nämlich so, daß man bei nem Programmierfehler garnix an den beiteiligten 
Pins sieht. Da hilft dir auch der beste LA nix. Und den LA an den 
Systembus anzuschließen (der oftmals garnicht herausgeführt ist) ist ein 
Witz bei Controllern, die mal eben 30 Millionen Operationen pro Sekunde 
ausführen.

Da ist es sehr viel besser, das User-Manual zum Chip gründlich zu 
studieren und das Nachdenken an die Stelle von Probieren und Gucken zu 
setzen.

Abgesehen davon frag ich dich mal, wie du das anstellen willst bei 
TQFP-Gehäusen mit 0.5er Pitch oder gar im BGA. Selbst für Bastler ist 
die Zeit von DIL-Gehäusen ein bissel vorbei.

W.S.

von Verwirrter Anfänger (Gast)


Lesenswert?

Vielleicht liegt hier ja ein Missverständnis vor. mit größeren ARMs mein 
ich die ARM Cortex-M4 Klasse, nicht ARM Cortex-A15 oder ähnliches.

W.S. schrieb:
> Ich befürchte, du hast noch nie sowas programmiert.
Ich hab noch nicht viel gemacht mit den größeren Chips das stimmt, ich 
beschäftige mich erst seit ca. 2 Jahren mit den 32 Bittern von STM und 
NXP.

Allerdings hab ich schon Displays, Cameras, externes RAM und diversen 
Kleinkram angeschlossen und zum laufen gebracht.

W.S. schrieb:
> Zumeist ist es
> nämlich so, daß man bei nem Programmierfehler garnix an den beiteiligten
> Pins sieht.

Ausser wenn zum Beispiel der I2C Bus zwar funktioniert, aber man beim 
Auslesen von Daten ein STOP zuviel sendet. Oder wenn man kontrollieren 
will, was den von der angeschlossenenen Komponente zurückkommt, da es 
nicht richtig empfangen wird. Gerade als Hobbyentwickler hat man nicht 
unbedingt immer Zugriff auf die besten Datenblätter.

W.S. schrieb:
> Da ist es sehr viel besser, das User-Manual zum Chip gründlich zu
> studieren und das Nachdenken an die Stelle von Probieren und Gucken zu
> setzen.

Hängt davon ab. Es ist zwar intellektuell befriedigender, wenn man nach 
einer Stunde Datenblatt-Durchlesen verstanden hat wie die verschiedenen 
RAM Access Modi mit den Timing Settings zusammenspielen. Aber meine 
Frustlevel sinken stark, wenn ich die wahrscheinlich korrekten Settings 
einfach schnell überprüfen kann.

W.S. schrieb:
> Abgesehen davon frag ich dich mal, wie du das anstellen willst bei
> TQFP-Gehäusen mit 0.5er Pitch oder gar im BGA. Selbst für Bastler ist
> die Zeit von DIL-Gehäusen ein bissel vorbei.

Mein normaler Entwicklungsprozess sieht so aus, dass ich neue 
Komponenten erstmal als Prototyp ausprobiere, bevor ich ein fertiges 
Board in Auftrag gebe. Und dabei seh ich durchaus Möglichkeiten vor an 
die Signale dranzukommen. Sei es über Debug Pads, oder über Adapter. 
Gerade beim Prototypen mit Development Boards sind die verschiedenen 
Komponenten oft über 2,54mm Stecker verbunden, da kann man ideal Adapter 
dazwischen schieben um das Signal abzugreifen.

von Peter D. (peda)


Lesenswert?

Verwirrter Anfänger schrieb:
> Ausser wenn zum Beispiel der I2C Bus zwar funktioniert, aber man beim
> Auslesen von Daten ein STOP zuviel sendet.

Ein STOP zuviel wirst Du mit dem LA nicht sehen, da der Chip nicht mehr 
Master ist. Nur ein Master darf STOP auf den Bus legen.
Du kannst also nur mit Simulator oder Debugger feststellen, daß Du es 
zweimal aufrufst.

Der I2C ist außerdem besser mit dem 2-kanal Oszi zu beobachten. Da kann 
man auch sehen, welcher Teilnehmer auf low zieht, wenn man 100 Ohm 
Widerstände in die Leitungen legt (Low ist 0V oder bissel drüber).
Damit sieht man auch gut den schweren Multimaster-Bug der ATmega. Das 
ist wirklich ne Qual, wenn man mit Timerinterrupt und 
Pinchange-Interrupt den I2C überwachen muß und dann wieder neu 
aufsetzen.


Wir haben in der Firma einen Hameg Oszi, der auch als LA benutzt werden 
kann. Das geschieht aber nur sehr selten. Deshalb bin ich der Meinung, 
fürs Hobby lohnt sich kein LA.

Für den ARM Cortex lohnt sich viel eher ein JTAG bzw. anderes serielles 
Debuginterface. An die internen Busse kommst Du eh nicht ran.


Peter

von Verwirrter Anfänger (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Ein STOP zuviel wirst Du mit dem LA nicht sehen, da der Chip nicht mehr
> Master ist. Nur ein Master darf STOP auf den Bus legen.
> Du kannst also nur mit Simulator oder Debugger feststellen, daß Du es
> zweimal aufrufst.

Ich bin mir nicht mehr ganz sicher wie die Abfolge war, aber in dem Fall 
ging es darum, dass beim Auslesen von eines I2C EEPROM das Setzen der 
Adresse und das Auslesen der Daten als zwei getrennte Kommunikationen 
geschickt wurden, dadurch wurde in der Mitte ein STOP gesand, wo nur ein 
ACK stehen durfte. Ich erinner mich grob, dass es da in der ST 
Standardlibrary für I2C ein paar Probleme gab, allerdings ist das jetzt 
schon über ein Jahr her.

Ich stimm dir voll zu, ein Debug Interface ist auf jeden Fall wichtiger 
als ein LA oder ein Scope, und für die meisten Fälle würde ein einfacher 
Bus Sniffer wahrscheinlich auch ausreichen, aber für mich persönlich war 
der LA das zweitnützlichste Gerät vor dem Scope.

Ich könnte mir vorstellen, das wir hier auch von ganz verschiedenen 
Zielgruppen sprechen. Hobbyist kann alles beinhalten, den Ingenieur, der 
seit 40 Jahren für Siemens SPS entwickelt und in seiner Freizeit mit 
Elektronik rumspielt oder den Soziologiestudent, der vor 2 Jahren mit 
einem Arduino angefangen hat und sich nur in der Freizeit mit Elektronik 
beschäftigen kann.

Natürlich habe diese beiden Gruppen ganz andere Anforderungen, Probleme 
und Möglichkeiten. Der eine Student sucht das sinnvollste Werkezug um 
entspannt zu entwickeln und hat ein Budget von ca. 100 EUR, der 
Ingenieur hat jahrelange Erfahrung und ein Budget von 500+ EUR. Sollen 
sich jetzt beide das gleiche Scope kaufen?

von Peter D. (peda)


Lesenswert?

Laut Datenblatt erfolgt beim EEPROM das Umschalten auf Lesen mit einem 
Repeat-Start nach dem Schreiben der Adresse.
Diese Methode ist aber nur bei einem Multi-Master I2C wirklich nötig, 
damit kein anderer Master dazwischen funkt.
Ein Single-Master kann das aber auch problemlos in 2 getrennten Paketen 
machen.


Peter

von Uwe H. (uwehermann) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
> Schicke Protokollauswertungen sind ein nettes Gimmick, aber die kann
> man immer dadurch ersetzen, dass man die Daten exportiert und
> anschließend selbst mit einer Scriptsprache oder dergleichen
> anlysiert.  Das hat den zusätzlichen Vorteil, dass ich mir die
> Auswertung auf meine tatsächlich benutzte Hardware maßschneidern kann,
> d. h. ich muss nicht (um beim obigen Beispiel zu bleiben) auf der
> Ebene "SPI" stehenbleiben, sondern kann gleich auf Ebene von
> Registerlese- und -schreioperationen etc. abstrahieren.  Sowas kann
> naturgemäß eine im LA eingebaute Analyse nicht leisten.

Du meinst in der Hardware eingebaut oder in der LA PC-Software? Ich kann 
jetzt nur für sigrok sprechen, aber da sind die Protocol Decoder (alle 
in Python geschrieben) PC-seitig "stapelbar", d.h. man kommt durchaus 
auch mit den Decodern auf höhere Protokollebenen, z.B. haben wir derzeit 
u.a.

 - spi -> mx25lxx05d (SPI basierter NOR flash chip)
 - uart -> pan1321 (UART-basierter Bluetooth Chip)
 - i2c -> rtc8564 (I2C basierte RTC)
 - und diverse andere (vorhanden oder in Arbeit)

Die Schachtelung geht auch beliebig tief, also auch z.B. folgendes ist 
denkbar:

 - onewire_link -> onewire_network -> maxim_ds28ea00 (1-Wire protokoll 
layers + chip)

Langfristig sind auch ausgefallenere Setups denkbar, z.B. Ausgabe von 
zwei verschiedenen Decodern auf unterster Ebene in einem dritten 
High-Level Decoder einlesen und daraus ein weiteres "Protokoll" 
dekodieren.


Gerade die "Non-standard" Protokolle (abseits der üblichen UART, SPI, 
I2C die die meisten Billig-LA Softwarepakete können) und höherlevelligen 
Protokolle für bestimmte Chips, Sensoren und "custom" Protokolle sind 
mir persönlich ein großes Anliegen, und ich verbringe einiges an Zeit 
damit nach und nach mehr davon in sigrok zu unterstützen.

Das ist ein Feature das ich bei vielen kommerziellen LAs vermisse und 
eines das ich auch selbst für den eigenen Einsatz als sehr praktisch 
erachte. Wenn ich z.B. den MX25L1605D Traffic mitlese interessiert mich 
in der Tat nicht (nur) das SPI selbst, sondern v.a. die spezifischen 
Chip-Befehle wie RDID, SE, PP, WREN, usw.

Uwe.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Uwe Hermann schrieb:
> Gerade die "Non-standard" Protokolle (abseits der üblichen UART, SPI,
> I2C die die meisten Billig-LA Softwarepakete können) und höherlevelligen
> Protokolle für bestimmte Chips, Sensoren und "custom" Protokolle sind
> mir persönlich ein großes Anliegen, und ich verbringe einiges an Zeit
> damit nach und nach mehr davon in sigrok zu unterstützen.

Das ehrt dich, aber trotzdem gibt es davon so viele, dass es in vielen
Fällen der "Endkunde" selbst machen können (und wollen) muss, damit
das Sinn hat.

Ja, im Prinzip meine ich derartige Dinge.  Auf welcher Hardware die
un konkret ablaufen (dedizierter Computer für den Analyser oder
Host-PC), ist dabei eher nebensächlich.

von Reinhard Kern (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Auf welcher Hardware die
> un konkret ablaufen (dedizierter Computer für den Analyser oder
> Host-PC), ist dabei eher nebensächlich.

Wenn du die Daten erst nachträglich auswertest, musst du eben alles 
speichern, das kann schnell alle Grenzen überschreiten. Der Trick am LA 
ist eben keineswegs so viel wie möglich aufzuzeichnen, sondern mit 
möglichst genauer Triggerdefinition so wenig wie möglich.

Deswegen bringt es auch nichts, z.B. einen Glitch, der bloss einmal pro 
Stunde auftritt, in einem 100 MHz-System mit dem Oszi zu suchen. Den 
kann man bloss finden mit einem Gerät, dass auf den Glitch selbst 
reagieren kann - was zugebenermassen ein anspruchsvolle Aufgabe ist, 
aber im wesentlichen alternativlos wie das heute so schön heisst.

Gruss Reinhard

von Uwe H. (uwehermann) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
> Uwe Hermann schrieb:
>> Gerade die "Non-standard" Protokolle (abseits der üblichen UART, SPI,
>> I2C die die meisten Billig-LA Softwarepakete können) und höherlevelligen
>> Protokolle für bestimmte Chips, Sensoren und "custom" Protokolle sind
>> mir persönlich ein großes Anliegen, und ich verbringe einiges an Zeit
>> damit nach und nach mehr davon in sigrok zu unterstützen.
>
> Das ehrt dich, aber trotzdem gibt es davon so viele, dass es in vielen
> Fällen der "Endkunde" selbst machen können (und wollen) muss, damit
> das Sinn hat.

Das ist schon richtig, es gibt natürlich beliebig viele von diesen 
Protokollen. Das einzige was wir hier machen (können) auf sigrok Seite 
ist

 1. Die Protokoll-Dekoder in einer weit verbreiteten Skriptsprache 
(Python) zu implementieren (statt C/C++ oder selbstgebastelten 
Mini-Skriptsprachen). Das führt dazu, dass die Dekoder relativ einfach 
zu schreiben und zu verstehen sind, und man kann einige nette Python 
Libs benutzten, und viele nette eingebaute Python-Features (Listen, 
Tupel, Dicts, uvm). Das alles in C/C++ zu schreiben wäre um einiges 
aufwändiger und schlechter lesbar am Schluss.

 2. Auf neue Protokolldekoder von Usern hoffen, wie bei jedem 
Open-Source Projekt (was durch Punkt 1 hoffentlich erleichtert und 
gefördert wird).



Uwe.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Reinhard Kern schrieb:
> Wenn du die Daten erst nachträglich auswertest, musst du eben alles
> speichern, das kann schnell alle Grenzen überschreiten.

Im Zeitalter von Terabyte-Festplatten ist das auf dem Host ja
kein Problem.

> Der Trick am LA
> ist eben keineswegs so viel wie möglich aufzuzeichnen, sondern mit
> möglichst genauer Triggerdefinition so wenig wie möglich.

Naja, s. o.  Wenn mein LA genügend Speichertiefe hat, dann kann ich
mit der Triggerbedingung auch lax werden.  Schließlich kostet es auch
Aufwand, diese zu formulieren.

Gut, was natürlich ein Vorteil einer Protokollanalyse auf dem LA
selbst (statt auf einem Host) ist ist, dass man die Triggerbedingung
auf höherer Protokollebene formulieren kann.

von Knut (Gast)


Lesenswert?

>Oszilloskop oder ein Billigheimer mit ordentlicher Speichertiefe ist
>hier wohl angebrachter. Wichtig wäre allerdings einer mit einer
>ordentlichen Protokollauswertung.
Was soll das sein: ordentliche Protokollauswertung?
Wenn ich bei I2C neun Bits sehe und das Letzte ist auf High-Pegel muss 
ich schon selber wissen, dass das ein NACK ist. Wenn's mir jemand sagen 
muss, dann hilft mir das auch nichts, weil ich dann nämlich keine Ahnung 
hab, von dem was ich grade programmiere.

von Olaf (Gast)


Lesenswert?

> Was soll das sein: ordentliche Protokollauswertung?

Bei meinem HMO2022 sind das z.b die uebersichtliche Darstellung und die 
Verwendung verschiedener Farben. Da kuckst du nur einmal drauf und 
weisst nach 1s wo du nochmal naeher drueber nachdenken solltest.

Olaf

von Knut (Gast)


Lesenswert?

>Bei meinem HMO2022 sind das z.b die uebersichtliche Darstellung und die
>Verwendung verschiedener Farben.
Das sollte selbstverständlich sein. 8 Kanäle in eiem Diagramm 
übereinander und dunkelgraue Signale auf schwarzem Hintergrund wird 
keine Software liefern.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Knut schrieb:
> 8 Kanäle in eiem Diagramm
> übereinander und dunkelgraue Signale auf schwarzem Hintergrund wird
> keine Software liefern.

Sei Dir da mal nicht so sicher:
http://www.saleae.com/Resources/Images/Logic/LogicSoftware_03.jpg

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
Noch kein Account? Hier anmelden.