Guten Tag, ich suche nach einer Möglichkeit, einen Mikrocontroller per USB mit einem PC zu verbinden. Natürlich klingt das erst mal relativ leicht, ich möchte jedoch den Mikrocontroller nicht nur programmieren, sondern ich möchte eine dauerhafte Kommunikation von PC und Controller erreichen. Meine erste Idee wäre ein ATtiny, welcher die Signale zwischen USB und ATmega übersetzt. Allerdings bin ich noch nicht wirklich auf einen vernünftigen Schaltplan gestoßen. Aber es muss ja eine "relativ einfache" Schaltung geben, denn USB ist ja dafür da, um Daten zu übertragen und in jedem Drucker, Eingabegerät etc. muss ja ein solcher Controller vorhanden sein. Reicht es also von der Hardware her aus, einen ATtinny mit einem ATmega zu verbinden und den ATtiny entsprechend mit USB zu verkabeln? Und wie sieht es Software mäßig aus? Kann ich auch Strings übertragen, um Beispielsweise ein Display zu nutzen? Vielen Dank schonmal im Vorraus!
Schau dir mal den FT232RT an. Das ist ein USB auf Seriell Adapter. Programmiert wir das dann auf dem PC und auf dem µC wie eine RS232 Schnittstelle. Bei eBay findet funstige Platinen mit dem FT232: z.B.: www.ebay.de/itm/350876509599
Oder die AT90USB-Serie von Atmel. Kommunikation und Flashen über USB Schnittstelle
Diese FT232-Teile sind doch auch irgendwie suboptimal auf Dauer. Wenn man mehrere davon am Rechner hat, fängt die große Suche an, welches Gerät welchen Com-Port zugewiesen hat (Oder die bekriegen sich, bis man bei Port 31245 landet, vor allem wenn sie zwischenzeitlich an einem anderen Rechner gewesen sind und man mit Alt-Software zu tun hat, die keine Com-Ports über 9 bedienen kann oder ähnliches). Leider habe ich über den Gerätemanager keinen Weg gefunden, das herauszufinden. Mit Hilfe von D2XX kann man immerhin das Gerät anhand von ID und Seriennummer oder anderen Attributen suchen, dafür eignet sich D2XX nicht für IO-Completion-Ports (oder boost::asio), weil es die Win32-Handle-API umgeht. Also landet man am Ende bei einer völlig untransparenten D2XX+Virtual-Com-Port-Geschichte... All meine Anfragen bei FTDI, ob man das irgendwie unter einen Hut bringen kann, blieben leider unbeantwortet... Falls jemand Abhilfe hat, wäre ich natürlich dankbar ;)
Eine fertige Lösung wäre ein Arduino UNO Board: ATmega328 + USB-Anbindung.
Es gibt natürlich auch viele andere µC die USB haben und auch der Hersteller direkt eine passende LIB liefert - nicht nur Atmel. z.B. PIC, NXP, ST, usw... aber 2 µC dafür einsetzen halte ich für übertrieben.
decimad schrieb: > Diese FT232-Teile sind doch auch irgendwie mag ja alles sein. Aber solange die Zusatzfrage vom Fragesteller so lautet ... > Und wie sieht es Software mäßig aus? Kann ich auch Strings > übertragen, um Beispielsweise ein Display zu nutzen? ... ist er mit einem FT232 gut bedient.
:
Bearbeitet durch User
Hi Nun, viele µC haben einen USART. Die Pins RxD und TxD setzt du mit einem MAX 232 auf einen seriellen Standart-Pegel. Dann braucht es nur noch einen USB / Seriell Wandler und fertig. Allerdings..... ein wenig Programmieren wirst du wohl müssen. Zur Frage, ob du auch "Strings" senden kannst: das ist ein klares Zeichen dafür, das du vermutlich noch ein Weilchen üben mußt. Strings sind Zeichenketten. Also, mehrere Zeichen! Ok, und was ist ein Zeichen? Nun, ASCII z.B. zeigt ab 48 dez. eine "0". Demnach sind Zeichen Werte eines Bytes. Im Bereich 0 bis 255 liegen sie versteckt, deine Zeichen. Schau mal, was Google zu "ASCII-Tabelle" sagt. Deine serielle Datenübertragung allerdings überträgt "nur" Bytewerte. Was du mit diesen anfängst ist allein deiner Phantasie überlassen.... So, nun warten wir mal auf eine Erfolgsmeldung der Kommunikation. Gruß oldmax
:
Bearbeitet durch User
Martin Vogel schrieb: > Nun, viele µC haben einen USART. Die Pins RxD und TxD setzt du mit einem > MAX 232 auf einen seriellen Standart-Pegel. Dann braucht es nur noch > einen USB / Seriell Wandler und fertig. Wenn der PC keine Serielle eingebaut hat würde ich aber einen Adapter der RS232 mit TTL Pegel ausgibt. Spart den MAX232. Auf dem PC kannst zu zum Anfangen irgendein Terminal Programm verwenden.
Es gibt ISP Programmieradapter, die sowohl zum flashen als auch für serielle UART Kommunikation geeignet sind: http://shop.myavr.de/index.php?404;http://myavr.de:80/shop/article.php?artDataID=36 Unter Linux hat man als Alternative zu den durchnummerierten COM-Ports die Möglichkeit, die Geräte anhand ihrer physikalischen Verbindung (USB-Port, Hub und dessen Port) zu adressieren. Vieleicht kann Windows das auch irgendwie. Ansonsten hat sich für mich unter Windows und Linux bewährt, alle "gleichen" UART Adapter an einen Hub zu stecken (mit fester Port-Zuordnung) und nur noch den Hub bei Bedarf an den Laptop zu stecken. Das Betriebsystem erkennt die Geräte dann immer in der gleichen Reihenfolge und numeriert sie daher immer gleich durch.
Hi, Joshua H. schrieb: > ich suche nach einer Möglichkeit, einen Mikrocontroller per USB mit > einem PC zu verbinden. Natürlich klingt das erst mal relativ leicht, ich > möchte jedoch den Mikrocontroller nicht nur programmieren, sondern ich > möchte eine dauerhafte Kommunikation von PC und Controller erreichen. Ich benutze dazu meistens sowas hier [1]. HTH, Karl [1] http://www.elektor.de/jahrgang/2011/september/usb-ft232r-breakout-board.1915085.lynkx
Erst kuerzlich drueber gestolpert. Passt ja bissel zum Thema, von daher: http://www.youtube.com/watch?annotation_id=annotation_513104&feature=iv&src_vid=HKrgVZ_b9Eo&v=iepf0CHr6Hk MfG
Hallo; "ich suche nach einer Möglichkeit, einen Mikrocontroller per USB mit einem PC zu verbinden." 1. Möglichkeit, wie beschrieben: USART Schnittstelle des µC mittels USART -->USB Adapter. Dann hast du vom Code eine "klassische"serielle Kommunikationsverbindung. 2. Klassisches USB: Dann benötigst du einen µC mit USB Interface, als Referenz sei mal ein Vausatz genannt: Velleman P8055N "USB Experiment Interface Board" Es wird kein treiber seitens des PC verwendet das das sog, HID Protokoll (Human Interface Device) verwendet wird (daselbe wie für Mäuse , Joysticks,Tastaturen. 3. Es gibt spezielle Perepheriekontroller, siehe mal unter:http://www.ulpi.org/ Ein Controller board wo das verwendet wird ist hier: http://www.wvshare.com/img/devkit/accBoard/conn-open/USB3300-USB-HS-Board-5.jpg Es gibt hier auch Referenzcode in C Im Falle von 2-3 kommst du aber dauerhaft nicht um das Verstaändniss der USB Spezifikation und des HID Geräteklassen spezifikation nicht herum. Aus dem Franzis Buchverlag gibt es jedoch gute Literatur Gruß Marc
decimad schrieb: > Diese FT232-Teile sind doch auch irgendwie suboptimal auf Dauer. Wenn > man mehrere davon am Rechner hat, fängt die große Suche an, welches > Gerät welchen Com-Port zugewiesen hat Nanana.. ganz so ist es NICHT. Man sollte es sich merken, daß das Neuzuweisen einer immer weiter ansteigenden COM Nummer nur dann pasiert, wenn das USB-Device keine Seriennummer in seinen Descriptoren besitzt. Hat es eine, dann hat es auch eine feste COM-Nummer, egal, an welche USB-Buchse man es steckt. Das gilt nicht nur für FTDI-IC's, sondern generell. Bei den FTDI-Teilen müßte man dafür einen kleinen EEPROM dem FT232 gönnen und mit dem FTPROG (oder MPROG oder so) dem Gerät eine individuelle Seriennummer verpassen. @Joshua H.: Wenn du "ich suche nach einer Möglichkeit, einen Mikrocontroller per USB mit einem PC zu verbinden" sowas anvisierst, dann suche dir besser gleich einen µC aus, der einen USB-Devicecore bereits eingebaut hat und lies dir die Dokus zum USB algemein und zu virtuellen COM-Ports im speziellen durch. Falls du dir dann mal nen NUC120, LPC2478, LPC1343, LPC17xx, STM32F103 ausgesucht hast, poste das mal so, daß ich's finde. Für die genannten µC hab ich nämlich passende Quellen, von denen ich was posten könnte. W.S.
Joshua H. schrieb: > Reicht es also von der Hardware her aus, > einen ATtinny mit einem ATmega zu verbinden und den ATtiny entsprechend > mit USB zu verkabeln? Und wie sieht es Software mäßig aus? Hier eine Sammlung mit zig verschiedenen Projekten, alle mit USB, in diesem Fall mit der wahrscheinlich einfachsten (primitivsten) USB-Lösung V-USB: http://www.obdev.at/products/vusb/prjall.html Eine Beispiel-Umsetzung kannst du auch auf meiner Seite finden: https://guloshop.de/shop/USB-TTL-ADC-PWM-Signalwandler:::10.html Alles Open Source, nachbauen nicht nur erlaubt, sondern erwünscht. :-) http://guloshop.de/f/sources/
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.