Forum: Mikrocontroller und Digitale Elektronik Lantronix XPort GPIOs


von Tony S. (tooony)


Lesenswert?

Hallo in die Runde!

In einem aktuellen Projekt nutze ich einen XPort. Die Seriellen 
Leitungen sind mit einem Multiprotokoll Transceiver MAX3160 verbunden. 
Über Pin 11 des ICs hat man die Chance die Funktionsart auf RS232 (Low) 
oder RS485 (High) zu setzen. In meinem Fall möchte ich dies gerne mit 
einem GPIO Pin des XPort umsetzen. Dazu habe ich CP2 des XPort als GPIO 
Output festgelegt mit der eigenschaft High Active, sprich der Pin soll 
Low sein damit ich zunächst RS232 nutzen kann.

Teste ich in diesem Aufbau nun die Kommunikation, kommen zwar Daten an, 
aber springen hin und her. Zuerst dachte ich das ein PullUp / PullDown 
helfen würde, aber durch probieren fand ich heraus das es an der 
Beschaltung des MAX3160 mit dem CP2 des XPort liegt. Setze ich den 
Selektionspin für RS232 / 485 gezielt auf Masse funktioniert RS232 
wunderbar. Hat jemand eine Idee wie dieses Problem zu lösen ist?

In diesem Aufbau bzw. der Konfiguration des CP2 liegen unbeschalten ca. 
0,1 V an, beschalten am MAX3160 jedoch rund 0,3 Volt. Für mich aktuell 
unerklärlich. Jech müsste nach Datenblatt des MAX3160 ein Pegel von 0,3 
V als Low akzeptiert werden.

Kann hier jemand Licht ins dunkle bringen und eine schaltungstechnische 
Lösung skizzieren?

Das man die GPIO-Pins mit einem Protokoll parametrieren kann ist mir 
bekannt, aber für mein Vorhaben keine dauerhafte Lösung.

von Stefan F. (Gast)


Lesenswert?

> kommen zwar Daten an, aber springen hin und her.

Wo springen sie denn hin? Ich muss immer aufpassen, dass sie nicht aus 
dem Fenster springen.

Mal im Ernst: Beschreibe deine Beobachtunge präziser, damit wir Dir 
folgen können.

> In diesem Aufbau liegen unbeschalten ca. 0,1 V an,
> beschalten jedoch rund 0,3 Volt.

Dann belastest du den Pin zu stark. Schon mal den Strom gemessen?

von Tony S. (tooony)


Lesenswert?

Der Strom liegt bei 3,4 mA.

Ich versuch es nochmal:

Der MAX3160 kann über Pin 11 beschalten werden, sodass er bei einem 
Low-Pegel mit RS232 und mit einem High-Pegel als RS485 läuft. Diesen Pin 
möchte ich über CP2 des XPort steuern.

Im Webinterface definiere ich CP2 als GPIO mit Output und High Activ für 
RS232. Messe ich die Spannung die dann am Pin anliegt, messe ich 0,1 
Volt. Dies entspricht noch dem Low-Pegel laut Datenblatt des MAX3160.

Schließe ich den CP2 dann aber an den Pin 11 des MAX3160 an, messe ich 
0,3 V (theoretisch  auch noch Low-Pegel laut MAX3160). Kommuniziere ich 
dann in diesem Aufbau über RS232 kommen zappelnde Daten an. Schalte ich 
jedoch Pin 11 gezielt auf Masse funktioniert alles wunderbar.

von Stefan F. (Gast)


Lesenswert?

> Der Strom liegt bei 3,4 mA.

Das ist schon ziemlich viel. Für normale digitale Steuerleitungen ist 
das zu viel. Zeige mal den Schaltplan und zeichen ein, wo du den Strom 
gemessen hast.

von Georg (Gast)


Lesenswert?

Stefan U. schrieb:
> Das ist schon ziemlich viel.

Ganz egal was um den Pin herum so passiert, 0,3 V sind logisch low und 
Punkt. Das kann also nicht die Erklärung sein. Möglicherweise hilft ein 
Oszi.

Georg

von Tony S. (tooony)


Lesenswert?

Den Schaltplan kann ich erst später Posten,  da ich gerade nicht am PC 
bin. Grundsätzlich ist der MAX3160 wie im Datenblatt standardmäßig 
beschallen,  sowie der XPORT auch.

CP2 und Pin 11 sind direkt verbunden. Dort dazwischen habe ich auch den 
Strom gemessen.

Andersherum, wenn ich Los-Active für CP2 einstellen kommen die 3,3 Volt 
konstant heraus. Mir scheint es das die Konfiguration High-Active nicht 
gleichzeitig bedeutet das der Pin bei 0 Volt liegt, so wie man es 
annehmen würde.

von Michael U. (amiga)


Lesenswert?

Hallo,

Tony S. schrieb:
> Der Strom liegt bei 3,4 mA.
>
> Ich versuch es nochmal:
>
> Der MAX3160 kann über Pin 11 beschalten werden, sodass er bei einem
> Low-Pegel mit RS232 und mit einem High-Pegel als RS485 läuft. Diesen Pin
> möchte ich über CP2 des XPort steuern.
>
> Im Webinterface definiere ich CP2 als GPIO mit Output und High Activ für
> RS232. Messe ich die Spannung die dann am Pin anliegt, messe ich 0,1
> Volt. Dies entspricht noch dem Low-Pegel laut Datenblatt des MAX3160.
>
> Schließe ich den CP2 dann aber an den Pin 11 des MAX3160 an, messe ich
> 0,3 V (theoretisch  auch noch Low-Pegel laut MAX3160). Kommuniziere ich
> dann in diesem Aufbau über RS232 kommen zappelnde Daten an. Schalte ich
> jedoch Pin 11 gezielt auf Masse funktioniert alles wunderbar.

Nach Deinen Erklärungen ist also CP2 hochohmig oder aktiv High.
Warum nicht auch sauber auf Aktiv Low? Ein offener Eingang am MAX3160 
kann machen was er will, auch abhängig von den Daten seinen Pegal 
ändern.
Mindestens ein passender PullDown wäre alsö vermutlich nötig.

Deine 3,4mA verstehe ich auch nicht, der Eingangsstrom der Logikeingänge 
des MAX3160 sind ein paar µA.

Gruß aus Berlin
Michael

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

> ist der MAX3160 wie im Datenblatt standardmäßig beschallen
Vielleicht die falsche Mucke? ;)

von Tony S. (tooony)


Lesenswert?

Michael U. schrieb:
> Mindestens ein passender PullDown wäre alsö vermutlich nötig.

Ich habe einen PullDown mit 10K angebracht. Das Fehlerbild bleibt das 
gleiche. Gibt es noch andere Schaltungsvarianten, die ich hier testen 
kann?

von unsinn (Gast)


Lesenswert?

Besser als irgendwelche Schaltungsvarianten (hilflose Bastelei) zu 
testen ist es doch die Ursache für die 0,3 V und 3,4 mA zu suchen.

Verbinde doch mal den Eingang des MAX über das Multimeter 
(Strommessbereich) mit GND. Welcher Strom fließt dann?

von Tony S. (tooony)


Lesenswert?

unsinn schrieb:
> Welcher Strom fließt dann?

Den PullDown habe ich wieder herausgenommen. Zwischen Pin 11 und GND 
fließen 20mA.

von Michael U. (amiga)


Lesenswert?

Hallo,

Tony S. schrieb:
> unsinn schrieb:
>> Welcher Strom fließt dann?
>
> Den PullDown habe ich wieder herausgenommen. Zwischen Pin 11 und GND
> fließen 20mA.

bei NICHT angeschlossenem Pin 11? Dann wirf den Chip weg...
Mit Verbindung zu CP2? Dann mißt Du den Ausgangsstrom von CP2 weil der 
auf Aktiv High ist und nicht Low oder TriState....

Gruß aus Berlin
Michael

von Tony S. (tooony)


Lesenswert?

Ich werde jetzt vermutlich dazu übergehen, den Pin einfach mit einem 
DIP-Schalter zu konfigurieren. Grundsätzlich möchte ich aber dennoch mal 
nachfragen, ob bei der Verbindung von CPx zu Pin ein PullDown genügen 
würde?

Weiterhin teste ich aktuell den RS485 Mode des MAX3160. Diesen möchte 
ich ausschließlich halbduplex nutzen. Dazu habe ich Pin 12 mit 3,3 Volt 
verbunden und Pin 15 (DE) mit CP1 des XPort. CP1 ist im Webinterface des 
XPort auf RS485 Tx Enable (High aktiv), jedoch kommt keine Kommunikation 
zustande. Busterminierung mit 120 Ohm und PullUp / Down für A und B sind 
vorhanden.

Kommt diese Beschaltung so hin und es handelt sich um einen 
Konfigurationsfehler, oder muss man hier anders herangehen? 
Grundsätzlich sollen auf den gleichen Leitungen RS232 und RS485 
(halbduplex) herausgeführt werden.

von unsinn (Gast)


Lesenswert?

>Den PullDown habe ich wieder herausgenommen. Zwischen Pin 11 und GND
>fließen 20mA.

Liest Du eigentlich, was Dir geschrieben wird?
Ein DIP-Schalter wird Dein Problem nicht lösen.

Entweder machst Du einen Meßfehler wie Michael geschrieben hat 
(Ausgangsstrom des CP2),

oder

der Baustein von Maxim ist defekt

oder

Du mißt irgendetwas anderes als den Eingang 11 des MAX.


Aber immer gilt: DIP ist nicht die Lösung. Weil das Problem noch gar 
nicht gefunden ist.

von Tony S. (tooony)


Lesenswert?

Der DIP-Schalter entspricht nicht dem eigentlichen Vorhaben, ganz klar. 
Jedoch funktioniert der MAX3160 wenn ich Pin 11 mit Vcc bzw. GND 
beschalte, dies würde ja mit dem DIP-Schalter erfolgen.

von unsinn (Gast)


Lesenswert?

>Weiterhin teste ich aktuell den RS485 Mode des MAX3160. Diesen möchte
>ich ausschließlich halbduplex nutzen. Dazu habe ich Pin 12 mit 3,3 Volt
>verbunden und Pin 15 (DE) mit CP1 des XPort. CP1 ist im Webinterface des
>XPort auf RS485 Tx Enable (High aktiv), jedoch kommt keine Kommunikation
>zustande. Busterminierung mit 120 Ohm und PullUp / Down für A und B sind
>vorhanden.

>Jedoch funktioniert der MAX3160 wenn ich Pin 11 mit Vcc bzw. GND
>beschalte, ...


Was jetzt, gehts oder gehts nicht?

von Tony S. (tooony)


Lesenswert?

Fehler gefunden! Pin 4 des MAX3160 war nicht mit Masse verbunden..... 
Entschuldigt die Aufregung, das ist blind an mir vorbeigegangen.

Funktioniert jetzt wunderbar mit den GPIOs des XPort. Zwischen CP2 und 
Pin 11 fließen knapp 10µA.

Dennoch eine weitere Frage: Die Leitungen für RS232 und RS485 
(halbduplex) sollen auf den gleichen Leitungen herausgeführt werden. 
Jetzt entsteht aber zunächst folgendes Ausgangsverhalten am Max3160:

RS232:
TX: Pin 5
Logic Input: Pin 16
RX: Pin 13
Logic Output: 8

RS485
A/Y: Pin 6
B/Z: Pin 5
Logic Input: Pin 16
Logic Output: Pin 8

Kann man problemlos Pin 13 mit Pin 6 zusammenführen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.