MCP2221 Baustein ansprechen

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Mathias
Beiträge: 6167
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MCP2221 Baustein ansprechen

Beitrag von Mathias »

Ach ja und noch was ist mir aufgefallen: Warum hast du den eigentlich an die Grafikkarte angeschlossen?

Ich habe nicht den MCP2221 an der Grafikkarte angeschlossen, sonder ein ADS1115.
Wie schon gesagt, der MCP2221 muss ich erst bestellen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: MCP2221 Baustein ansprechen

Beitrag von pluto »

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:

* https://diolan.com/u2c12 (ausverkauft, 90$)
* https://diolan.com/dln-2 (90$)
* http://nanorivertech.com/viperboard.html (~110$)
* http://www.harbaum.org/till/i2c_tiny_usb/index.shtml (das ist die Lösung von mir)
* http://headfuzz.co.uk/USBtoI2C (ne andere selbstbau variante)
MFG
Michael Springwald

Mathias
Beiträge: 6167
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MCP2221 Baustein ansprechen

Beitrag von Mathias »

http://www.harbaum.org/till/i2c_tiny_usb/index.shtml (das ist die Lösung von mir)

Gibt es für den auch einen Arduino-Sketch ?
Die Download auf der Seite gehen alle ins leere.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: MCP2221 Baustein ansprechen

Beitrag von pluto »

Ich kann es runterladen.
MFG
Michael Springwald

Mathias
Beiträge: 6167
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MCP2221 Baustein ansprechen

Beitrag von Mathias »

Jetzt geht es bei mir auch, ich hätte nicht gedacht, das der Scetch dazu so komplex ist. :shock:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: MCP2221 Baustein ansprechen

Beitrag von pluto »

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.
MFG
Michael Springwald

Mathias
Beiträge: 6167
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MCP2221 Baustein ansprechen

Beitrag von Mathias »

Ich denke, es wird bei einem Eigenbau einfacher sein, das Ganze mit einem MCP2221 zu bauen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: MCP2221 Baustein ansprechen

Beitrag von pluto »

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.
MFG
Michael Springwald

Mathias
Beiträge: 6167
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MCP2221 Baustein ansprechen

Beitrag von Mathias »

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

Mathias
Beiträge: 6167
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MCP2221 Baustein ansprechen

Beitrag von Mathias »

Kann man mit fpIOCtl noch andere Parameter ausser die Adresse des I²C-Gerätes einstellen ?

Code: Alles auswählen

  fpIOCtl(I2CHandle, I2C_SLAVE, pointer(i2C_Addr));


Das man mit fpIOCtl auch die COM-Ports einstellen kann, das hat Google ausgespuckt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: MCP2221 Baustein ansprechen

Beitrag von Socke »

Mathias hat geschrieben:Kann man mit fpIOCtl noch andere Parameter ausser die Adresse des I²C-Gerätes einstellen ?

Code: Alles auswählen

  fpIOCtl(I2CHandle, I2C_SLAVE, pointer(i2C_Addr));


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

Mathias
Beiträge: 6167
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MCP2221 Baustein ansprechen

Beitrag von Mathias »

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

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: MCP2221 Baustein ansprechen

Beitrag von Socke »

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

Mathias
Beiträge: 6167
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MCP2221 Baustein ansprechen

Beitrag von Mathias »

So nun habe ich den MCP2221 bekommen und angeschlossen.
Immerhin wird er mal unter den USB-Geräten gelistet.

Code: Alles auswählen

Bus 002 Device 006: ID 04d8:00dd Microchip Technology, Inc. 
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6167
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MCP2221 Baustein ansprechen

Beitrag von Mathias »

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

Antworten