Forum: Mikrocontroller und Digitale Elektronik USB und AVR-Controller


von S.T (Gast)


Lesenswert?

Hallo,
also ich habe hier im Wiki einen Artikel zu USB gefunden und wollte mal 
fragen ob ich das richtig verstanden habe, dass man ohne einen 
Controller, der nicht speziell für USB ausgelegt ist kein USB-Device 
bauen kann?

Also ich weis das es so 2 Controller in der XMEGA Reihe gibt, die das 
unterstützen (USB-Transceiver) aber was ich nicht ganz verstehe ist, 
warum man mit Handelsüblichen AVR-Controllern (atmega 8,16,32) es nicht 
möglich ist, sowas zu bewerkstelligen. Wo ist den das Problem bei der 
Sache?

Gruß S.T

von Timmo H. (masterfx)


Lesenswert?

Klar kannst du das. Low-Speed Devices kannst du mit V-USB auf fast jedem 
AVR implementieren. Nur ein Paar Z-Dioden und der Rest ist Firmware: 
http://www.obdev.at/products/vusb/index-de.html

Die Controller die extra für USB gemacht sind (AT90USB...) haben halt 
schon die entsprechende Hardware und grundlegende Protokoll-Sachen schon 
eingebaut. Da kann man dann auch mehr als nur Low-Speed mit schaffen.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

der Controller muß (ähnlich wie bei anderen 
"Höher-Geschwindigkeits-Schnittstellen") zweckmäßigerweise selber 
zumindest ein geeigneten "parallel-seriell-Wandler" integriert haben, um 
die Daten physikalisch "rauszuschieben".

Falls er das nicht hat, bleibt dir nur übrig, selber an irgendwelchen 
Leitungen "rumzuwackeln", um z.B. ein "Soft-UART" zu realisieren.

Für USB ist das nur eingeschränkt möglich (Geschwindigkeit) Gurgle mal 
nach "IGOR USB" . Besagter Igor hat ein USB Protokollstack incl. 
Bitgewackel implementiert, damit kann man zumindest USB1 (langsamste 
Geschwindigkeit) abbilden.

von S.T (Gast)


Lesenswert?

Timmo H. schrieb:
> Klar kannst du das. Low-Speed Devices kannst du mit V-USB auf fast jedem
> AVR implementieren. Nur ein Paar Z-Dioden und der Rest ist Firmware:
> http://www.obdev.at/products/vusb/index-de.html
>
> Die Controller die extra für USB gemacht sind (AT90USB...) haben halt
> schon die entsprechende Hardware und grundlegende Protokoll-Sachen schon
> eingebaut. Da kann man dann auch mehr als nur Low-Speed mit schaffen.
Naja, was ich mich halt Frage ist, ob es fertige Transceiver gibt, die 
dann auch höhere Durchsatzraten bringen und die man per SPI - Ansprechen 
kann. Habe bis jetzt keine solchen ICs gefunden (Conrad, Reichelt).

Und warum V-USB, in wie fern Virtuell?

von S.T (Gast)


Lesenswert?

Wegstaben Verbuchsler schrieb:
> .

Man

Wegstaben Verbuchsler schrieb:
> der Controller muß (ähnlich wie bei anderen
> "Höher-Geschwindigkeits-Schnittstellen") zweckmäßigerweise selber
> zumindest ein geeigneten "parallel-seriell-Wandler" integriert haben, um
> die Daten physikalisch "rauszuschieben".

parellel - seriell wandler gibt es doch aber auch als externe Bausteine 
oO

von Timmo H. (masterfx)


Lesenswert?

S.T schrieb:
> Habe bis jetzt keine solchen ICs gefunden (Conrad, Reichelt).
Sowas gibts nur halt nicht unbedingt bei Reichelt oder Conrad. z.B. 
USBN9604

> Und warum V-USB, in wie fern Virtuell?
Ob das V für Virtuell steht weiß ich nicht. Früher hieß es AVR-USB 
musste aber umbenannt werden (Markenzeichen von Atmel).

von Timmo H. (masterfx)


Lesenswert?


von S.T (Gast)


Lesenswert?

Ja versteh ich das den richtig, dass diese Chips Transreceiver sind? 
Also für die Datenübertragung verantwortlich sind, ich aber dann über 
SPI/Microwire dann die Daten mit meim AVR auslesen kann?

von S.T (Gast)


Lesenswert?

Also, is das jetzt so? Ich würde nicht mal unbedingt einen Controller 
brauchen, der das intus hat. Ich würde halt gerne einen fertig 
Programmierten nehmen. Also in dem Fall einen, dem man einfach per 
SPI/Microwire sagt, was sie tuen sollen. Das gleiche, wenn ich mich mit 
CAN beschäfitge, da würde ich dann auch fertige Transceiver vorziehen. 
Weil ich für diese speziellen Controller von NXP oder Atmels ARM - 
Controller kein Programmiergerät habe. Nur nen ISP - Progger.

Gruß S.T

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

So wird das nix. Beschreib doch mal genau, was du vorhast, und was du 
per USB ansteuern willst.

Möglicherweise ist ja ein USB / RS232 Wandler das richtige für dich, 
denn RS232 kann eigentlich fast jeder uC machen.

von Frank K. (fchk)


Lesenswert?

S.T schrieb:
> Also, is das jetzt so? Ich würde nicht mal unbedingt einen Controller
> brauchen, der das intus hat. Ich würde halt gerne einen fertig
> Programmierten nehmen. Also in dem Fall einen, dem man einfach per
> SPI/Microwire sagt, was sie tuen sollen. Das gleiche, wenn ich mich mit
> CAN beschäfitge, da würde ich dann auch fertige Transceiver vorziehen.
> Weil ich für diese speziellen Controller von NXP oder Atmels ARM -
> Controller kein Programmiergerät habe. Nur nen ISP - Progger.

Es gibt zwei Sorten:

- die applikationsspezifischen, die eine fixe Funktion wie USB-seriell 
oder USB-PrinterPort implementieren. Dazu gehören die ganzen Teile von 
FTDI, aber auch der Microchip MCP2200, der ein CDC Device implementiert.

- die generischen wie NXP PDIUSB11/PDIUSB12, die nur die 
Lowlevel-Datenübertragung machen. Die High-Level-Protokolle wie CDC oder 
HID oder was auch immer muss dann auf dem Controller passieren.

Die applikationsspezifischen USB-Interfaces können nur eine fixe 
Funktion ausführen. Du kannst damit z.B. keine Tastatur oder Maus 
implementieren. Mit den generischen kannst Du alles machen, brauchst 
aber einen USB-Stack, und der ist relativ aufwändig. Da es mehr als 
genug Controller mit eingebautem USB-Controller gibt, ist diese Klasse 
allerdings auf dem Rückzug. Dazu kommt, dass z.B. ein PIC18F14K50 
USB-Microcontroller genauso viel kostet wie eine nackte USB-Seriell 
Bridge, aber schon gleich den Prozessor mit eingebaut hat. Da nehme ich 
dann doch gleich den PIC anstelle des FTDI-Chips und spare mir den extra 
Controller und kann mein Produkt damit günstiger anbieten.

Ich bin kein Freund der USB-Bitbang-Lösung. Es ist nur USB 1.1, nicht 
100% USB-konform, und der Prozessor ist ziemlich ausgelastet. Selbst 
wenn ich nur USB1.1 brauchen würde, gibt es Low-End Controller, die 
genau das für unter 1$ machen und dabei USB in Hardware haben und vom 
USB Implementer Forum zertifiziert sind.

fchk

von S.T (Gast)


Lesenswert?

Frank K. schrieb:
> - die generischen wie NXP PDIUSB11/PDIUSB12, die nur die
> Lowlevel-Datenübertragung machen. Die High-Level-Protokolle wie CDC oder
> HID oder was auch immer muss dann auf dem Controller passieren.
> Die applikationsspezifischen USB-Interfaces können nur eine fixe
> Funktion ausführen. Du kannst damit z.B. keine Tastatur oder Maus
> implementieren. Mit den generischen kannst Du alles machen, brauchst
> aber einen USB-Stack, und der ist relativ aufwändig.
>
> fchk
Auf welchem Kontroller. Auf dem NXP PDIUSB11 / PDIUSB12 muss dann die 
"High-Level" Protokolle implementiert werden, oder dann z.B. auf meinem 
avr. Ich suche eigentlich eine Lösung, mit der alles zu machen ist. Bin 
leider bis jetzt noch auf keinen ISP Programmierbaren Controller im DIP 
- Gehäuse gestoßen. (Also einen den ich mit meinem AVR mkII clone 
programmieren kann) Nur auf diese nervigen "Super Mini, kann man nicht 
mehr erkennnen, und kaum Löten, SMD krams"

von S.T (Gast)


Lesenswert?

Wegstaben Verbuchsler schrieb:
> So wird das nix. Beschreib doch mal genau, was du vorhast, und was du
> per USB ansteuern willst.
>
> Möglicherweise ist ja ein USB / RS232 Wandler das richtige für dich,
> denn RS232 kann eigentlich fast jeder uC machen.

Naja der Punkt ist der. Ich möchte gern flexibel sein und möchte für das 
USB Gerät auch eigene Treiber schreiben. Zudem möchte ich die 
Funktionalität mit eigener Firmware erweitern können.
Im Moment schwebt mir eigentlich nur ein Projekt mit LED-Matrix 
Animation vor, die ich am PC erstellen kann, und die dann via USB 
übertragen wird. Aber wie gesagt, ich möchte für zukünftige Projekte das 
ganze auch erweitern können mit anderer Firmware.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

S.T schrieb:
> Nur auf diese nervigen "Super Mini, kann man nicht
> mehr erkennnen, und kaum Löten, SMD krams"

Die AT90USB-Controller gibt es im TQFP-Package. So schwierig ist das 
nicht zu löten. Ansonsten gibt es dafür auch günstige Adapterplatinen, 
die dir aus dem SMD- ein THT-Bauteil machen oder gleich fertige 
Eval-Boards.

von Frank K. (fchk)


Lesenswert?

S.T schrieb:

> Auf welchem Kontroller. Auf dem NXP PDIUSB11 / PDIUSB12 muss dann die
> "High-Level" Protokolle implementiert werden, oder dann z.B. auf meinem
> avr.

Auf Deinem AVR.

> Ich suche eigentlich eine Lösung, mit der alles zu machen ist. Bin
> leider bis jetzt noch auf keinen ISP Programmierbaren Controller im DIP
> - Gehäuse gestoßen. (Also einen den ich mit meinem AVR mkII clone
> programmieren kann) Nur auf diese nervigen "Super Mini, kann man nicht
> mehr erkennnen, und kaum Löten, SMD krams"

Besorge Dir einen PIC18F2550 (DIL28) bzw PIC18F4550 (DIL40) und einen 
PicKIT2-Clone (oder wenn das Geld da ist: ein PicKit3). Dann hast Du das 
passende. Den zugehörigen USB-Stack samt Beispiele gibts dann als 
Download bei Microchip.

fchk

von S.T (Gast)


Lesenswert?

Christoph Budelmann schrieb:
> S.T schrieb:
>> Nur auf diese nervigen "Super Mini, kann man nicht
>> mehr erkennnen, und kaum Löten, SMD krams"
>
> Die AT90USB-Controller gibt es im TQFP-Package. So schwierig ist das
> nicht zu löten. Ansonsten gibt es dafür auch günstige Adapterplatinen,
> die dir aus dem SMD- ein THT-Bauteil machen oder gleich fertige
> Eval-Boards.

Also alles was ich an "billigen" Adaptern bis jetzt gefunden habe ging 
von 30 € oder 80 € aufwärtslos. Außerdem muss man sich den richtigen 
dann immer wieder je nach Pinzahl kaufen.
Und in wie fern ist es leichter. Was ich bis jetzt gefunden habe, sah 
sehr kompliziert aus und ich bezweifel das dass mit meiner 1,5mm 
Lötspitze was wird.... oO (Für die Lötstation ZD 99 gibts nicht grad die 
größte Auswahl an Lötspitzen).
Und auf ne normale Lochrasterplatine bekomme ich die Chips auch nicht 
drauf... Was bleibt dann noch übrig? Selber ätzen?. Das is hart an der 
Grenze, was man an aufwand treiben muss für ein Hobbyprojekt.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

S.T schrieb:
> Also alles was ich an "billigen" Adaptern bis jetzt gefunden habe ging
> von 30 € oder 80 € aufwärtslos. Außerdem muss man sich den richtigen
> dann immer wieder je nach Pinzahl kaufen.

Die AT90USB-Controller gibt es im TQFP-Gehäuse nur mit 32 und 64 Pins, 
entsprechende Adapter-Platinen kosten bei eBay oder anderswo garantiert 
weniger als 5€/Stück, suche einfach mal danach.

> Und in wie fern ist es leichter. Was ich bis jetzt gefunden habe, sah
> sehr kompliziert aus und ich bezweifel das dass mit meiner 1,5mm
> Lötspitze was wird.... oO (Für die Lötstation ZD 99 gibts nicht grad die
> größte Auswahl an Lötspitzen).

So schwierig ist das nicht, in der Artikelsammlung findest du einen 
Artikel zum Thema SMD-Löten. Mit Entlötlitze löten wir hier auch mit 3mm 
breiten Spitzen 0,5mm Fine-Pitch-Bauteile problemlos ein.

> Und auf ne normale Lochrasterplatine bekomme ich die Chips auch nicht
> drauf... Was bleibt dann noch übrig? Selber ätzen?. Das is hart an der
> Grenze, was man an aufwand treiben muss für ein Hobbyprojekt.

Wenn du etwas fertiges haben willst, ist gerade zum Einstieg das 
AT90USB-Key-Board von Atmel prima. 16MB Data-Flash ist gleich mit 
verbaut, ebenso wie ein Joystick und zwei Bicolor-LEDs. Fast alle 
AVR-USB-Stacks (LUFA, Atmel, etc.) laufen direkt darauf. Kostet um die 
30€.

von Potter (Gast)


Lesenswert?

>Naja der Punkt ist der. Ich möchte gern flexibel sein und möchte für das
>USB Gerät auch eigene Treiber schreiben. Zudem möchte ich die
>Funktionalität mit eigener Firmware erweitern können.

Das ist eigentlich gar nicht notwendig, da Du mit USB ähnlich hantierst 
wie mit der UART. Du hast einen oder zwei Datenpuffer und die mußt Du 
füllen. Die 'Erweiterung' wird im Protokoll geregelt. D.h. Du gibst den 
Bytes eben eine sinnvolle Bedeutung.

von S.T (Gast)


Lesenswert?

Christoph Budelmann schrieb:
> S.T schrieb:
>> Also alles was ich an "billigen" Adaptern bis jetzt gefunden habe ging
>> von 30 € oder 80 € aufwärtslos. Außerdem muss man sich den richtigen
>> dann immer wieder je nach Pinzahl kaufen.
>
> Die AT90USB-Controller gibt es im TQFP-Gehäuse nur mit 32 und 64 Pins,
> entsprechende Adapter-Platinen kosten bei eBay oder anderswo garantiert
> weniger als 5€/Stück, suche einfach mal danach.
>
Ich korrigier mich. Klar Adapterplatinen schon. Nur ich würde ja dann 
entsprechende Sockel vorziehen. Aber diese Sockel sind nunmal so super 
teuer, bieten sich aber zum experementieren an.
Ich suche halt schon so Dinger die nen 2,54 mm Stiftraster fürs 
Steckboard.

von Frank K. (fchk)


Lesenswert?

S.T schrieb:

> Ich suche halt schon so Dinger die nen 2,54 mm Stiftraster fürs
> Steckboard.

Da wirst Du bei Atmel nicht fündig werden. Aus diesem Grund habe ich Dir 
PICs empfohlen.

fchk

von S.T (Gast)


Lesenswert?

Frank K. schrieb:
> S.T schrieb:
>
>> Ich suche halt schon so Dinger die nen 2,54 mm Stiftraster fürs
>> Steckboard.
>
> Da wirst Du bei Atmel nicht fündig werden. Aus diesem Grund habe ich Dir
> PICs empfohlen.
>
> fchk

Gibt es den wirklich überhaupt keine fertigen Transceiver die sich über 
SPI steuern lassen?!! oO
Im DIP-Gehäuse. Weil wie gesagt ich wollte keinen Controller mit 
USB-Funktionaltität, sondern lediglich ein IC, der mit USB beherrscht, 
Puffert, und dessen Daten ich dann mit meinem AVR auslesen kann. Ich 
dachte dieser USBNODE von reichelt wäre so einer. Wobei der nicht im DIP 
- Gehäuse kommt, wenn ichs richtig gesehen habe.

von Frank K. (fchk)


Lesenswert?

S.T schrieb:

> Gibt es den wirklich überhaupt keine fertigen Transceiver die sich über
> SPI steuern lassen?!! oO
> Im DIP-Gehäuse. Weil wie gesagt ich wollte keinen Controller mit
> USB-Funktionaltität, sondern lediglich ein IC, der mit USB beherrscht,
> Puffert, und dessen Daten ich dann mit meinem AVR auslesen kann. Ich
> dachte dieser USBNODE von reichelt wäre so einer. Wobei der nicht im DIP
> - Gehäuse kommt, wenn ichs richtig gesehen habe.

Du unterschätzt den Softwareaufwand.

Nimm den empfohlenen PIC! Den gibts in DIL, läuft mit 5V, und da hast Du 
es am einfachsten, weil Microchip schon für das ganze Framework gesorgt 
hat, das Du zwingend brauchst.

fchk

von Sebastian G. (jaseg)


Lesenswert?

Einige ATMegas, so z.B. der ATMega32U4 und der ATMega8U2 haben ein 
integriertes USB-Device interface. Ich meine mich zu erinnern, dass das 
irgendwas um die 5 Endpoints (Control-EP eingeschlossen) bietet.

von Rolf H. (flash01)


Lesenswert?

Hallo Leute,
durch rumstöbern im Forum entdeckte ich Euern Thread!
Vor mir liegt so ein Stick-Programmer, den ich bei ebay für 9,50 €
geschossen habe. Hab mir das Teil mal näher unter die Lupe genommen.
Tatsächlich gehen die beiden Steuerleitungen vom USB über Z-Dioden
und 100R an zwei Pins vom Atmel (könnte RXD bzw. TXD sein)
Müßte ich nochmal durchklingeln.
Die Signalleitungen SCK / MISO /MOSI /RST werden am ISP bereit gestellt.

Aber.... mit meinem "Demo-Bascom" hab ich da keine Chance.
Es kommt eine Fehlermeldung: das Chip AT90S1200 wird nicht
erkannt. In der Auswahlliste Option / Chip vom Bascom taucht es nicht
auf; kann ich also erstmal vergessen.
Habe noch das my Smart USB MK2, die 9,50 € rein aus Neugierde kann ich
noch verschmerzen.
Und auf diesem Modul sitzt ein kleiner CP2102, dessen 2 Leitungen
an RXD + TXD vom ATmega8 gehen.
Dieses Forum finde ich einfach spitze, habe Hardwaremäßig viel gelernt.
Den Pics habe ich den Rücken gekehrt.

Grüße

Rolf

von Frank (Gast)


Angehängte Dateien:

Lesenswert?

Es gibt nette kleine "fertige" Baugruppen - lohnt es sich da wirklich 
(ausser für Lernzwecke), selber "rumzumachen"?

http://www.tigal.com/product/1233

von S.T (Gast)


Lesenswert?

Frank schrieb:
> Es gibt nette kleine "fertige" Baugruppen - lohnt es sich da wirklich
> (ausser für Lernzwecke), selber "rumzumachen"?
>
> http://www.tigal.com/product/1233

Das wäre dann wieder ein USB2Serial Konverter. Dann kann ich mir aber 
genausogut gleich nen USB2Serial Kabel kaufen und mir ne RS232 Büchse 
aufs Boards machen. Kommt am Ende doch im Grunde aufs selbe hinaus, oder 
nicht?

von Sam .. (sam1994)


Lesenswert?

Frank schrieb:
> Es gibt nette kleine "fertige" Baugruppen - lohnt es sich da wirklich
> (ausser für Lernzwecke), selber "rumzumachen"?
>
> http://www.tigal.com/product/1233

Selbst hergestellt kosten nur sie 1/4.

von Rolf H. (flash01)


Lesenswert?

Hallo Frank,
danke für Eure Antworten!
Das Teil wie abgebildet würde 20,00 € kosten.
Wenn ich aber das Modul USB<>ISP für 9,50€ in den Händen halte,
ist das doch ein Schnäppchen..ich weis, daß er noch welche hat.
Möchte aber keine Werbung machen.
Frage: wollte ich einen Tiny13 oder 24 programmieren geht das mit den
beiden Leitungen RXD / TXD nicht. Oder? Die sind doch nicht vorhanden.
Erst beim 2313 (Pin 2+3) sind sie vorhanden

Oder lieg ich da falsch?

Grüße

Rolf

von Sam .. (sam1994)


Lesenswert?

Rolf Hegewald schrieb:
> Frage: wollte ich einen Tiny13 oder 24 programmieren geht das mit den
> beiden Leitungen RXD / TXD nicht. Oder? Die sind doch nicht vorhanden.
> Erst beim 2313 (Pin 2+3) sind sie vorhanden

Über einen Bootloader kannst du jeden µC über Uart programmieren. Dieser 
kann auch software-implementiert sein. Dafür muss der Bootloader aber 
erstmal auf den µC.

von Rolf H. (flash01)


Lesenswert?

mh...wieder was NEUES!
D.h. der Bootlader wandelt die beiden seriellen Datenleitungen
in die 4 Leitungen um die am ISP dann zur Verfügung stehen?
Also ist der Bootlader eine Software, die im Chip hinein muß.
So müßte es dann in meinen gekauften Stick sein.

von Sam .. (sam1994)


Lesenswert?

Achso meinst du das: dein gekaufter Stick empfängt die Daten seriell und 
gibt sie als ISP weiter. Einen Bootloader programmiert man direkt auf 
den µC. Dieser empfängt dann die Daten und programmiert sich selbst.

von Rolf H. (flash01)


Lesenswert?

nein.. vom USB kommen zwei Steuerleitung und gehen zum AT90S1200
von dort zum ISP

von Rolf H. (flash01)


Lesenswert?

Hallo Samuel,
jetzt bin ich unsicher geworden, ob ich Dir nicht "Quatsch" geschrieben 
habe!
Werden denn die beiden Signalleitungen vom USB kommend auch
als serielle Leitungen (sprich RS232) bezeichnet?
Und wie werden dann die Leitungen MOSI/MISO/SCK/RSD bezeichnet?

Grüße nochmal

Rolf

von Sam .. (sam1994)


Lesenswert?

Rolf Hegewald schrieb:
> Hallo Samuel,
> jetzt bin ich unsicher geworden, ob ich Dir nicht "Quatsch" geschrieben
> habe!
> Werden denn die beiden Signalleitungen vom USB kommend auch
> als serielle Leitungen (sprich RS232) bezeichnet?
> Und wie werden dann die Leitungen MOSI/MISO/SCK/RSD bezeichnet?
Usb ist zwar seriell, aber nicht gleich RS232.
Ein Usb-Seriell(/Uart) Konverter meldet sich beim OS als virtueller 
serieller Port an und gibt die über das Usb-Protokoll gelieferten Daten 
über seine Ausgänge TxD und RxD aus (RS232). Dahinter könnte man einen 
µC setzen, auf dem ein Bootloader programmiert ist. Dieser empfängt die 
Daten und lässt den µC sich selbst programmieren.
Die Usb-Serial Konverter haben jedoch meistens mehr Augänge als nur TxD 
und RxD, z.T auch auch frei konfigurierbare. Diese sind von dem Computer 
frei steuerbar, d.h. man kann auch ein anderes Protokoll als RS232 
nutzen (für das programmieren von µCs SPI).

Jetzt bin ich ein bisschen zu UsbSerial Konvertern abgeschweift.

Dein Programmer enthält selber nur einen µC, welcher softwaremäßig USB 
nachbildet, in diesem Falle hat das nichts mehr mit RS232 zu tun. Er 
stellt einfach ein paar Ports zu verfügung welche vom PC aus gesteuert 
werden können.

Ich hoffe das war jetzt verständlich genug.

von Sebastian G. (jaseg)


Lesenswert?

USB und RS232 sind beides serielle Schnittstellen. RS232 hat außer RX 
und TX (notwendig) noch ein paar inzwischen ungebräuchliche Leitungen, 
USB hat nur zwei, D+ und D-.
RS232 hat einen definierten Pegel (bis +/-15V), weshalb ein 
entsprechender Treiberbaustein (z.B. MAX232) notwendig ist (ein AVR 
verträgt das direkt nicht). RS232 ist auch in Software sehr einfach zu 
implementieren. USB ist komplizierter und braucht mehr Rechenleistung, 
bietet aber ein paar nette Features (mehrere Endpoints, Control 
Requests, Interrupts, Bulk Transfers).

Ich möchte hier mal den VUSB-Stack von obdev.at empfehlen (GPL). Drei 
Widerstände und zwei Zenerdioden reichen hier aus, um so ziemlich jeden 
AVR mit min. 2kB (geschätzt) Flash als USB-Device tauglich zu machen 
(braucht nur einen Interrupt-Pin) und ist in der Konfiguration 
(softwareseitig) sehr einfach.
http://de.wikipedia.org/wiki/RS232
http://de.wikipedia.org/wiki/USB
http://de.wikipedia.org/wiki/Serielle_Schnittstelle

btw: Ein Bootloader ist ein Programm auf dem µC, dass dein eigentliches 
Programm per USB/RS232/RS485/Bluetooth/CAN/whatever empfängt und in den 
Flash des AVR schreibt. Man verwendet einen Bootloader, wenn man (aus 
welchem Grund auch immer) den AVR nicht per ISP (das ein SPI-Bus ist) 
programmieren will.

von S.T (Gast)


Lesenswert?

Sebastian G. schrieb:
> Einige ATMegas, so z.B. der ATMega32U4 und der ATMega8U2 haben ein
> integriertes USB-Device interface. Ich meine mich zu erinnern, dass das
> irgendwas um die 5 Endpoints (Control-EP eingeschlossen) bietet.

Das wäre dann aber wieder ein SMD-Bauteil

von Sebastian G. (jaseg)


Lesenswert?

Ja, wobei sich ein TQFP mit 0.8mm Terminal Pitch finde ich noch ganz gut 
löten lässt - und man spart sich beim Selbstmachen der Platinen das 
Bohren.

von S.T (Gast)


Lesenswert?

Sebastian G. schrieb:
> Ja, wobei sich ein TQFP mit 0.8mm Terminal Pitch finde ich noch ganz gut
> löten lässt - und man spart sich beim Selbstmachen der Platinen das
> Bohren.

Naja, mir gings ja eher um ne Steckbrettanwendung, bei der isses nen 
bisschen schwierig mit TQFP. So müsste ich dann die Platine 
Maßanfertigen lassen oder eine fertige-PLatine ausm Shop kaufen, wobei 
dann auch nicht garantiert ist, dass sie 2,54 mm Rastermaß haben.

von Rolf H. (flash01)


Lesenswert?

oh weia...Leute,
ich merke, Ihr seit Provis hoch 3!

Das muß ich erst mal 5x lesen, um es evtl. zu begreifen.

Erstmal vielen Dank..ich lerne immer mehr!

Grüße

Rolf

von peterfido (Gast)


Lesenswert?

Am einfachsten geht es per UART und einem USB/RS232 Wandler. Früher habe 
ich den FTDI genommen. Da dieser aber mit Adapterplatine unc Co etwas 
aufwändiger ist, bin ich auf Siemens Datenkabel(DCA-510 S55 / SL55) 
umgestiegen (bei ebay fürn Appel und n Ei). Da ist im Stecker ein 5V 
toleranter USB/Seriell Wandler drin. Einfach den Handystecker entfernen 
und die Adern an RXD und TXD des Atmegas anschließen. Zusätzlich lassen 
sich kleine Schaltungen direkt über das Kabel mit Energie versorgen.

Eigene Treiber zu programmieren ist nicht zu unterschätzen. Zumal 64Bit 
Betriebssysteme (Windows7) ohne zu tricksen nur von MS zertifizierte 
Treiber akzeptieren.

von S.T (Gast)


Lesenswert?

peterfido schrieb:
> Am einfachsten geht es per UART und einem USB/RS232 Wandler. Früher habe
> ich den FTDI genommen. Da dieser aber mit Adapterplatine unc Co etwas
> aufwändiger ist, bin ich auf Siemens Datenkabel(DCA-510 S55 / SL55)
> umgestiegen (bei ebay fürn Appel und n Ei). Da ist im Stecker ein 5V
> toleranter USB/Seriell Wandler drin. Einfach den Handystecker entfernen
> und die Adern an RXD und TXD des Atmegas anschließen. Zusätzlich lassen
> sich kleine Schaltungen direkt über das Kabel mit Energie versorgen.
>
> Eigene Treiber zu programmieren ist nicht zu unterschätzen. Zumal 64Bit
> Betriebssysteme (Windows7) ohne zu tricksen nur von MS zertifizierte
> Treiber akzeptieren.

Also ich hab bis jetzt immer nur ne Warnmeldung bekommen, wenn die 
Treiber nicht zertifiziert waren. Ich konnte sie aber trotztdem immer 
mit Bestätigung installieren (verwende Windows 7 64 Bit Professional)

von Sebastian G. (jaseg)


Lesenswert?

Unter Linux funktioniert bei mir mit VUSB libusb super. Sollte 
theoretisch auch unter 32-Bit-Windows funktionieren.

von Oliver J. (skriptkiddy)


Lesenswert?

Sebastian G. schrieb:
> Unter Linux funktioniert bei mir mit VUSB libusb super. Sollte
> theoretisch auch unter 32-Bit-Windows funktionieren.

Unter 64-bit Windows 7 bei mir ebenfalls keine Probleme.

von Oliver J. (skriptkiddy)


Lesenswert?

Samuel K. schrieb:
> Über einen Bootloader kannst du jeden µC über Uart programmieren.

Vorsicht mit allgemeinen Aussagen!

Mir fällt bei den AVR spontan der Atmega48 ein. Bei dem geht es nicht, 
weil der die SPM-Instruktion nicht unterstützt. Bei den ATtinys gibt es 
auch ein paar Vertreter, die es nicht können:
ATtiny10
ATtiny20
ATtiny26
ATtiny28L
ATtiny4
ATtiny40
ATtiny5
ATtiny9

Gruß Skriptkiddy

von Sam .. (sam1994)


Lesenswert?

Skript Kiddy schrieb:
> Vorsicht mit allgemeinen Aussagen!
Du hast ja recht.
> Mir fällt bei den AVR spontan der Atmega48 ein.
Das kann nicht sein: Den habe ich bei meinem letzten Projekt genutzt. 
Der Bootloader hat funktioniert. Er hat zwar keine HW-Unterstützung - 
mit dem richtigen Bootloader geht es trotzdem.

Skript Kiddy schrieb:
> Bei den ATtinys gibt es
> auch ein paar Vertreter, die es nicht können:

Wobei das wirklich die Exoten unter den Avr sind.

von Oliver J. (skriptkiddy)


Lesenswert?

Samuel K. schrieb:
> Das kann nicht sein: Den habe ich bei meinem letzten Projekt genutzt.
> Der Bootloader hat funktioniert. Er hat zwar keine HW-Unterstützung -
> mit dem richtigen Bootloader geht es trotzdem.

Da hab ich wohl Mist erzählt.
Asche auf mein Haupt.

Gruß Skriptkiddy

von Rolf H. (flash01)


Lesenswert?

Hallo Leute,
ich muß erst mal das Thema wechseln, hoffentlich geriet der Thread
dabei nicht ins uferlose.
Wenn ja, dann gebt INFO..ich mach einen neuen auf!
Mein Bascom, sehr merkwürdig!
Geb ich zu Beginn unter "$regfile = "m8def oder m88def oder attiny2313.
dat" ein ist die Welt in Ordnung, d.h. kein Error!
Gebe ich attiny13 oder 24 oder 84 oder 461 kommt Error!
Habe schon gesucht unter Option/Compiler/Chip in allen Ecken.
Habe den Verdacht, daß es mit den Einstellungen im Menü Programmer
zusammenhängt..sch. Technik!

Grüße

Rolf

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rolf Hegewald schrieb:
> Wenn ja, dann gebt INFO.

"INFO".

Für dein Problem machst du bitte einen eigenen Thread auf.

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.