Ein RS232 -> I²C-Multimaster-Konverter für DB0QI

Die I²C-Bus-Struktur beim DB0QI ist als Multimaster-Umgebung gedacht. Es können also mehrere Master auf dem Bus alle Slaves steuern. Unter anderem war es auch notwendig mittels PC oder Notebook die Geräte am DB0QI zu verwalten und steuern. Daraus ist dann der RS232-I²C-Konverter auf der DTMF-Karte entstanden. Bie jetzt musste zu jeder neuen Hardware auch die Software im Konverter umgestrickt werden. Das war von Mal zu Mal immer lästiger schon im Versuchsstadium. Inzwischen ist eine neue Version entstanden die quasi nahezu allgemein gültig ist.

Die Bauanleitung findest du hier.

Im Inet war zwar schon manches vergleichbare zu finden, nur eben nicht multimasterfähig. Aber so manche Idee habe ich aus dem Netz übernommen. Das aktuelle HEX-File und die Include-Datei die die Multimaster-Routinen für den PIC16F88 beinhalten ist hier gezippt.
Die Datenübertragung erfolgt einfach über eine Anzahl von Bytes die nicht als STRING, sondern einfach als Byte übertragen werden.

Hier die Byte-Reihenfolge RS232->I2C Modul:

Byte 1 = Startbyte ("~")
Byte 2 = Befehl
Byte 3 = Anzahl der zu übertragenden Bytes (60 Bytes)
Byte 4 = Anzahl der zu empfangenen Bytes (60 Bytes)
Byte 5 = PCA Adresse
Byte 6 = PCA Schalter
Byte 7 = Frei
Byte 8 = Frei
Byte 9 = Frei
Byte 10 = erstes DatenByte (maximal 60 Bytes)
Byte . = Datenbyte
Byte . = Datenbyte
Byte . = Datenbyte

Befehl 10 = n Bytes senden
Befehl 20 = n Bytes empfangen
Befehl 30 = n Bytes kombiniert empfangen
Befehl 40 = Version auslesen

Byte-Reihenfolge beim Datenempfang

Byte 1 ff = empfangenes Datenbyte

Byte n-6 = Fehlernummer PCA-öffnen
Byte n-5 = Fehlernummer TRX
Byte n-4 = Fehlernummer PCA-Schliessen
Byte n = Stopbytes ("OK" CRLF)


I2C-Bus Fehlerliste

Nummer Fehler

1 : SCL bleibt 0 (Bus belegt)
2 : SDA bleibt 0 (Bus belegt)
3 : Kein ACK (kein Handshake)
4 : SDA noch 0 Master kann kein STOP bit senden
5 : Timeout beim Warten auf freien Bus
9 : RS232-Lesefehler


Als Beispiel ist hier der "TROVA" Sourcecode zu finden, sowie hier das Programmpaket mit Sourcen für QBasic 4.5 um den Konverter über das Servicemodul von Deti, DG9MHZ für Flexnet-Digis zu bedienen. Wenn jemand noch Ideen oder Anmerkungen dazu hat darf er sich gern bei mir melden !

Hier die Bilder des Testmoduls:

Inzwischen sind ein paar Kleinigkeiten und Verbesserungen in allen Modulen dazugekommen (02.12.2007)!

Das passende HEX-File (Version 4c) für den PIC16F88 ist hier .

Das aktuelle HEX-File (Version 5h 24.07.2010) für den PIC16F88 ist hier .

TROVA is out, Hip is QIST (30.09.2009)

Inzwischen gibt es eine neue PC-Software zum Steuern der QI-Komponenten: Die QI-STeuerung ! OM Ernst DJ7DA war äußerst fleissig und hat sich die wichtigsten Routinen aus TROVA geschnappt und sein QIST daraus gebaut. Damit sind vordergründig nur die QI-Baugruppen über den RS232-I²C-Wandler steuerbar. Aber für den findigen VB-Programmierer sollte das umbauen auf eigene Bedürfnisse kein Problem sein.

Bei Interesse bitte eine Email an Ernst schreiben, es passieren immer wieder Neuerungen und Erweiterungen., die ich nicht direkt einpflegen kann.

Noch ein paar Bildschirmfotos:

Inzwischen gibt's eine große Übersicht aller Befehle die per DTMF funktionieren.

Die Ursache für die QIST-Software ist das Problem, daß PR als Steuerzugang immer unzuverlässiger geworden ist. Inzwischen sind Ernst DJ7DA und Horst DL2GA echte DSTAR-Fans geworden, Die Steuerung von DB0QI über die serielle Schnittstelle und das entsprechende Protokoll von DSTAR-Geräten ist nach einiger Tüftelei voll funktionsfähig !!! Somit gibt es jetzt drei völlig unterschiedliche Möglichkeiten DB0QI zu steuern:

... naja eine sollte doch immer gehen :-)

Viel Erfolg beim Spielen !!!


rauf Home

73 de Tomtom

Home