USB zu I2C Bus - Interface

Dieses Thema im Forum "Hardware" wurde erstellt von achim S., 8. September 2018.

  1. achim S.

    achim S. Mitglied

    Registriert seit:
    16. Januar 2010
    Beiträge:
    386
    Zustimmungen:
    6
    Punkte für Erfolge:
    18
    Sprachen:
    C
    Hallo
    bin wieder auf der suche nach einem Teil. Es gibt von verschiedenen Herstellern kleine Interface mit einem USB Anschluss und einem Anschluss zum I2C Bus. Die Preisspanne liegt bei ca. 20 Euro bîs zu 500 Euro. Ist mir einfach zu viel Euro. Als Software wird sehr oft HTerm angegeben, z.B. bei ELV. Leider ist diese Software (letzte Version) von 2008. Ist in der heutigen Zeit schon sehr alt.
    Kennt jemand was neues dazu?
    Wie kann ich diese Software benutzen?
    Habe leider Ahnung wie das geht. Gibt es was einfaches dazu?
    Oder gibt es was mit WLAN? Programm mit Funktion was ich verstehe?
    achim
     
  2. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.278
    Zustimmungen:
    8
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Hallo @achim S.
    was hast du denn genau vor? Muss es unbedingt USB sein oder reicht auch ein VCP?
     
  3. achim S.

    achim S. Mitglied

    Registriert seit:
    16. Januar 2010
    Beiträge:
    386
    Zustimmungen:
    6
    Punkte für Erfolge:
    18
    Sprachen:
    C
    Was meinst du mit VCP?
    Eigentlich ist gedacht, Daten über den PC einzugeben oder anzuzeigen. Bei HTERM geb ich ja nur irgendwelche Zahlen ein. Schöner ist ein Programm das mir verschiedene Flächen anzeigt und ob ein Teil aus oder an ist. Kenn sowas vom Handy, z.B. schalten von Licht durch antippen vom Display. Vielleicht kann man das ganze in Grösse und Form angeben und vielleicht auch den verkehr mitlesen. Einige gibt es dazu schon.
    Habe auch ein Teil für WLAN zu liegen, Typ ???, geht über den Router, bloss wie geht das oder wie progrmiert man es?
    achim
     
  4. addi

    addi Mitglied

    Registriert seit:
    2. September 2013
    Beiträge:
    105
    Zustimmungen:
    3
    Punkte für Erfolge:
    18
    Sprachen:
    BascomAVR, C, Assembler
  5. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.278
    Zustimmungen:
    8
    Punkte für Erfolge:
    38
    Sprachen:
    C
    In wie fern kennst du dich denn mit der GUI Programmierung aus? Also hast du schon mal Programme für den PC geschrieben?

    VCP = VirtualComPort = VirtuelleSerielleSchnittstelle.
    Die erzeugt dir so ziemlich jeder USB - Seriell Wandler. Ich benutze sehr gerne den CP2120 als solchen.

    Eigentlich ist dein Vorhaben relativ simpel. Da du ja anscheinend genau weißt was der Controller tun soll nach Befehl "X", kannst du so eine Art "State Mashine" bauen..
     
  6. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.982
    Zustimmungen:
    45
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    Das wäre 'n SPI <--> I²C Wandler. Da kann man natürlich ICs vorsetzen, die von USB (ggf über TTL-UART) auf SPI wandeln. Zum Beispiel auch mit einem AVR.

    Gesucht ist aber eigentlich ein USB <--> I²C Wandler, oder hab ich das falsch verstnden? Von FTDI gibts da zB den FT260 oder denFT4222H.
    (die über die verfügbare API, zB von dotnet aus anzusprechen traue ich hier allerdings am ehesten @TommyB zu (*Herrausforderungshandschuh-ins Gesicht-Klatsch))

    Variante drei wäre ein stinknormaler Standard-USB-TTL-UART-Wandler und dahinter ein kleiner AVR, der von UART auf I²C weiterwandelt.
    Oder ein AVR mit USB-Schnittstelle.
     
  7. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.278
    Zustimmungen:
    8
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Achherje, du hast natürlich Recht! Ich meinte auch eher den CP2102.

    Eigentlich habe ich daran gedacht das er das selber machen wollte?! Naja.. Ist doch eigentlich ganz easy..
    Man hat eine GUI ( vermutlich möchte er es vom Rechner aus steuern.. ) und mit dieser sendest du die Befehle ( über USB -> TTL Umsetzer ) auf deine CPU.
    In deinem "Protokoll" musst du eben I2C Adresse , lesen / schreiben , Register Adresse , Datenbytes.. verankern.
    Und im Mikrocontroller kann er das dann eben als I2C umsetzen.
     
    #7 Janiiix3, 9. September 2018
    Zuletzt bearbeitet: 9. September 2018
  8. achim S.

    achim S. Mitglied

    Registriert seit:
    16. Januar 2010
    Beiträge:
    386
    Zustimmungen:
    6
    Punkte für Erfolge:
    18
    Sprachen:
    C
    Mit GUI kenne ich mich garnicht aus. Hatte ein paar Wrfahrungen mit HTERM gemacht und war ziemlich enttäuscht. Für mich ist das recht eigenwillig und kompliziert. Beim HTERM bleibend sehe ich es veraltert an. Die Idee dabei ist für die damalige Zeit passend. Aber für heute ...
    Nehmen wir das Beispiel WLAN. Es gibt APPs fürs Handy mit Anzeige von 4 oder 8 Schaltflächen mit Ein und Aus und mehrere Balken zum ziehen. Damit kann man z.B. LEDs Typ WS.. steuern, Entweder ein oder aus oder Helligkeit oder Farbe zu steuern. Das läuft alles unter Terminalprogramme. Nehmen wir ein anderes Beispiel. Von der Firma ELV gibt es kleines Teil mit einem CP (Typ??) drin. Da kann man USB anschliessen und bis zu 3 x I2C. Programmierung geht wieder über HTERM und ist recht eigenwillig. Kann man so ein Teil nicht einfacher anwenden?
    Leider passe ich bei der GUI (???) und Handyprogrammierung vollkommen.
    Es gibt auch fertige Teile mit Netzwerkanschluss und weiter zum Bus. Da ist wieder das Problem der Programmierung. Von Elektor ist letztes Jahr ein Teil veröffentlicht worden mit dem ESP. Gefällt mir sehr gut, leider wieder das selbe Problem.
    Vielleicht könnte mir jemand dabei weiter helfen.
    achim
     
  9. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    264
    Zustimmungen:
    19
    Punkte für Erfolge:
    18
    Sprachen:
    C, Assembler
    Hterm ist ein bewährtes und beliebtes Terminalprogramm. Es tut genau das, wofür es gemacht ist.
    Es sind anscheinend seit zehn Jahren keine Fehler mehr gefunden worden, warum sollte es also eine neuere Version geben?

    PuTTY gibt es auch für Windows und Linux. Es gibt sogar eine Version, die man nicht installieren muß.

    Aber Du suchst ja wohl kein Terminalprogramm, sondern was ganz anderes...
     
    #9 Mikro23, 9. September 2018
    Zuletzt bearbeitet: 9. September 2018
  10. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.278
    Zustimmungen:
    8
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Was möchtest du denn jetzt eigentlich genau machen? Das verstehe ich noch nicht so ganz..
    Du suchst etwas was dir Daten auf dem I2C Bus ausgibt? Was hast du damit vor? Was willst du steuern? Was soll es können, deine "Hardware" ?
     
  11. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.278
    Zustimmungen:
    8
    Punkte für Erfolge:
    38
    Sprachen:
    C
    Ansonsten..
    Wenn du nicht wirklich viel selber machen möchtest, kannst du auch den "ESP32" nehmen. Der hat direkt WLAN und damit kannst du die meisten Sachen erschlagen.
    Da gibt es auch eine ziemlich große Community.

    Hier mal ein Link..
    https://www.elektormagazine.de/news/mein-weg-in-das-iot-21-wlan-netzwerk-mit-dem-esp32-lebenszeichen

    Du könntest den ESP32 als Schnittstelle für das WLAN nehmen und dahinter evtl. noch einen ATMEL setzen und damit dann deine anderen Hardware geschichten regeln, falls du es mit dem "ESP32" nicht schaffen solltest..
     
  12. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.982
    Zustimmungen:
    45
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    Davon hat er ja bisher noch nichts gesagt. Möglicherweise ist ihm selbst nicht klar, was genau er eigentlich will.
    Erstens:
    Er sucht nach einem USB zu I²C - Wandler, aber 20..500€ sind ihm zu teuer.
    • Es gibt entsprechende ICs, die genau das tun, ähnlich den populären USB-UART Wandlern.
    • Man kann hinter einen (ggf bereits vorhandenen) USB-UART-Wandler einen AVR klemmen, der den protokollarischen Teil abhandelt, und seinerseits einen irgendwie angebundenen I²C-Wandler ansteuert.
    • Analog dazu kann der AVR dann auch gleich sein eigenes I²C verwenden.
    • PC-seitig kann der AVR natürlich auch selbst mit USB kommunizieren - entweder verfügt er über die nötige Hardware-Schnittstelle, oder die Software muß das erledigen.
    Von den Kosten her wäre die letzte Variante wohl am billigsten - allerdings wird mehr als USB 1.? Timingtechnisch nicht machbar sein, und das unterstützen wohl nicht mehr alle aktuellen OS/aktuelle Hardware. Von der Umsetzung her am einfachsten wäre die vorletzte Variante - wenn man die AVR etwas programmieren kann.

    Zweitens:
    Will er keine übertragenen Bytes sehen, sondern eine graphische Oberfläche, aber er sagt eben nicht, für was konkret. Als ich damals mein STK500Control (-> Ressourcen) angefangen habe, hab ich das Ding auch erstmal via hterm angesteuert, und dann ein entsprechendes VisualBasic-Programm mit GUI implementiert.
    Thomas hatte (damals noch arbeitslos, AFAIR) mal für irgendein Digitalmultimeter mit serieller Ausgabe 'ne GUI implementiert, weil ihm die (nicht weiter gepflegte) Originalsoftware aus irgendwelchen Gründen missfiel. (Wobei sich die Hilfe durch das Forum nur auf die Interpretation der Datentelegramme im Reverse Engineering beschränkte).

    P.S.: Stand hier nicht schon mal (Forenprojekt oder so) sowas zur Debatte? USB auf serielle Schnittstelle Konverter (SPI/I²C/1wire/whatever, ggf genau so mit einem AVR), dazu ein entsprechendes Protokoll, um beim AVR Tempo usw zu konfigurieren, und das ganze dann PC-seitig in einer entsprechenden GUI verpackt.
    Also mich würd's irgendwann mal interessieren - schon allein, um mal etwas mit den OLEDs zu spielen (ohne da jedesmal 'n Controller zu flashen). Wenn die Software ordentlich aufgebaut wird (also die Ansteuerung des Schnittstellen-AVR als Bibliothek oder so), könnte man das auch zum schreiben/lesen von Speicher-ICs, SD-Karten etc verwenden. Oder irgendwelche Sensoren auslesen/loggen...
     
  13. achim S.

    achim S. Mitglied

    Registriert seit:
    16. Januar 2010
    Beiträge:
    386
    Zustimmungen:
    6
    Punkte für Erfolge:
    18
    Sprachen:
    C
  14. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.707
    Zustimmungen:
    57
    Punkte für Erfolge:
    48
    Sprachen:
    Assembler, LunaAVR, VB.Net, Python, C#
    @LotadaC
    USB != USB.
    Es gibt die VCP, das wäre am einfachsten umsetzbar.
    Dann gibt es USB HID. PC-seitig schon komplizierter das umzusetzen, da fast alle Quelltexte die im Netz stehen die einen Zugriff ermöglichen fehlerhaft sind und - wenn überhaupt - nur auf 32 Bit oder 64 Bit Systemen funktionieren. Trotzdem, nahezu unbrauchbar, da pro Datenpaket maximal 8 Bytes (USB 1.1) oder 64 Bytes (USB2). Anzahl der Pakete pro Sekunde war limitiert, ich glaube 2-5 pro Sekunde? Irgendwo in dem Rahmen.
    Last but not least: "Normales" USB. Das steht mir noch bevor. PC-seitig befürchte ich ähnliche Probleme wie mit USB HID.
    Hin oder her, Controllerseitig sehe ich da für mich den Totpunkt weil USB sehr Komplex ist...

    Und ich glaube die Projektidee stammte mal von mir.
    Kommunikation jetzt mal weg gelassen wäre die Software beiderseits kein Problem.
     
  15. Janiiix3

    Janiiix3 Aktives Mitglied

    Registriert seit:
    28. September 2013
    Beiträge:
    1.278
    Zustimmungen:
    8
    Punkte für Erfolge:
    38
    Sprachen:
    C
    mehr als kompliziert! So viel Overhead für ein mehr oder weniger "kleines" Projekt..
    VCP reicht da voll und ganz.
     
  16. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.707
    Zustimmungen:
    57
    Punkte für Erfolge:
    48
    Sprachen:
    Assembler, LunaAVR, VB.Net, Python, C#
    Für I²C auf jeden Fall. SPI wird schon schwieriger. Das COLED befeuer ich mit 2MBit, das schafft ein VCP nicht mehr (auch wenn er vorgibt es zu können). Da muss dann "echtes" USB ran.
    Was SD Karten angeht ist aber Vorsicht geboten. Nicht jede SD Karte unterstützt I²C. Bei MMC Karten war das vorgeschrieben, bei SD nur empfohlen. Bin darauf schon reingefallen.
    BT wäre im Endeffekt auch nur VCP, nur halt kabellos und in langsam.
    WLAN... Die Ersteinrichtung wirklich Kundenfreundlich hin zu bekommen ist so eine Sache für sich...
     
  17. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.982
    Zustimmungen:
    45
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    OT:
    Was bezüglich meinst Du das?
    Mir gings erstmal nur um die Datenraten - Soft-USB auf einem AVR kenne ich bisher nur mit USB1.0, zB mein alter AVRisp-Klon auf einem Mega8 - und der wird auf 'nem modernen Rechner (meinetwegen auch wegen dem Betriebssystem) gar nicht erst erkannt (auf dem alten Rechner aber schon).
    Mit AVR mit Hardware-USB hab ich mich nicht beschäftigt.

    Die meisten USB-(TTL-)UART-Wandler sind VCP, entsprechend einfach ist die Anwendung auf beiden Seiten. Lediglich die Erkennung des jeweiligen Ports...

    Wegen USB-I²C (direkt vom PC aus) hatte ich ja auf den FT4222H hingewiesen, und da gibts eben herstellerseitig zumindest für Windows 'ne Library (LibFt4222), und deren erfolgreiche Verwendung würde ich am ehesten Dir, Thomas, zutrauen...
    Natürlich dann mit dem D2XX-Driver...
     
  18. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.707
    Zustimmungen:
    57
    Punkte für Erfolge:
    48
    Sprachen:
    Assembler, LunaAVR, VB.Net, Python, C#
    Um die Datenraten hab ich mich nie so gekümmert, USB HID weiß ich nur, da wirds sehr wenig sein.
    Und eine lib / dll, ist stark abhängig wie die aufgebaut ist. Ich hatte hier beispielsweise n Chip von TI, da saß ein Entwicklerteam von 3 Leuten ca. 1 Monat dran, nur um den einzubinden. Ich darf mich bald auch mit der libUSB auseinandersetzen. Lange Rede kurz: Da "freue" ich mich schon sehr drauf...
     
  19. achim S.

    achim S. Mitglied

    Registriert seit:
    16. Januar 2010
    Beiträge:
    386
    Zustimmungen:
    6
    Punkte für Erfolge:
    18
    Sprachen:
    C
    Hallo Thomas
    schon möglich das es mal von dir angeregt wurde. Falls so sit entschuldige bitte für den Raub. Hatte immer gehofft das es in der heutigen Zeit was passendes gibt. Gerade mit dem Handy wird so viel gemacht. Da wird es einfach Zeit sich mit der Sache zu beschäftigen. Es kann nicht schaden wenn man dem I2C Bus die grosse Welt zeigt. Mit einer Pseudo Anwendung geht es ja. Einfach die Ausgänge von dem oben genannten Board aif einen PCF8574 schalten und man hat 8 Eingänge oder Ausgänge. Ist halt die Sparversion. Was grösseres ist halt komplizierter. Brauchen nur noch einen der sich rantraut.
    achim
     
  20. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.707
    Zustimmungen:
    57
    Punkte für Erfolge:
    48
    Sprachen:
    Assembler, LunaAVR, VB.Net, Python, C#
    War ja kein Raub, eher eine Wiederbelebung ;)
    Ich finde den Thread aber auch nicht mehr, ist schon ewig her.
     
  • Über uns

    Unsere immer weiter wachsende Community beschäftigt sich mit Themenbereichen rund um Mikrocontroller- und Kleinstrechnersysteme. Neben den Themen Design von Schaltungen, Layout und Software, beschäftigen wir uns auch mit der herkömmlichen Elektrotechnik.

    Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  • Coffee Time

    Unser makerconnect-Team arbeitet hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und unser eigener makerconnekt-Server regelmäßig gewartet wird. Wir nehmen das Thema Datensicherung und Datenschutz sehr ernst und sind hier sehr aktiv, auch sorgen wir uns darum, dass alles Drumherum stimmt!

    Dir gefällt das Forum und die Arbeit unseres Teams und du möchtest es unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft, unser Team freut sich auch über eine Spende für die Kaffeekasse :-)
    Vielen Dank!
    Dein makerconnect-Team

    Spende uns! (Paypal)
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren und die Seite optimal für dich anzupassen. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden