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.
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.
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
>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.
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.
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.
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.
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.
@ ... (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.
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.
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.
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.
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.
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 ....
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...
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.
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
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.
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 ;-)
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
... 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.