MCP2221 Baustein ansprechen

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Mathias
Beiträge: 6160
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 wie es aussieht, ist der MCP2221 ein Schrott IC.

http://www.linuxforen.de/forums/showthr ... -und-I%B2C)&p=1841197#post1841197

Kennt jemand einen alterantiv IC, für den MCP2221, ausser die ATtiny-Lösung: http://www.harbaum.org/till/i2c_tiny_usb/index.shtml
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
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 »

Vorläufig bleibe ich bei der Arduino Lösung, die lauft auf Linux und Windows gleich gut.

Ich konnte auf diese Art noch ein paar Messungen mehr pro Sekunde rausholen.

Ich dachte, bei der seriellen Kommunikation sei bei 115'200 Baud fertig. Ich habe mit synaser genauer angeguckt, und sehe, das es dort Raten bis 4'000'000 hat.
Der USB-UART kann auch auch viel höher als der Standard und somit konnte ich es auf 1'000'000 rauf schrauben. Jetzt kommen etwa 1/3 mehr Messungen an und somit habe ich den ADS1115 ausgereizt. :shock:

Der MCP2221 ist nicht anderes als ein AVR mit festem Programm, und dieser scheint sehr viel Overhead zu haben. Bei dem Arduino kann ich mich auf das nötigste begrenzen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MCP2221 Baustein ansprechen

Beitrag von mschnell »

Mathias hat geschrieben:Ich dachte, bei der seriellen Kommunikation sei bei 115'200 Baud fertig. Ich habe mit synaser genauer angeguckt, und sehe, das es dort Raten bis 4'000'000 hat.
Der USB-UART kann auch auch viel höher als der Standard und somit konnte ich es auf 1'000'000 rauf schrauben


Wir verwenden dauernd den "virtuellen UART" über USB um einen PC (Windows oder Linux) an einen Micro (PIC24 oder PIC32) anzukoppeln.

Die Datenübertragung-Geschwindigkeit ist dabei überhaupt nicht von der vom PC eingestellten (virtuellen) Baudrate abhängig. Die Baudrate wird (wenn sie vom PC-Programm eingestellt wird) einfach als 32 Bit Wert dem USB-Slave über einen "controll-Kanal" mitgeteilt. Es ist also jede Baudrate zwischen 0 und 2^32-1 möglich. Wir benutzen die Baudrate, um im Microprozessor alternativ verschiedene Kommunikations-Programmteile anzusprechen, die auch unterschiedliche Protokolle verwenden (z.B. Arbeits-Modus, Konfigurations-Modus, Trace-Modus, ...).

Hübscher Weise kann man im USB-Slave auch eine Kennung einstellen, mit der er sich beim PC anmeldet. Wenn man dann eine Textdatei (hochtrabend "Treiber" genannt) auf dem Windows-PC hinterlegt, zeigt der dann auch an, dass es sich nicht tatsächlich um einen "COM-Port" handelt, sondern um ein Device, dessen Name in dieser Textdatei angegeben ist.

-Michael

Mathias
Beiträge: 6160
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 Datenübertragung-Geschwindigkeit ist dabei überhaupt nicht von der vom PC eingestellten (virtuellen) Baudrate abhängig.

Ich merke da schon einen Unterschied, wen ich zB. auf 300Baud runterstelle, dann läuft das Ganze sehr gemütlich.
So wie es scheint, ist dies bei einem Atmega328 etwas anders als beim pic24 und pic32.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MCP2221 Baustein ansprechen

Beitrag von mschnell »

Beim PIC ist die Software komplett von uns. Er weiß überhaupt nicht, dass "Baudrate" etwas mit Geschwindigkeit zu tun haben könnte. Keine Ahnung was bei dem ATMega da passieren könnte.

Auf der Windows-Seite könnte die Baudraten-Einstellung irgendwelche Timeouts beeinflussen, was beim Lesen möglicherweise einen Effekt haben kann.

-Michael

Mathias
Beiträge: 6160
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 »

Haben die PIC direkt einen USB-Anschluss.
Beim Atmega, der hat nur ein Seriell-Anschluss, welcher dann mit eine USB-UART verbunden ist. Und bei diese Verbindung gibt es halt dann die verschiedenen Baudraten.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MCP2221 Baustein ansprechen

Beitrag von mschnell »

Mathias hat geschrieben:Haben die PIC direkt einen USB-Anschluss.

Ja, Viele PIC-Chips haben (mindestens) einen USB-Anschluss. PIC32 (nutzen wir in neuen Projekten nur noch) sogar OTG. Ist ein Super-Feature, weil man keine Hardware braucht um das Ding an den PC oder z.B. einen USB-Stick anzuschließen, und sofort eine Schnittstelle für Konfiguration und diverse weitere Möglichkeiten hat.
Mathias hat geschrieben:Beim Atmega, der hat nur ein Seriell-Anschluss, welcher dann mit eine USB-UART verbunden ist. Und bei diese Verbindung gibt es halt dann die verschiedenen Baudraten.
Ach so. Dann ist die Baudrate natürlich für die Übertragungsgeschwindigkeit entscheidend. Blöd, dass ein zusätzlicher USB/Seriel-Chip eingebaut werden muss und dass man die Baudrate nicht transparent parallel zum Nutzdatenstrom verwenden kann.

Ich würde sowieso immer PIC32 anstelle von ATMEGA einsetzten. (Die Firma ist ja auch inzwischen von Microchip gekauft worden und die Zukunft der "Konkurrenz-" Architektur deshalb fraglich.) Soweit ich weiß gibt es auch kompatible Module mit PIC32. PIC32 ist eine MIPS-Architektur und MIPS wird genauso wie ATMEGA als "embedded" (also ohne Betriebssystem) von FPC unterstützt.

-Michael

Mathias
Beiträge: 6160
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 »

Ist ein Super-Feature, weil man keine Hardware braucht um das Ding an den PC oder z.B. einen USB-Stick anzuschließen,

Dies ist beim Arduino auch der Fall, gut der Arduino ist ein Board, welches den Atmega und den UART verbaut haben.

Wen ich nach einem PIC32 google, sieht dies ähnlich aus.

Oder ist der PIC32 etwas zwischen Arduino und Rasberry ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MCP2221 Baustein ansprechen

Beitrag von mschnell »

Mathias hat geschrieben:Oder ist der PIC32 etwas zwischen Arduino und Rasberry ?

Nee. PIC32 ist eine Serie von Chips mit CPU (MIPS-Architektur), internem RAM und ROM (verschiedene Größen, je nach Chip-Preis (ab ca. 80 Cent) und - je nach Chip - diversen Schnittstellen (USB, Seriell, I²C, SPI, parallel I/O, massig Interrupt-Fähige Bit-Ins, Ethernet, Analog In, PWM out, Zeitmessung, CAN-Bus, ..., sehr genauer interner Oszillator (man braucht nicht unbedingt einen Quarz), bis zu 512 K RAM 2 MB Flash 250 MHZ/415 DMIPS -> http://www.microchip.com/design-centers/32-bit

Also vergleichbar mit ATMEGA Chips.

Es gibt natürlich diverse Board mit den Chips drauf (vergleichbar mit Arduino) und eben auch Arduino-kompatible "Pinguino" -> https://www.olimex.com/Products/Duino/P ... -PINGUINO/

-Michael

Mathias
Beiträge: 6160
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 Daten sehen interessant aus, ich kann mir vorstellen, das so ein PIC32 einiges schneller arbeitet als ein Atmega328.

Die Arduino-Kompatiblen sehen sehr interessant aus, nur die Frage, kann man diese mit der Arduino-IDE programmieren, oder braucht es da etwas anderes ?

Gibt es die PICs auch im DIP- Gehäuse, oder gibt es da nur SMD ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: MCP2221 Baustein ansprechen

Beitrag von Christian »

Wenn 32bitter würd ich eher Arm empfehlen Cortex-M3,4
Billiger und da gibt es den selben CPU Kern von verschiedenen Herstellern.
USB(OTG) gibts an Controllern ab ca 40ct.

Weiterhin gibts da die Toolchain kostenlos sogar die Programmiergeräte gibts als Open Source oder für 20 Eur.
Bei den PICs hab ich die Erfahrung machen müssen das Microchip ihre Toolchain sehr schlecht pflegt sowohl Hardware als auch Software seitig. Allerdings hab ich mit den PIC32 noch nichts zu tun gehabt nur kleinere Controller.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MCP2221 Baustein ansprechen

Beitrag von mschnell »

Mathias hat geschrieben:Gibt es die PICs auch im DIP- Gehäuse, oder gibt es da nur SMD ?

Ja. Ich habe hier z.B. einen auf dem Tisch: -> http://de.farnell.com/digilent/chipkit- ... 0wodkmsD3Q mit -> http://www.microchip.com/wwwproducts/en/PIC32MX250F128B

-Michael

Mathias
Beiträge: 6160
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 ich den "32MX130F064B-ISP :: PIC-Controller, 32-Bit, DIL-28" mit einem Atmega328 vergleichen, ausser, das dieser viel schneller ist ?

https://www.reichelt.de/PIC-32-Controll ... ARCH=pic32
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MCP2221 Baustein ansprechen

Beitrag von mschnell »

Ich kenne die ATMegas nicht im Detail und habe aus den vorher diskutierten Gründen auch keine Lust mich damit zu beschäftigen. Für solche Projekte würde ich immer einen PIC32 oder einen ARM-basierten Chip nehmen. Ich würde auch keinen Chip ohne USB OTG einsetzen.

-Michael

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 »

@Mathias
Um deine Frage zu beantworten, würde ich sagen: Nein, man kann sie nicht vergleichen:
Es gibt zu viele Unterschiede, laut den Daten die ich bei reichelt sehe, mehr IO Pins, mehr Geschwindigkeit, mehr ADC, mehr Timer und soweiter.

Beim Speicher stecht nur 16 welcher Speicher ist damit gemeint? RAM? FlASH? welche Einheit? KB?

Ich denke der 32MX130F064B-ISP ist dem atMega328 weit überlegen. der atMega328 kostet ja noch mehr und kann noch weniger....
(habe mir noch nicht das Datenblatt angeschaut).

Ich denke, der einzigste Gemeinsamenenner dürfte sein, dass sich beide denke ich mit der Arduino IDE nutzen lassen.
MFG
Michael Springwald

Antworten