Frage zu Treibern

Hallo, ich bemühe mich gerade einige Zusammenhänge zu verstehen und bräuchte dabei etwas Hilfe. Meine Frage bezieht sich darauf, welcher Teil des Arduinos einen Treiber braucht, um mit einem PC kommunizieren zu können - Der Mikrocontroller ATMEGA328P-PU oder der MEGA16U2?

So wie ich das verstehe (...), übersetzt der ATMEGA16U2 die Informationen welche der ATMEGA328P-PU liefert so, dass der PC über USB diese versteht und umgekehrt, richtig?

Deswegen braucht man einen Treiber für den MEGA16U2 und nicht für den ATMEGA328P-PU, oder braucht man für beides einen Treiber?

Was ist dieser MEGA16U2 eigentllich genau? auch ein Mikrocontroller? Mit welcher exakten Funktion?

Vielen Dank für eure Hilfe! Ich komme mit der Arduino-Seite und meinen Bücher nicht weiter, weil es da nicht/nur kurz und abstrakt erkklärt ist.

Liebe Grüße

Du brauchst keinen Treiber für den ATMEGA328P und für den ATMEGA16U2 auch nicht. Du brauchst einen Treiber für dein Betriebsystem, damit es mit dem ATMEGA16U2 quatschen kann. Der ATMEGA328P braucht einen Bootloader, damit der ATMEGA328P, über den ATMEGA16U2, vom PC programmiert werden kann.

Der ATMEGA16U2 dient als Seriellwandler, von USB auf UART Und ja, es ist ein µC Andere Wandler tun es genau so gut...

IO_HYBRIS_OI: Was ist dieser MEGA16U2 eigentllich genau? auch ein Mikrocontroller? Mit welcher exakten Funktion?

Zum Mega16U2 guckst Du am besten ins Datenblatt, das es hier gibt.

Was die Treiber angeht, liegst Du IMO richtig.

Gruß

Gregor

Das gibt es auch getrennt: ProMini mit Atmega328 und CP2102 Modul für USB nach Serieller Schnittstelle. Zum Programmieren steckt man die beiden zusammen, wenn das Programm fertig ist, werden sie getrennt. Beim Betriebssystem angemeldet ist nur das CP2102 Modul.

Nur mal so: Wenn ich 100 UNOs programmieren will, zählt der COM-Portzähler mit jedem UNO immer weiter. Bei 100 ProMinis brauche ich nur einen COM-Port für das CP2102 Modul.

Der ATmega16U2 ist ein Microcontroller der als USB-Serial-Adapter programmiert ist. Er ersetzt den auf den älteren Arduinos vorhandenen FT232. Chinesische Nachbauten haben häufig einen CH340. Der CP2102 oder PL2303 machen das gleiche. Der USB-Serial-Adapter ermöglicht es den Arduino über USb zu programmieren.

Der Vorteil des ATmega16U2 daß Du ihn umprogrammieren kannst und der Arduino vom PC als HID gesehen werden kann. Dann ist die Programmierung über USB aber nicht mehr Möglich.

Der Arduino, wie alle ATmega können ohne USB über einen ISP-Programmierer programmiert werden. Den ISP-Programmierer Braucht es umbedingt um den Bootloader bzw einstellungen im ATnega (fuse) zu programmieren. Zum ISP Programmieren gibt es auf den Arduinos dies 6 Poligen (3x2) Stiftleisten.

Grüße Uwe

Hallo, auf https://www.arduino.cc/en/Main/ArduinoBoardUno wird gesagt: "The ATmega328 provides UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An ATmega16U2 on the board channels this serial communication over USB and appears as a virtual com port to software on the computer. The 16U2 firmware uses the standard USB COM drivers, and no external driver is needed. However, on Windows, a .inf file is required. "

Der 16U2 benutzt einen standard USB COM Traber, wozu kein externaler Treiber notwendig ist. Nur eine .inf Datei wird benötigt.

Frage 1: Das würde ja bedeuten, dass eigentlich kein Win-Treiber notwendig wäre um mit dem Arduino/über den 16U2 mit dem ATmega328 zu kommunizieren ??!

Frage 2: "The ATmega328 also supports I2C (TWI) and SPI communication. The Arduino Software (IDE) includes a Wire library to simplify use of the I2C bus; see the documentation for details. For SPI communication, use the SPI library. " -->Der ATmega328 kann I2C und SPI. Hierzu wird kein Treiber benötigt, nur die libs müssen benutzt werden. Das funktioniert wegen dem Bootloader oder wie??!

Danke für eure tollen Antworten! :)

Zu Frage 1:

In der Regel ist das richtig und funktioniert auf intakten Systemen auch problemlos.

Zu Frage 2:

Das hat mit dem Bootloader nichts zu tun. Der ist nur für ein bequemes flashen des Atmega328 notwendig.

I2C und SPI funktionieren auch ohne zusätzliche Libraries, nur musst du dann sehr viel selbst programmieren. Um allen Arduino-Programmierern das zu erleichtern, werden diese und zahlreiche andere Libraries uns zu Verfügung gestellt.

Zu Frage 1: Für Windows: Nur eine .inf Datei wird benötigt.

Zu Frage 2:

Das sind vorhandene Schnittstellen über die Du aber den Sketch nicht hochladen kannst. Auch hat ein PC diese Schnittstellen nicht nach außen geführt, wo Du arduino anschließen könntest.

Grüße Uwe

Nochmal zum Verständnis: Wenn meine Bücher und auch die arduino.cc Seite davon reden Treiber zu installieren, so geht es nicht darum einen neuen Treiber zu installieren, sondern darum die .inf Dateien bereitzustellen, damit der bereits bei Wiindows vorhandene Treiber die neue Hardware ins System integrieren kann?

ihr seid spitze, danke!

Die wenigsten Treiber (und schon gar keine USB-Treiber) laufen im Kernel Mode mit allen Privilegien und direktem Hardware-Zugriff. Ob nun alles in Textdateien (.inf) konfigurierbar ist oder auch ein bisschen ausführbarer Code erforderlich ist, ist eher nebensächlich. Wenn Windows nicht alles selbst weiss oder vom USB Plug&Play Gerät gesagt bekommt, muss ihm eben sonstwie gesagt werden, was es wissen muss. Das wird dann "Treiber installieren" genannt. Danach sieht die Geräteverwaltung (Device Manager) ein wenig anders aus.

Ihr seid spitze, danke!