UART als Logikanalysator?

Ich möchte eine bestimmte 2-Draht-Digitalschaltung zurückentwickeln. Ich suche einen möglichst günstigen Logikanalysator. Ich kenne die genaue Frequenz der Schaltung nicht, aber sie liegt unter 1 MHz. (Wahrscheinlich im Bereich von 50 kHz bis 500 kHz.)

Offensichtlich habe ich von Bus Pirate gehört, aber ich dachte - hey, warum nicht einfach einen seriellen Anschluss an meinem Laptop verwenden? Ich habe einen UART-zu-USB-Dongle, der auf einem Chip der FT232-Familie basiert, der mit nicht standardmäßigen Baudraten von bis zu 1 MB und mehr funktionieren soll (je nachdem, welches spezifische Modell Sie nachschlagen).

Es gibt zwei Herausforderungen, die ich sofort sehe:

  1. Stromspannung. Ich gehe davon aus, dass ein einfacher Spannungsteiler mit zwei Widerständen ausreicht?
  2. Uhr. Da ich die betreffende Baudrate nicht kenne, sehe ich nicht sofort das richtige Signal. Vielleicht könnte ich anfangs überabtasten und die tatsächliche Frequenz aus dem beobachteten Signal herausfinden?
FTDI-Chips, sogar FT232, verfügen über einen Bitbang-Modus, mit dem Sie möglicherweise ein digitales Signal mit einer bestimmten Rate abtasten können. Sie müssten jedoch wahrscheinlich Ihre eigene Software schreiben, und ich bin nicht sicher, ob Sie im Laufe der Zeit kontinuierlich sampeln können. aber wenn Sie viel mehr Zeit als Geld oder viel mehr Verstand als Geld haben, könnte es einen Versuch wert sein, etwas wie einen Buspirat zu kaufen.

Antworten (1)

Seriell ist mehr als nur die Baudrate. RS-232 ist ein gerahmtes Protokoll . Das heißt, jedes Datenbyte wird von identifizierenden Markierungen umrahmt – nämlich den Start- und Stoppbits . Nur wenn ein gültiges RS-232-Paket, das durch diese Markierungsbits gekennzeichnet ist, erkannt wurde, wird es als gültiges Byte an Ihren Laptop gesendet.

Wenn Ihr unbekannter Datenstrom nicht zufällig RS-232 in seinem Format ist, kann der FT232-Chip keine gültigen Pakete identifizieren und Ihnen daher nicht sagen, was los ist.

Es sind andere FT*-Chips erhältlich, die mit beliebigen Datenströmen oder rohen IO-Pins arbeiten können, und Sie können möglicherweise einen passenden Chip finden, aber einen in einem einfach zu verwendenden Dongle zu finden, kann schwieriger sein.

Sie wollen wirklich etwas Allgemeineres, wie einen Buspirat, aber eigentlich würde alles, was in der Lage ist, den Zustand digitaler Signalleitungen schnell genug zu überprüfen und in eine Form umzuwandeln, die der Computer lesen kann (USB), die Arbeit erledigen.

Ich verwende oft ein generisches Mikrocontroller-basiertes Board, um die Arbeit zu erledigen (ich verwende meistens 80-MHz-PIC32MX- oder 200-MHz-PIC32MZ-Chips und die chipKIT-Plattform). Diese Bretter haben den Vorteil, dass Sie sie auch für andere Dinge verwenden können. Arduino ist beliebt, aber die Low-End-Modelle sind möglicherweise etwas langsam für eine zuverlässige Erkennung, ohne ausgefallene Tricks (Interrupts usw.) zu verwenden.

Man kann versuchen, die Steuersignale von UART mit einem benutzerdefinierten Timing zu verwenden. Aber es wird ein Chaos.
@EugenSch. Und möglicherweise auch zu langsam für eine zuverlässige Erfassung.
Vielen Dank für eine sofortige Antwort! :) Würde ein Raspberry Pi GPIO die Arbeit machen? (Ich habe irgendwo zu Hause ein RPi.) EDIT: Nein! RPi GPIO ist zu langsam.
Nun, es stellt sich heraus, wenn Sie die richtige Software verwenden, kann RPi GPIO vielleicht funktionieren?! codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed
Ein RPi ist sicherlich eine Möglichkeit, ja. Vor allem, wenn Sie Ihre Analysesoftware direkt auf dem Pi ausführen, damit Sie keine Probleme haben, die Daten schnell genug auf Ihren PC zu übertragen.