Forum: Mikrocontroller und Digitale Elektronik USB Mikrocontroller - Wie lernen


von Schumi (Gast)


Lesenswert?

Hallo,

ich möchte mich in meiner Freizeit etwas ausgiebiger mit 
Mikrocontrollern beschäftigen. Nun suche ich weitere nützliche 
Internetseiten oder Lektüre, die mir den Anfang vereinfachen.

Im speziellen suche ich für meine Ansprüche passende Hilfen:

- Ich möchte über USB mit dem Mikrocontroller kommunizieren(Slave reicht 
glaube ich), da der Microcontroller erstmal nur zum Messen und Steuern 
benutzt werden soll.(Wenn möglich möchte ich dabei natürlich den 
direkten Weg ohne USB auf Seriell Wandler oder Ähnliches nehmen)

- Ich möchte nicht mit Assembler programmieren.

Kurz zu meiner Person: Elektronikgrundkenntnisse sowie Erfahrungen mit 
den Programmiersprachen Java und Delphi sind vorhanden.


Da ich auch nach etwas längerer Internetrecherche keinen für mich 
passenden Einstieg in die Welt der Mikrocontroller gefunden habe, wende 
ich mich nun an euch. Im Vorraus schon vielen Dank für die Hilfe.

von Gast (Gast)


Lesenswert?

Das hier schon entdeckt?
http://www.mikrocontroller.net/articles/AVR
z.B. ein Atmega48für die Mess und Steueraufgaben mit FTDI für USB 
Kommuniziererei(Ist zwar ein USB->Seriell Wandler aber auf der Platine 
schaut auch nur eine USB-Buchse heraus).
Kann in C Programmiert werden.
Somit dürften deine Anforderungen erfüllt sein.

von Schumi (Gast)


Lesenswert?

Erst einmal Danke für deinen Beitrag!

Aber ja, dieses nützliche Tutorial hatte ich bereits entdeckt. Mir wäre 
es jedoch lieb, wenn ich auf einen USB-> Seriell Wandler verzichten 
könnte, da ich wenn möglich gleich den Umgang mit USB-Microkontrollern 
lernen möchte.
Mögliche Controller, auf welche ich bei meiner Recherche gestoßen bin 
sind z.B. der An2131 oder der CY7C63000.
Auch habe ich schon gefunden, dass die USB Ansteuerung beim AVR schon 
teilweise softwareseitig gelöst wurde.

Ich möchte allerdings den Einstieg direkt mit sozusagen für mich 
persönlich "zukunfstsicheren" USB-Controllern machen.

Wäre super, wenn weitere Beispiele oder Anregungen von euch kämen.
Danke

von holger (Gast)


Lesenswert?

>Ich möchte allerdings den Einstieg direkt mit sozusagen für mich
>persönlich "zukunfstsicheren" USB-Controllern machen.

Es gibt keine "zukunfstsicheren" USB-Controller.
USB-Seriell Wandler wird es immer geben. Und
USB Controller sind schon mal gar nichts für Anfänger.

Die blinkende LED ist das womit du anfangen solltest.

von termite (Gast)


Lesenswert?

Moin

eines was du mal machen solltest ist C lernen. das ist zumindest eine 
sprache für die zu jeder plattform ein compiler zu finden ist.

usb ist etwas komplexer als die RS232. Wenn man nicht gerade 
funktionierenden code verwendet der auf anhib funktioniert ( wo ist da 
denn der lernefekt? ) kann das für einen anfänger sicher erst mal 
frustierend werden. keine möglichkeiten für leitungsaurzeichnungen (geht 
schon nur die messgeräte kosten geld )

gruss.

von john (Gast)


Lesenswert?

Cypress ist schon gute wahl, guck dir die CY7C64013C (M8C core) familie 
( products/usb/full-speed), oder CY7C680xx, z.b. CY7C68016A (8051 core) 
(Products/usb/high speed), oder aber auch die PSoC von Cypress, z.b. den 
CY8C24x94 (M8C core).

Sowohl PSoC als auch FX2 sind sehr einfach zu programmieren - auch USB, 
für beide gibts tools von Cypress - C und Assembler - PSoC ist 
vielleicht einfacher für anfänger - guck dir den PSoC Designer an.

von peterguy (Gast)


Lesenswert?

Nimm dir für den Einstieg in die µC-Welt nicht zuviel vor. Das frustiert 
nur. USB ist kein triviales Thema, wenn man zu Fuß entwickeln möchte!

Außerdem: Selbst professionelle Entwickler greifen gerne auf FTDI Chips 
zurück, wenn man schnelle Ergebnisse erzielen möchte. Es muss ja nicht 
unbedingt ein USB->Seriell Wandler sein, FTDI hat z.B. auch 
USB->Parallel Bausteine im Angebot.

von PJ (Gast)


Lesenswert?


von ... (Gast)


Lesenswert?

Vergiss Cypress. Die haben seltsame Chips, seltsame Lieferbedingungen, 
Null Support inklusive Falschauskuenfte.
Vergiss USB fuer den Anfang. Einen PC USB Treiber zu schreiben jagt 
sogar mir als Profi, seit 25 Jahren im Geschaeft einen Alptraum ein. 
Kollegen reden von 2 Monaten minimum. Es gibt allerdings Firmen, die 
bieten gegen Bares vorgekaute Loesungen an. zB http://www.thesycon.de
Um dort einsteigen zu koennen muss man alles drum herum schon koennen. 
Also eh nichts fuer dich.
Nimm einen USB2Serial, dort erscheint das Device auf der PC Seite als 
COMPort, das ist schon mal viel. Auf der Device Seite benoetigt man da 
einen UART, was auch fast immer vorhanden ist. Mach dich mal mit UART 
und Protokollen vertraut, und erst dann kannst du mal von USB traeumen.

von Mars (Gast)


Lesenswert?

@ ... (Gast)

Das ist ja totaler Blödsinn was du da schreibst. Die Cypress ICs kannst 
du überall beziehen, funktionieren auch problemlos(FX2). Support habe 
ich bisher noch nicht in Anspruch nehmen müssen, da dass TRF und der 
Beispielcode sehr gut sind. Das Bulkloop Demo für den FX1/FX2 ist 
wirklich mehr als ausreichend für den Einstieg.
Von Atmel gibt es sehr günstig den AT90USBKey, hier sind die 
Dokumentation und der Beispielcode leider sehr schlecht und haben mir 
einiges an Kopfzerbrechen bereitet. Aber auch das lässt sich 
durchschauen, zumal es bereits einige andere Firmware-Implementierungen 
gibt.
Die ganzen USB<->Serial Converter kann ich nicht empfehlen, da diese 
auch so ihre Tücken haben(Treiberbugs, schlechte Doku, ...) und man 
einfach nicht die Flexibilität hat, die einem ein eigener USB-Controller 
bietet.
Treiber braucht man wirklich keinen mehr selber schreiben; es gibt 
bereits einige sehr gute Treiber wie LibUSB(Open Source, WinUSB 
Microsft, ...) oder man nimmt die HID-Device-Class. Für diese braucht 
man zumindest unter Windows keinen eigenen Treiber.
Sorry aber UART ist tot und das ist auch gut so.

von ... (Gast)


Lesenswert?

Das UART ist noch lange nicht tot und wird das USB ueberleben. Das sieht 
man schon daran, dass USB ohne PC schwierig bis aussichtslos ist, mal 
von Massenspeichern abgesehen.
Nimm einen Spektrumanalyzer/Oszilloskop mit USB Anschluss und versuch 
den von einem Controller auszulesen. Angefangen damit, dass dir das 
Protokoll nicht bekannt ist, das User interface nur auf einem PC laeuft, 
wird sehr schnell Schluss sein.

von Mars (Gast)


Lesenswert?

Die Aussage "UART ist tot" war etwas übertrieben formuliert.
Sicher für die Kommunikation zwischen ICs auf einer Platine mag eine 
RS232 Schnittstelle durchaus sinnvoll sein, zumal fast jeder IC eine 
hat.
Allerdings für die Kommunikation mit einem PC - und diese ist fast immer 
nötig - hat die RS232 Schnittstelle ausgedient.

von ... (Gast)


Lesenswert?

USB ist closed source, da muss man schon sehen. Die Verbindung zwischen 
device und PC ist nicht oeffentlich. Es gibt auch keine (guenstigen) USB 
Analyzer, die da ein Debugging unterstuetzen wuerden. Der PC Treiber/App 
gehoert zum Device, ohne den/die ist das USB Interface im Device 
wertlos.

Die Verbindung zwischen Device und PC ist weltweit eindeutig bestimmt 
und dafuer darf/muss man gehoerig abdruecken.

Sobald die Verbindung zwischen Device und PC oeffentlich ist, 
oeffentlich sein kann, oeffentlich sein muss, bietet sich auch noch 
Ethernet an. Ethernet bietet auch einen Form der Speisung an. Zudem ist 
die Kabellaenge nicht auf 5m beschraenkt. Debugging der Kommunikation 
ist Standard.

von ... (Gast)


Lesenswert?

Fuer viele Device-PC verbindungen ist USB eine Wahl wegen der gegenueber 
dem seriellen erhoehten Geschwindigkeit. Fuer viele anderen Anwendungen 
mag seriell von der Geschwindigkeit her genuegen. Wenn man mal kurz ein 
Geraet konfigurieren muss, ein paar Zahlen verschieben, usw.

Ich habe genuegend (teure) Messgeraete rumstehen mit einem unpassenden 
Interface : ein Spektrumanalyzer mit Floppy, ein Scope mit GPIB, usw.

Wir reden in 20 Jahren wieder ueber USB, wenn ich dann ein heutiges 
Device an das dannige Windows anschliessen will und keine Applikation, 
resp keinen USB Treiber habe, die Firma nicht mehr existiert, usw.

von gast (Gast)


Lesenswert?

alternative wäre AVR-LAB
www.ullihome.de

das ist ein AVR isp  der direkt am USB hängt .. also softwareUSB

es gibt ein projektfile mit dem man selbst die pins beschreiben kann
also den programmer selbst als platform nutzen kann

das selbstgeschriebene kann über das lab- tool eingespielt werden
es ist dann kein zusatzprogrammieradapter nötig


gerade für einsteiger vlt interessant
später lässt er sich als AVRisp MKII clon gebrauchen

mit anderen firmwares als kleines oszi  logger  usw ....

von ... (Gast)


Lesenswert?

So nebenbei... ich bin eine alter Sack der heute ein altes Projekt 
gebaut anfangs 90 mit GPIB wieder flottkriegen soll. Der zentrale PC ist 
ein 486/33 mit ISA karten, eine davon der GPIB controller. Es war sehr 
muehsam vom Altmaterialhaendler einen laufenden PC zu bekommen, das 
Win95 zusammen mit DOS zu installieren. Weshalb der Aufwand ? Das 
Projekt hat immer noch einen Wert ueber einer Million, und ein Neubau 
mit modernem PCs, Neuentwicklung der Software ist zwar moeglich, aber zu 
teuer. Und es dauert viel, viel laenger.

GPIB hat sich immer noch gehalten, wir haben einen GPIB Analyzer, 
koennen zumindest debuggen, wir haben den PC source code, nicht alle 
Versionen, aber immerhin.

Leute, wenn ihr in weiteren 20 Jahren ein System mit USB wieder 
entmotten solltet ... seht ihr aelter aus als ich jetzt.

Das waren nur ein paar praktische Gedanken...

von ... (Gast)


Lesenswert?

Zu Cypress. Ich hatte eine Anwendung, die einen USB Hub, einen 
Massenspeicher und einen Contoller benoetigte. Wir wollten den 
Controller mit USB2Serial an den Hub haengen. Die Wahl fiel auf einen 
Cypress hub. Der haette dann noch einen controller drin gehabt, den wir 
aber nicht benoetigten. Korrespondenz mit Cypress ergab dass der 
contoller nicht aktiv sei, quasi mit dem Booten auf den Reset warte, die 
Quadport Hub Funktionalitaet wuerde aber vor dem Booten schon 
funktionieren. Mindestbestellmenge 256 stueck, aber ein paar Muster 
konnten wir bekommen. Eine Leiterplatte entwickelt, Multilayer, alles 
drauf, ging nicht. Der support war sehr schleppend, man wurde vom Einen 
zum Naechsten verwiesen, bis wir dann herausfanden, der Controller im 
Hub muesste initialisiert sein. Toll. Im QFN Gehaeuse, die benoetigten 
PINs nicht mit Pads verbunden, Platz waere eh keiner da gewesen.

In die Tonne. Viel Zeit, viel Arbeit. Waer nicht noetig gewesen.

von Peter D. (peda)


Lesenswert?

Mit USB-RS232 Umsetzern kann man doch mit mindestens 921600Baud 
arbeiten, das reicht für viele Zwecke.

Den riesen Arbeitsberg, selber USB zu machen habe ich mir bisher noch 
nicht ans Bein gebunden, da nicht benötigt.

Wer aber unbedingt will, für den den gibt es für die Atmel 8051 und AVR 
mit eingebautem USB fertige Application-Notes.
Ich bin mir allerdings ziemlich sicher, daß die nicht für 
Microcontroller-Anfänger geeignet sind.

Wer schonmal nen TCP/IP-Stack selber geschrieben hat, sollte damit 
klarkommen. Die Komplexität von USB ist ähnlich.


Peter

von zwieblum (Gast)


Lesenswert?

also bei UART gegen USB gewinnt UART haushoch. wer sagt den,, dass am 
anderen ende immer ein pc hockt? und selbst wenn das ursprünglich so war 
muss gsa ja nicht so bleiben. und dann hast mit USB eine leiche vor dir.

von Elomat (Gast)


Lesenswert?

Ich hab mit nem Microchip PIC18F4550 angefangen. Gibt super Beispiele 
und komplette Projekte für USB dazu. Und bevor jetzt die ganzen AVR-Fans 
hier entsetzt aufschreien...ich programmier normal auch mit AVRs, aber 
den PIC18 find ich total gut ;-)

von Dominique G. (dgoersch)


Lesenswert?

Mars wrote:
> Sicher für die Kommunikation zwischen ICs auf einer Platine mag eine
> RS232 Schnittstelle durchaus sinnvoll sein, zumal fast jeder IC eine
> hat.

Jeder? Also all meine µC haben zwar einen UART, aber keine 
RS232-Schnittstelle. Wenn du ernst genommen werden willst, wirf nicht 
Begriffe die jeder Anfänger beherrschen sollte in einen Topf und wähle 
zufällig einen aus.

> Allerdings für die Kommunikation mit einem PC - und diese ist fast immer
> nötig - hat die RS232 Schnittstelle ausgedient.

RS232 schon, aber die Anbindung des UART via USB2Seriell (und nein, 
nicht diese fertigen Adapterkabel, es geht hier um ICs wie z.B. den 
FT232RL) noch lange nicht.

Gruß
Dominique Görsch

von Dominique G. (dgoersch)


Lesenswert?

... wrote:
> Sobald die Verbindung zwischen Device und PC oeffentlich ist,
> oeffentlich sein kann, oeffentlich sein muss, bietet sich auch noch
> Ethernet an. Ethernet bietet auch einen Form der Speisung an. Zudem ist
> die Kabellaenge nicht auf 5m beschraenkt. Debugging der Kommunikation
> ist Standard.

Ethernet (zumindest TCP/IP darüber) scheidet bei vielen Dingen allen auf 
Grund von Latenzen und Jitter aus.

von Peter D. (peda)


Lesenswert?

Elomat wrote:
> Ich hab mit nem Microchip PIC18F4550 angefangen. Gibt super Beispiele
> und komplette Projekte für USB dazu.

Es gibt auch von Atmel entsprechende Beispiele und Application-Notes, 
inclusive USB-Bootloader.
Man kann also sofort per USB den MC programmieren und braucht nichtmal 
ein Programmiergerät.

Bloß nützt es nichts, die stumpf zu kopieren, sondern man sollte sie 
auch verstehen. Und C-programmierung ist natürlich Voraussetzung.

Hier mal ein paar Atmel USB-Notes:

http://www.atmel.com/dyn/resources/prod_documents/doc4290.pdf

http://www.atmel.com/dyn/resources/prod_documents/doc7516.pdf

http://www.atmel.com/dyn/resources/prod_documents/doc4322.pdf

http://www.atmel.com/dyn/resources/prod_documents/doc7646.pdf

http://www.atmel.com/dyn/resources/prod_documents/doc7645.pdf

http://www.atmel.com/dyn/resources/prod_documents/doc7633.pdf

http://www.atmel.com/dyn/resources/prod_documents/doc7650.pdf

Viel Spaß beim Lesen.


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.