Forum: Mikrocontroller und Digitale Elektronik UART zu I2C bei Ev3 NXT Sensoren


von Felix K. (listerstorm)


Lesenswert?

Liebe Community,

ich habe ein Problem und hoffe die netten Menschen hier können mir 
helfen.

Es geht darum einen Lego Mindstorms Sensor vom neueren Eve System an das 
alte NXT System zu bekommen.

Der Eve Sensor verwendet Uart und NXT verwendet I2c. Ich habe bereits 
Adapter gefunden, womit man den Eve Sensor einfach am NXT anschliessen 
kann.

So der Punkt ist, diese Adapter sind nicht mehr zubekommen oder so 
extrem teuer das es sich bei weitem nicht mehr lohnt.

Also muss ein eigener Adapter her. Für diesen Zweck habe ich auch 2 
Chips gefunden: von NXP den SC18IM700 und den MAX3108. Die Uart und I2c 
mit einander verbinden.

Soweit so gut. So wo ist nun das Problem? Das Problem bin ich. Ich kann 
sicher wie unter diesem Link 
(https://www.sparkfun.com/products/retired/9981) alles zusammen Löten 
und auch die Leitungen der Sensoren bzw. des NXT Bausteins anschliessen. 
Aber danach habe ich keine Ahnung mehr. So wie ich es als Laie sehe 
müssen der SC18IM700 und MAX3108 noch eingestellt werden damit diese 
korrekt funktionieren. Beim Programmieren ist aber bei mir der Ofen aus.

Daher suche ich eine Lösung die meine Fähigkeiten nicht überschreitet 
und noch bezahlbar ist. Meine große Hoffnung ist zwar das z.B. der 
SC18IM700 mit den Werkseinstellungen und ohne Einstellungen vorzunehmen 
funktioniert, aber irgenwas sagt selbst mir so einfach dürfte das nicht 
sein.

Daher hoffe ich das es hier Jemanden gibt der mir evtl. Helfen kann. Ich 
bedanke mich aber bei allen die sich die Mühe gemacht haben dies alles 
zu lesen und es zumindest versuchen mir zu helfen.

Viele Grüße
Felix

von Felix K. (listerstorm)


Lesenswert?

So knapp ein Monat ist vorbei. Leider noch keine Antwort bis jetzt. 
Evtl. hätte ich nicht den Bezug zu Ev3 und Nxt von Lego machen sollen. 
Lenkt etwas vom UART/I2C Problem ab.

Nun gut würde mich freuen, wenn sich evtl. nun jemand finden lassen 
würde der mir Helfen könnte.

Viele Grüße

Felix

von Stefan F. (Gast)


Lesenswert?

Der EV3 hat doch sicher wie sein Vorgänger auch eine RS485 
Schnittstelle. Die kannst du viel leichter auf UART umsetzen.

Die Umsetzung von I2C zu UART und zurück ist gar nicht so einfach 
möglich, weil die Protokolle zu unterschiedlich sind. Das würde nur mit 
Softwareunterstützung auf beiden Seiten gehen. Oder man müsste einen 
Chip (z.B. µC) dazwischen setzen, der das serielle Protokoll zu deines 
Eve Systems (was auch immer das sein mag) kennt und umsetzt.

Einen transparenten Umsetzer, ähnlich einem Transformator oder eine 
Ethernet/WLAN Brücke wirst du wohl kaum finden. Ich glaube nicht, das es 
so etwas überhaupt geben kann.

von Felix K. (listerstorm)


Lesenswert?

Erst mal vielen Dank für deine Anwort. Der Ev3 und alle seine Sensoren 
arbeiten (bis auf die Analog komponenten und Motoren) ausschlißlich mit 
UART während der NXT eben nur I2C kann.

Es gibt bereits einen Adapter der wird schlicht zwischen den Sensoren 
und der Rechnereinheit gesteckt und gewährleistet die reibungslose 
Verständigung zwischen I2C und UART ohne Probleme in beide richtungen. 
Ohne weitere Eingriffe in irgend einer Art und Weise. Hier mal den Link:

http://www.mindsensors.com/ev3-and-nxt/60-ev3-sensor-adapter-for-nxt-or-arduino

Weil dieser Adapter nicht mehr verkauft wird und selbst wenn nicht nach 
Deutschland verschickt wird versuche ich diesen selber zu bauen.

Wie ich erfahren habe sollte ein SC18IM700 das Problemlos schaffen. Nur 
da hört es für mich auf. ich kann sicherlich alles zusammen löten, 
basteln was auch immer nur wie man den einstellt null Plan. Ich kann 
max. den Videorecorder einstellen das wars. Ich hoffe ich konnte mein 
Problem nochmal ein bischen besser darstellen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Felix K. schrieb:
> Wie ich erfahren habe sollte ein SC18IM700 das Problemlos schaffen.

Der hilft Dir nicht.

Dieser Baustein ist ein I2C-Master, mit dem andere I2C-Geräte 
angesteuert werden können). Angesprochen wird dieser Baustein über eine 
UART-Schnittstelle, darüber kann er mit einem µC verbunden werden, der 
damit eine I2C-Schnittstelle "nachgerüstet" bekommen kann.

Einen I2C-Master aber hast Du bereits, der steckt in Deinem 
Mindstorm-Gerät drin, das damit die alten Sensoren ansteuert.

Um neue Sensoren zu adaptieren, brauchst Du etwas, was als Gerät am 
I2C-Bus hängen kann und das UART-Protokoll der neuen Sensoren spricht.

Es gibt UARTs, die I2C-Geräte sind, die kann man via I2C an einen 
I2C-Master anschließen und damit eine UART "nachrüsten".

NXP stellt so etwas auch her, aber so etwas wird Dir mit hoher 
Wahrscheinlichkeit auch nicht helfen, denn damit das irgendeinen Sinn 
hat, muss der I2C-Master (also Dein Mindstorm-Controller) einerseits 
wissen, wie er mit der UART zu "reden" hat und andererseits musst Du 
wissen, wie das, was hier "UART" genannt wird, auf das neue 
Mindstorm-System adaptiert wird.

Denn das ist nicht einfach "UART", sondern es wird irgendeine Art Bus 
sein, der ein Protokoll verwendet, d.h. es fehlen Informationen sowohl 
über das elektrische Interface (wird z.B. RS485 verwendet?) als auch 
über das Protokoll (Paketstruktur, Übertragungsparameter etc.).

Mit "passiver" Elektronik, d.h. ohne einen eigens für die Aufgabe 
programmierten µC wird das nicht lösbar sein.

Und genau so ein eigens programmierter µC wird in dem nicht mehr 
vertriebenen Adapter drinstecken.

von Scelumbro (Gast)


Lesenswert?

Der NXT kann eben nicht nur I2C sondern auf Port 4 auch RS485.
Und damit ist die Schnittstelle relativ simpel. Man braucht nur einen 
Transceiver und nutzt die, eigentlich RCX Sensoren vorgesehene , 
Möglichkeit auf der analogen Leitung 9V zuzuschalten für den Wechsel der 
Senderichtung. Ein einfaches Beispiel:
http://stefanshacks.blogspot.de/2015/04/connecting-lego-mindstorms-ev3-uart.html?m=1

Das Protokoll ist übrigens sehr ärgerlich, den es beinhaltet einen 
Baudrate Wechsel mit einzuhaltendem Timing. Absurd overengineered wenn 
man mich fragen würde.

von Joerg W. (joergwolfram)


Angehängte Dateien:

Lesenswert?

Laut LEGO MINDSTORMS EV3 Hardware Developer Kit kann der EV3 auch I2C, 
wenn auch recht gemächlich. Da wundert es mich jetzt etwas, dass man 
extra einen µC für die Umsetzung nach UART braucht. Aber vielleicht 
hängt das ja mit der begrenzten I2C Geschwindigkeit zusammen.

Jörg

von Stefan F. (Gast)


Lesenswert?

> Aber vielleicht hängt das ja mit der begrenzten I2C
> Geschwindigkeit zusammen.

Der NXT war auch nicht schneller.

von homa (Gast)


Lesenswert?


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.