Welcher Mikrocontroller für USB

M

Martin Enke

Guest
Liebe NG,

Für ein relative primitives USB-Projekt habe ich bis jetzt den an2131 von Cypress eingesetzt.
Dazu suche ich eine etwas einfacher zu erhaltende/billigere/leichter zu nutzende Alternative.
Ich bin auch keinesfalls auf 8051er eingeschossen, es soll ja tolle AVRs geben?!

Der Chip den ich suche
- braucht nur 6 IO-Pins, full speed reicht, zur Not sogar low speed
- muss über den USB-Port oder über eine ander "hardwarelose" Verbindung programiert werden können.
- kommt mit einem USB-Treiber daher den ich nicht selbst programmieren muss!!
- sollte möglichst unaufwändig zum HID programmierbar sein.
Außerdem sollte
- der Assembler/IDE kostenlos zu erhalten sein.
- irgendwo ein paar Beispiele im Netz zu finden sein.

Vielen Dank für Eure Empfehlungen

Martin
 
Martin Enke wrote:
Der Chip den ich suche
- braucht nur 6 IO-Pins, full speed reicht, zur Not sogar low speed
- muss über den USB-Port oder über eine ander "hardwarelose" Verbindung
programiert werden können.
- kommt mit einem USB-Treiber daher den ich nicht selbst programmieren
muss!!
- sollte möglichst unaufwändig zum HID programmierbar sein.
Außerdem sollte
- der Assembler/IDE kostenlos zu erhalten sein.
- irgendwo ein paar Beispiele im Netz zu finden sein.
AVRs mit USB sind mir nicht geläufig, aber es gibt nette
USB<->RS232-Wandlerchips (FT232 oder so). Da kann man dann eigentlich
jeden ľC mit RS232-Schnittstelle anschließen.
Einige AVRs verfügen IIRC über einen Bootloader, über den man sie über
RS232 programmieren kann.
Zu den AVRs kriegt man IDE+Assembler und sogar 'n C-Compiler kostenlos,
Beispiele sind massig zu finden. Schau mal unter
http://www.mikrocontroller.net

MfG,
Maik
 
Maik Schmidt <callan@gmx.de> schrieb:

AVRs mit USB sind mir nicht geläufig, ...
Es gibt ein paar mittlerweile in die Jahre gekommene USB-AVRs, die
wahrscheinlich eher schwer erhältlich sind (AT43USBxxx, wenn ich mich
recht erinnere).

Es soll demnächst eine ATmega128-Variante mit USB geben. Keine
Ahnung, wie's mit der Bestellung von Samples aussieht.

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
Kristian Köhntopp, de.comp.os.unix.misc
 
Maik Schmidt <callan@gmx.de> schrieb:

AVRs mit USB sind mir nicht geläufig, ...

Es gibt ein paar mittlerweile in die Jahre gekommene USB-AVRs, die
wahrscheinlich eher schwer erhältlich sind (AT43USBxxx, wenn ich mich
recht erinnere).

Es soll demnächst eine ATmega128-Variante mit USB geben. Keine
Ahnung, wie's mit der Bestellung von Samples aussieht.
Schaut mal unter:
http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm

Steffen
 
"Steffen Braun" <dj5am@arcor.de> schrieb:

Schaut mal unter:
http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm
Das dürfte auch Appnote 309 sein, oder?

Anyway, das ist 'ne andere Liga, in der das spielt.

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
Kristian Köhntopp, de.comp.os.unix.misc
 
Hallo Maik,

wenn ich die Methode richtig verstanden habe nimmt man so nen Wandler der sich dann seinerseitz als serielle Schnittstelle am
System anmeldet und macht den Datentransfer dan per MSCOMM oder so?
Diese Lösung kommt leider gar nicht in Frage, USB-Seriell-Adapter sind sehr gut geeignet um ein einzellnes System billig und
einfach zum laufen zu bringen.
In der Praxis hat sich aber gezeigt, dass soetwas nicht für ein professionelles Consumer-Produkt geeignet ist.

Aber kennsu keinen anderen USB-Chip??
AVR war ja bloß mal ne Idee weil in diesem und anderen Foren soviel davon geschwärmt wird...


Martin


"Maik Schmidt" <callan@gmx.de> schrieb im Newsbeitrag news:409uvjF193oo2U1@individual.net...
Martin Enke wrote:

Der Chip den ich suche
- braucht nur 6 IO-Pins, full speed reicht, zur Not sogar low speed
- muss über den USB-Port oder über eine ander "hardwarelose" Verbindung programiert werden können.
- kommt mit einem USB-Treiber daher den ich nicht selbst programmieren muss!!
- sollte möglichst unaufwändig zum HID programmierbar sein.
Außerdem sollte
- der Assembler/IDE kostenlos zu erhalten sein.
- irgendwo ein paar Beispiele im Netz zu finden sein.

AVRs mit USB sind mir nicht geläufig, aber es gibt nette USB<->RS232-Wandlerchips (FT232 oder so). Da kann man dann eigentlich
jeden ľC mit RS232-Schnittstelle anschließen.
Einige AVRs verfügen IIRC über einen Bootloader, über den man sie über RS232 programmieren kann.
Zu den AVRs kriegt man IDE+Assembler und sogar 'n C-Compiler kostenlos, Beispiele sind massig zu finden. Schau mal unter
http://www.mikrocontroller.net

MfG,
Maik
 
Martin Enke wrote:
Hallo Maik,

wenn ich die Methode richtig verstanden habe nimmt man so nen Wandler
der sich dann seinerseitz als serielle Schnittstelle am System anmeldet
und macht den Datentransfer dan per MSCOMM oder so?
Meldet sich im Idealfall als zusätzlicher Com-Port an, ja.

Diese Lösung kommt leider gar nicht in Frage, USB-Seriell-Adapter sind
sehr gut geeignet um ein einzellnes System billig und einfach zum laufen
zu bringen.
Yup.

In der Praxis hat sich aber gezeigt, dass soetwas nicht für ein
professionelles Consumer-Produkt geeignet ist.
Keine Ahnung, wir haben in der Firma gerade angefangen, USB als
Schnittstelle für Maschinensteuerung zu verwenden.

Aber kennsu keinen anderen USB-Chip??
IIRC ein FT****-Chip, aber die Nummer müsste morgen erst nachfragen. Ist
ein USB-Chip mit integriertem 8051, der wird vom PC aus nach dem
Einstecken mit einer Firmware versorgt und meldet sich dann neu an. Gab
IIRC auch einen mit Flash onboard... Schau einfach mal, was es so an
Chips gibt oder definier genauer, was dein Wunschkäfer können sollen muss.

MfG,
Maik
 
Martin Enke <martin-enke@online.de> wrote:

Aber kennsu keinen anderen USB-Chip??
Wenn du eine externe Loesung verwenden willst, ich hab hier einen
USB9604 am Mega8 laufen. Das laeuft prinzipiell ganz gut. Der Hacken
ist aber wohl das man sowas normalweise nicht parallel an seinen
Controller haengen will weil einen das zuviele Leitungen
kostet. Deshalb hab ich den mit SPI dran haengen. Damit komme ich auf
eine effektive Uebertragungrate von 6-8kb/s Nutzdaten.


Olaf
 
Hallo Maik,

das Problem mit den USB-Seriell-Adaptern:
- Der Comm-Port wechselt beliebig beim Booten! Manchmal auch nicht... Kannsu dem Benutzer nicht zumuten, dass er bevor er das
Hauptprogramm nutzen kann schauen muss ob der Comport noch stimmt und ggf den Commport umstellt.
- Die Treiber, die den virtuellen Commport darstellen sind lausig: So erzeugt z.B. ein laufender Datenstrom der nicht gestoppt
wurde bevor der Port geschlossen wurde, nen hübschen Bluescreen (Mit nem hübschen Scandisk nach dem Rest).
- Der Handshake tut meistens, manchmal halt auch nicht, je nachdem wieviel grade im Hub los ist...
Ich könnte die Liste noch beliebig verlängern.
Ich hab soooo viel Ärger mit diesen Dingen, dass ich lieber nen buggie mC programmiere wo ich selbst die Fehler mache aber eben
auch ausbügeln kann.
Und außerdem:

Entweder man "geht mit der Zeit" oder man "geht" - mit der Zeit.

Hoffe Dir nicht die Laune verdorben zu haben...

Martin


"Maik Schmidt" <callan@gmx.de> schrieb im Newsbeitrag news:40b0m5F179ucmU1@individual.net...
Martin Enke wrote:
Hallo Maik,

wenn ich die Methode richtig verstanden habe nimmt man so nen Wandler der sich dann seinerseitz als serielle Schnittstelle am
System anmeldet und macht den Datentransfer dan per MSCOMM oder so?

Meldet sich im Idealfall als zusätzlicher Com-Port an, ja.

Diese Lösung kommt leider gar nicht in Frage, USB-Seriell-Adapter sind sehr gut geeignet um ein einzellnes System billig und
einfach zum laufen zu bringen.

Yup.

In der Praxis hat sich aber gezeigt, dass soetwas nicht für ein professionelles Consumer-Produkt geeignet ist.

Keine Ahnung, wir haben in der Firma gerade angefangen, USB als Schnittstelle für Maschinensteuerung zu verwenden.

Aber kennsu keinen anderen USB-Chip??

IIRC ein FT****-Chip, aber die Nummer müsste morgen erst nachfragen. Ist ein USB-Chip mit integriertem 8051, der wird vom PC aus
nach dem Einstecken mit einer Firmware versorgt und meldet sich dann neu an. Gab IIRC auch einen mit Flash onboard... Schau
einfach mal, was es so an Chips gibt oder definier genauer, was dein Wunschkäfer können sollen muss.

MfG,
Maik
 
"Martin Enke" <martin-enke@online.de> wrote:

Moin!

das Problem mit den USB-Seriell-Adaptern:
- Der Comm-Port wechselt beliebig beim Booten! Manchmal auch nicht... Kannsu dem Benutzer nicht zumuten, dass er bevor er das
Hauptprogramm nutzen kann schauen muss ob der Comport noch stimmt und ggf den Commport umstellt.
Bei FTDI zwingt Dich niemand, die VCP-Treiber (virtual comport) zu
benutzen, du kannst Dein Device (FT232 mit serieller Schnittstelle
oder FT245 mit 8bit parallel) auch direkt ansprechen.

http://www.ftdichip.com/Drivers/D2XX.htm

Gruß,
Michael.
 
Hallo Michael,

danke für die Antwort, das mmacht die sache wieder interresanter...

Allerdings muss ich jetzt erst mal rausfinden ob sich damit ein HID gestllten läßt.
Insgesamt bin ich allerdings doch stark verwundert, dass es so wenig vernünftige Möglichkeiten zur Entwicklung von HIDs gibt.
Von Atmel gibt's scheinabr nur "Mamut"-Chips, die PICs brauchen ein Programmiergerät, Cypress-Chips sind, wie anscheineind
prinzipiell alleUSB-Chips, kaum zu bekommen (ich schaue mir mal den FX1 an...)
Alle anderen Alternativen brauchen gleich zwei Chips, das kann's ja eigendlich auch nich sein )):-(...

Martin


"Michael Eggert" <m.eggert.nul@web.de> schrieb im Newsbeitrag news:aub2q19qevn6b6tv2rp2krhkskv3tipldp@4ax.com...
"Martin Enke" <martin-enke@online.de> wrote:

Moin!

das Problem mit den USB-Seriell-Adaptern:
- Der Comm-Port wechselt beliebig beim Booten! Manchmal auch nicht... Kannsu dem Benutzer nicht zumuten, dass er bevor er das
Hauptprogramm nutzen kann schauen muss ob der Comport noch stimmt und ggf den Commport umstellt.

Bei FTDI zwingt Dich niemand, die VCP-Treiber (virtual comport) zu
benutzen, du kannst Dein Device (FT232 mit serieller Schnittstelle
oder FT245 mit 8bit parallel) auch direkt ansprechen.

http://www.ftdichip.com/Drivers/D2XX.htm

Gruß,
Michael.
 
Hallo,

Allerdings muss ich jetzt erst mal rausfinden ob sich damit ein HID gestllten läßt.
HID müsste doch fast mit jedem USB Controller gehen. Den Endpoint 0
ham se ja alle und mindenstens zwei weitere Endpoints die Interrupt
Mode können gibts doch eigentlich immer...

Michael
 
Hallo Olaf,

Olaf Kaluza schrieb:

[...]

kostet. Deshalb hab ich den mit SPI dran haengen. Damit komme ich auf
eine effektive Uebertragungrate von 6-8kb/s Nutzdaten.
nur eine Frage zum Thema:
ist diese niedrige Datenrate nicht ein generelles Problem bei
USB-RS232C-Wandlern, wenn man die Daten einzeln byteweise überträgt,
und zwar aufgrund des USB-Protokolls?


ciao
Marcus
 
Marcus Woletz <mwoletz.info@gmx.de> wrote:

nur eine Frage zum Thema:
ist diese niedrige Datenrate nicht ein generelles Problem bei
USB-RS232C-Wandlern, wenn man die Daten einzeln byteweise überträgt,
und zwar aufgrund des USB-Protokolls?
Ein USB9604 ist kein RS232 Wandler. Der kann richtig schnell mit DMA
und allem drum und dran.


Olaf
 
ist diese niedrige Datenrate nicht ein generelles Problem bei
USB-RS232C-Wandlern, wenn man die Daten einzeln byteweise überträgt,
und zwar aufgrund des USB-Protokolls?
Naja, USB hat im Vergleich zu RS232 schon nen wesentlich grösseren
Datendurchsatz, aber die "Pakete" sind eben auch viel grösser, so dass
eine Flusskontrolle für einzelne Bytes natürlich schnell ziemlich
ineffektiv wird. Wenn dein Gerät bei der eingestellten RS232 Bitrate
dauerhaft Daten annehmen kann, so dass du keine Flusskontrolle
brauchst vermute ich mal, dass die meisten USB -> Seriel Adapter auch
recht flott sind.

Ein USB9604 ist kein RS232 Wandler. Der kann richtig schnell mit DMA
und allem drum und dran.
Genau, damit kannste richtiges USB machen, nit son FTDI Popel ;)

Michael
 
Olaf Kaluza <olaf@criseis.ruhr.de> wrote:

Ein USB9604 ist kein RS232 Wandler. Der kann richtig schnell mit DMA
^^^^^^^
USBN9604
Macht vielleicht die Suche fuer andere leichter...
--
Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
 
Hallo Michael,

theoretisch...

praktisch: Wenn nur eine virtuelle COM-Schnittstelle simuliert werden kann ist das eben kein HID.

Martin

"Michael Dreschmann" <michaeldre@gmx.de> schrieb im Newsbeitrag news:43a1d3c1.36778134@news.rhein-zeitung.de...
Hallo,

Allerdings muss ich jetzt erst mal rausfinden ob sich damit ein HID gestllten läßt.

HID müsste doch fast mit jedem USB Controller gehen. Den Endpoint 0
ham se ja alle und mindenstens zwei weitere Endpoints die Interrupt
Mode können gibts doch eigentlich immer...

Michael
 

Welcome to EDABoard.com

Sponsor

Back
Top