|
|
| Interface zum 3-Leiter-Bus |
| mit Beispielen, wie man die Frequenz in
eine PLL-Schaltung lädt |
|
|
Der einfache Weg, wie man für Testzwecke einen
PLL-Oszillator steuert ...
... und wie man die Frequenz-Daten in den PLL-Synthesizer
lädt.
Hier ist meine Lösung mit Schaltplan
und Software.
Ein kleines Tool, mit dem man einfache Bitschiebeoperationen
durchführen kann.
Mein Werkstatttool zum Lesen und Schreiben von Schieberegistern
oder zum Beobachten und Aufzeichnen von Aktivitäten auf
dem 3-Leiter-Bus ist geeignet für Fehlersuche oder
Entwicklung, oder um schnell mal eine bestimmte Baugruppe
zu testen.
|
| |
| 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 Clock- eine Daten- 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
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.
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 AT90S2313 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 AT90S2313 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
AT90S2313 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.
|
| |
 |
| |
| 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 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.

Bitte sendet euren Erfahrungsbericht oder eure Frage
an:
info@uwe-kerwien.de
|
 |
|
|
|