Person von den ich mein I²C Adapter habe, hat folgendes geschrieben dazu:
USB <-> I²C gibts diverse Lösungen, der FTDI auf dem N900 Adapter den ich gezeigt hatte, kann z.B. auch I²C. Der große Unterschied zu I2C-Tiny-USB: Fehlender out-of-the-box Support im Linux-Kernel. Ich bin zu faul gewesen einen Kernel-Treiber zu schreiben
USB basierte I2C-Master, welche vom Kernel supportet werden:
Zum Glück liegt, die Firmware ja scheinbar als HEX Datei vor. Was ja ganz Praktisch ist. Ich habe eben nur "Grob" drüber geschaut.
Bei meinen ersten Test, klappte es ganz gut. Es gibt aber auch Fertige Platinen für I²C nach USB. Die im Prinzip das gleiche machen, wie der I²CTinyUSB.
Was ich auch noch testen möchte ist, ob ich auch eigene I²C Platinen Einbinden kann oder eben weitere Komponenten. Wenn ich wieder Zuhause bin, werde ich es mal ausprobieren, bei einer Gelegenheit.
Im Prinzip sollte es eigentlich zu keinen Messfehlern kommen, wenn du den I²C von der Grafikkarte nutzt, aber ich frage die Tage noch nach.
Ich denke, es wird bei einem Eigenbau einfacher sein, das Ganze mit einem MCP2221 zu bauen.
Das sehe ich auch so. Ich haben das Bauteil zwar nicht direkt angesehen. Aber meine "Quelle" meinte, dass es dafür noch keine direkte Treiber Unterstützung gibt.
Auf der anderen Seite: Die Paar Bauteile auf der Platine sahen jetzt auch nicht so aufwendig auf. Man könnte es auch einfach auf ein Lochraster löten. Du brauchst ja keine SMD Bauteile zu verwenden.
Jedenfalls für diesen Baustein, wenn ich es richtig in Erinnerung habe.
Die Paar Bauteile auf der Platine sahen jetzt auch nicht so aufwendig auf. Man könnte es auch einfach auf ein Lochraster löten. Du brauchst ja keine SMD Bauteile zu verwenden.
Das habe ich auch vor, das ist ein grosser Vorteil des MCP2221, das dieser auch als normaler DIP erhältlich ist.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Das man mit fpIOCtl auch die COM-Ports einstellen kann, das hat Google ausgespuckt.
Der System-Call IOCtl ist sehr generisch. Unter Linux wird verschiedene Hardware über Dateien im Dateisystem angesprochen. Daher hängt es von den hinter den Dateien liegenden Treibern ab, welche Befehle für die jeweilige Datei unterstützt werden.
MfG Socke Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Der System-Call IOCtl ist sehr generisch. Unter Linux wird verschiedene Hardware über Dateien im Dateisystem angesprochen. Daher hängt es von den hinter den Dateien liegenden Treibern ab, welche Befehle für die jeweilige Datei unterstützt werden.
Ich könnte mir vorstellen, wen man als device /dev/hda nehmen würde, könnte man damit sogar den Kopf der HD positionieren und somit dann mit fpWrite in den richtigen Sektor schreiben.
fpxxxx sieht mir stark nach Free-Pascal aus, ich denke, es gibt sicher irgendwo eine Tabelle, wo die Kommandos beschrieben sind.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mathias hat geschrieben:fpxxxx sieht mir stark nach Free-Pascal aus, ich denke, es gibt sicher irgendwo eine Tabelle, wo die Kommandos beschrieben sind.
Die Unit BaseUnix macht die wichtigsten POSIX-Betriebssystemaufrufe (System Call) in jeweils einer Funktion verfügbar. Es wird einfach ein fp vor den Namen des System Calls gesetzt. Die Parameter werden aber direkt an das Betriebssystem weitergeleitet.
MfG Socke Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Der Serielle UART-Teil, erscheint sogar ohne externe Treiber als /dev/ttyACMx.
So nun habe ich die Treiber gemäss dieser Anleitung installiert. Somit habe ich eine Device /dev/i2c-3 bekommen, die Device 0-2 sind von der Graka schon verbucht. Jetzt habe ich für meine Messeinheit vom VGA-I²C getrennt und an den MCP2221 angeschlossen, und es scheint auf Anhieb zu laufen.
Ein grosser Wermuttropfen hat es trotzdem, es misst schätzungsweise etwa über 10x langsamer, als über den VGA.
Wird der USB-Zugriff irgendwo abgebremst, so wie es unter Windows, bei "Systemsteuerung/System/Hardware/Geräte-Manager/Anschlüsse/USB-Serial/Anschlusseinstellungen/Erweitert/Delay" , bei denUSC-COM-Port der Fall ist ? Dort ist Standard-mässig ein sehr grosses Delay eingestellt.
Oder kann man etwas mit fpIOCtl() machen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot