Projekt: OpenLogicDirect [Version 1.0]

posted by: Claudio Hediger

In meiner Werkstatt steht schon seit einigen Jahren ein alter HP1630D LogicAnalyzer.
Dieser hatte auch schon für einige Projekte gute Dienste geleistet. Doch leider ist dieser ziemlich gross und umständlich. Auch sind schon einige Menüs auf seinem Kathodenstrahlbildschirm eingebrannt. Deshalb kam schon ziemlich bald der Gedanke auf, einen eigenen, kleinen LogicAnalyzer zu bauen.

Die meisten LA's welche ich gefunden habe waren mit SRAM's ausgerüstet damit die Daten so schnell wie möglich gesampelt werden konnten. Ich hatte noch eine Sortiment Box voll mit SRAM Muster von Glyn. Doch wenn ich schon ein SRAM verwende, sollte es auch ein Standard Ram sein welches man überall bekommt. Also was das RAM erst einmal kein Thema mehr.

Die Idee wurde dann eine Weile auf Eis gelegt.
Etwas später an einem Abend, hat mich der LA dann doch nochmal gepackt. Ich wollte einfach mal ein Gerät mit welchem ich meine zuvor Programmierte Software testen kann. Es war mir also egal wie schnell der LA sein wird.

Die Datenübertragung sollte mittels RS232 bzw. UART erfolgen. Als Mikrocontroller hatte ich einen Attiny2313 vorgesehen. Nach einiger Recherche, ist mir jedoch aufgefallen, dass dieses Vorhaben nicht ideal ist, da der Computer in den meisten Fällen nur begrenzt sehr hohe Baudraten zulässt. Ich habe mich also auf eine niedrigere Übertragungsrate eingestellt und habe deshalb einfach mal die UART Pins auf eine Stiftleiste herausgeführt.

Heraus kam dieses Schema:


Nach dem ich es fertig hatte, fiel mir ein, es gibt da ja noch diesen tollen Chip von FTDI... Den FT232RL. Er verwandelt jede USB Schnittstelle in eine Highspeed UART Schnittstelle mit 3MegaBaud Übertragungsgeschwindigkeit.

 

Also habe ich noch einen kleinen USB<->UART Adapter designt.

 

Dieser Adapter ermöglicht es nun, die Daten unabhängig vom PC mit einer Geschwindigkeit von 3MBaud vom LA zu übertragen.

 

Der Attiny2313 wird nun direkt vom FT232RL mit einem Clock versorgt. Dieser Clock hat eine Frequenz von 24Mhz. Im Datenblatt des 2313 steht zwar das er nur bis 20MHz ausgelegt ist, die 24MHz verträgt er jedoch ohne Probleme. Es läuft alles absolut stabil!

Nach dem Ätzen der beiden Platinen war alles soweit um in das Gehäuse eingebaut und getestet zu werden.

Zuerst habe ich nur den aktuellen Port zustand empfangen und Dezimal ausgegeben.
Nachdem dies einwandfrei funktionierte, begann ich das Gerät bzw. die FTDI Treiber in meine Anwendung zu übernehmen. Dies erwies sich als einfacher als zuvor angenommen. Die grosse Überraschung kam erst, als ich bemerkte dass ich damals überhaupt nicht daran gedacht hatte, die Darstellungsfunktionen für das Timingdiagramm flexibler zu programmieren. Das bedeutet, das ich das Programm nur für eine einzige "breite" von 10000 Abtastungen ausgelegt hatte. Also musste ich mich nochmals in die Programmabläufe hineindenken.

Leider hatte ich keine Kommentare dazu geschrieben, das wurde mir nun teilweise zum Verhängnis.

Nach einigen Stunden habe ich wider dahinter geblickt und konnte somit den ersten Kanal einigermassen Korrekt darstellen. Doch so richtig gestimmt hat es dennoch nicht. Also hab ich mir Hilfe in der DelphiPraxis geholt. Da gab es einen Benutzer namens Idefix2 welcher mir sehr bei der Programmierung der Darstellungsfunktionen geholfen hat. Genauergesagt, ist die Funktion zur Darstellung der Signale von Ihm. Deshalb hier nochmals ein grosses Dankeschön an dich!

Nach dem nun alle Kanäle soweit dargestellt wurden, kam der feinschliff und die Messungen. Der LogicAnalyzer überzeugte durch seine Flexibilität in der Handhabung sowie in der Kompaktheit seiner Grösse. Ein Mini USB Anschluss rundete das Ganze noch ab. Alles in allem ein super Gerät wenn man nicht gerade einen PCI Bus eines PC's untersuchen muss. Aber für kleinere Hobby Anwendungen reicht es allemal!

Meistens geht es ja darum ob das Timing untereinander stimmt und somit kann man gewisse Prozesse wie SPI ja auch verlangsamen fall diese Signale zu schnell für diesen LA Typ wären.

Nun kommen noch einige Technische Daten:

Technische Details
Stromversorgung: Mini USB +5V
Interne Taktfrequenz: 24MHz vom FTDI
Maximale Samplerate: 233'000 Samples/s
Anzahl Kanäle: 8
Trigger: Jeder Kanal auf anst. oder fallende Flanke
Anzeige: 2 Status LED's sowie eine für Power

 

Es sind bereits 3 weitere Versionen in Planung. Version1 enthält anstelle des FT232RL einen FT245RL welcher den Port direkt selbst einliest. Der Attiny2313 dient lediglich zum steuern des Timings.

Version2 beinhaltet einen FT245RL sowie einen 12ns SRAM Speicherbaustein.
Wiederum einen Attiny2313 für das Timing.

Version3 baut auf einem CPLD auf um die Daten mit absoluter Geschwindigkeit einlesen zu können.

Wie ihr seht, dürft ihr noch auf so einiges gespannt sein.

Die Software welche für die Darstellung der Daten benötigt wird, ist absolut
Kostenlos im Downloadbereich verfügbar. Sie befindet sich noch in Experimenteller Phase und hat daher noch einige Unklarheiten. Das Sampeln der Daten funktioniert jedoch einwandfrei.

Zur Verwendung des LA's benötigt man noch den FTDI Treiber.
Einen Link zu diesem findet sich auf der Download Seite oder auf dieser Seite bei den Links.

Die aktuelle Software kann auch Signale abspeichern sowie Signale laden. Wenn ihr die Software mal testen möchtet, so könnt ihr dies tun indem ihr diese im Downloadbereich herunterladet und danach die Beispieldatei aus dem Downloadbereich öffnet.

Bitte bei der Software ein Update durchführen, damit ihr die neuste Version habt!
(Es werden derzeit keine Proxyserver unterstützt!)

firefox

Screenshot
von der aktuellen OpenLogic Software

 

 


Version:
1.0.0.472

 

---> Updates: <---

12.07.2010: Ich habe passende Saleae Clips gefunden. http://www.e-z-hook.com/

 

Bilder: