Navigation


3-Leiter-Bus home

Das 3-Leiter-Bus Interface

3-Leiter-Bus Wiki

Die Befehle

Monitor-Mode

Master-Mode

Das Setup

Store/Recall-Funktion

Read-Funktion

 

Beispiele mit PLL-ICs


Grundlage PLL-Synthesizer

Der PLL-Crashkurs


Start

BLOG

Download-Bereich

Crashkurs PLL-Synthesizer


crashkurs
PLL-Synthesizer
+
BONUS
jetzt als PDF.

Downloaden,
ausdrucken &
offline lesen
.

wie immer gratis!

Crashkurs PLL

Das Drei-Leiter-Bus Interface

Der einfache Weg, wie man für Testzwecke einen PLL-Oszillator steuert ...
... und die Frequenz-Daten in den PLL-Synthesizer lädt.


Hier ist meine Lösung mit AVR ATtiny2313 incl. Schaltplan und Software.

Jetzt auch der Quellcode zum Interface verfügbar!

Ein kleines Tool, mit dem man einfache Bitschiebeoperationen durchführen kann.

Dieses Tool ist geeignet:

Wofür brauche ich dieses Interface ?

Immer wieder stand ich vor einem Problem, ich konnte Sender- bzw. Empfängerbaugruppen aus verschiedenen Funksystemen nicht einzeln in der (Funk-)Werkstatt betreiben, da mir das notwendige Umfeld dieser Baugruppen fehlte (Referenzoszillator, PLL-Steuerung ...). Immer wieder mußte ich mir von Kollegen (auch seitens der Hersteller) anhören, daß man diese Baugruppen nicht selbst reparieren kann. Ich konnte mich nicht damit abfinden, denn schließlich hatten wir alle technischen Unterlagen und Kenntnisse um diese Baugruppen selbst zu reparieren. Ist doch keine Zauberei. Nur weil ich im Moment die defekten Baugruppen nicht in Betrieb nehmen kann, muß ich doch nicht gleich aufgeben und die Baugruppen beim Hersteller reparieren lassen, oder?!
Zum einen ist das recht teuer, und zum anderen lernt man nichts dabei.

Also die Betriebsspannung, Referenzfrequenz und verschiedene Eingangssignale konnte ich bereitstellen, kein Problem. Aber das Laden der PLL-Synthesizer und diverser Schieberegister war ohne Steuerbaugruppe nicht möglich. Ich brauchte also eine Nachbildung der Steuerbaugruppen oder besser ein universelles Tool mit dem ich einfache Bitschiebeoperationen durchführen konnte.

Die Idee für ein universelles 3-Leiter-Bus Interface war geboren. Das nun hier vorgestellte 3-Leiter-Bus Interface unterstützt eine CLK- eine DATA- und 3 Enable-Leitungen. Es ist in der Lage, die von der Steuerbaugruppe erzeugten Bitfolgen anzuzeigen (Mode: Monitor), zu speichern und wieder auszugeben (Mode: Master). Eine manuelle Eingabe der gewünschten Bitfolgen, sowie das Lesen vom 3-Leiter-Bus wird ebenfalls unterstützt (Mode: Master).

(siehe auch unter Wiki 3-Leiter-Bus)

Natürlich brauche ich manchmal ein I²C-Bus- und ein 3-Leiter-Bus Interface in Kombination, um alle ICs einer Baugruppe zu steuern. Aber I²C-tools gibt es genügend im Netz, als Fertiggerät oder Bausatz. Mein Eigenbau I²C-tool möchte ich nicht zum Nachbau empfehlen, es funktioniert zwar und hat alle Funktionen die ich meistens brauche, aber ... Zurück zum 3-Leiter-Bus.

Anleitung:

Unter Beispiele zeige ich die einfache Anwendung des 3-Leiter-Bus Interface
anhand verschiedener PLL-ICs.
Ich erläutere kurz:

zur Anleitung

Voraussetzungen:

Zum Betreiben des 3-Leiter-Bus Interface ist eine Spannungsversorgung (ca. 9-12V) und ein beliebiger Computer mit einem freien COM-Port (9k6) und einem bereits installiertem Terminal-Programm erforderlich. Keine weitere Software muß installiert werden. Einfach das Interface an die COM anstecken, Terminal-Programm starten und fertig.
Noch einfacher geht's nicht. Punkt.

Die Hardware/Software

Das 3-Leiter-Bus Interface habe ich mit dem 8Bit-AVR-RISC-Controller AT90S2313 vom Atmel realisiert. Es kann auch der aktuelle Controller ATtiny2313 -20PU eingesetzt werden. Der Controller wird mit 10MHz getaktet, kann also fast 10 Mio. Befehle pro Sekunde ausführen. Anfangs erschienen mir die 2 KByte Programmspeicher und 128 Byte SRAM / EEPROM des AT90S2313 / ATtiny2313 mehr als ausreichend. Es sollte ja nur ein einfaches Tool zum Laden eines bestimmten PLL-Oszillators werden. Aber während des Programmierens und Testens wurde schnell klar, daß ohne ein Minimum an Bedienkomfort und Flexibilität das Tool in der Praxis nur schwer und mit Einschränkungen zu handhaben ist. Also wuchs die Software schnell auf 2 KByte an und ich mußte am Ende um jedes einzelne Byte Programmspeicher kämpfen. Ich habe deshalb auf weitere Editierfunktionen des Buffers und einer Onlinehilfe verzichtet. Die gesamte Funktionalität der Software wird unter Befehle zusammen gefaßt.

Eine Programmversion V1.0 2003 steht im INTEL-HEX-Format im Download-Bereich zur Verfügung.

Jetzt auch der Quellcode zum Interface verfügbar!

Im folgenden Bild ist der Schaltungsentwurf zu sehen. Die 5V Betriebsspannung wird von einem 78L05 bereitgestellt. Ein Reset-IC überwacht die Betriebsspannung und zieht den Reset-Eingang des ATtiny2313 auf low, wenn die Spannung unter 4,5V fällt. Die beiden LEDs zeigen die Betriebsbereitschaft an (grün = Monitor und rot = Master). Während eines Datentransfers sind die LEDs aus. Die Portleitungen pin 6,7,8,9 und 11 bedienen den 3-Leiter-Bus. Die Widerstände an den pins 12 und 13 dienen als pull up, bzw. als pull down, um unbenutzte Leitungen im Monitor-Mode, je nach Setup-Einstellungen, auf Ruhepegel zu ziehen. Im Master-Mode haben diese Widerstände keine Bedeutung und könnten weg gelassen werden. Der MAX232 setzt den 5V TTL-Pegel der UART des ATtiny2313 auf die +/-10V der COM-Schnittstelle um.

Der Nachbau dieser Schaltung wird für jeden Elektronikbastler nur wenig Zeit in Anspruch nehmen und garantiert funktionieren. Einfach einen ATtiny2313 mit der Datei drei_V10.hex programmieren, und in die Schaltung einsetzen.
Bei der Programmierung oder anderen Problemen mit der Inbetriebnahme biete ich meine Hilfe an.

Neue Info:

Bei Verwendung des neuen ATtiny2313 kann das Reset-IC entfallen.
In diesem Fall muß die Fuse "Brown-out-detection" richtig gesetzt werden.

3-Leiter-Bus-Interface-Schaltung
Bauteilliste:  
1x AT90S2313 oder ATTINY2313-20PU Controller
1x MAX232 RS-232 Treiber (COM)
1x 78L05 Festspannungsregler 5V positiv
1x STM 809 LWX 6 F o.ä. Reset-IC (Reset Low 4,63 V)
2x BC517 o.ä. npn-Transistor (LED-Treiber)
1x LED rot LED (Master)
1x LED grün LED (Monitor)
4x 100k Widerstand (pull up/down)
2x 10k Widerstand
1x 4,7k Widerstand
1x 1k Widerstand
1x 50µF ELKO
1x 1µF ELKO
1x 100nF Kondensator
1x 22pF Kondensator
1x Quarz 10,0MHz Schwingquarz
1x SUB-D Buchse 9pol SUB-D Buchse (COM-Anschluß)
   

Der mechanische Aufbau dieser Schaltung ist Euch überlassen, ob nun eine richtige Leiterplatte oder nur Lochraster, es funktioniert immer.

Es folgt noch ein Foto von der Probeleiterplatte, die ich nun seit Jahren benutze.
Ich wollte eigentlich eine ordentliche Leiterplatte machen, aber Faulheit siegt. Es geht ja auch so.
Die Leiterplatte war schnell zusammengeklebt (ich meine gelötet) und funktioniert bis heute.

Größeres Bild, Atmel 3-Leiter-Bus