Forum: Mikrocontroller und Digitale Elektronik USB-Dschungel


von Michael (Gast)


Lesenswert?

Hallo.

Ich bin gerade dabei, ein AVR-Entwicklungsboard nach meinen Bedürfnissen 
zu erstellen. Jetzt stehe ich vor dem Problem, dass ich auch ganz gerne 
USB zur Kommunikation benutzen würde. Ich habe auch schon sehr viele 
Lösungen dafür gefunden, wobei die meisten einen USB-Seriell Wandler 
(FT...) benutzen. Auch eine Lösung, die ganz ohne zusätzliche Hardware 
auskommt (obdev).

So wie ich es aber verstanden habe, geht immer nur "entweder" 
programmieren des µC (über MISO,MOSI,SCK -> USB-Seriell) "oder" sonstige 
Kommunikation (siehe obdev). Ich würde ganz gerne beides in einem haben. 
Oder habe ich es einfach nur falsch verstanden? Zudem wäre es schön, 
wenn keine SMD-Bauteile zum Einsatz kommen würden. Welche Lösung käme da 
für mich in Frage?

Vielen Dank für eure Hilfe.

Michael

von Christian U. (z0m3ie)


Lesenswert?

Da hast du was falsch verstanden denke ich. Schau die z.b. meinen USB 
AVR-ISP an der kommuniziert mit dem PC wärend er AVR´s flasht. 
www.ullihome.de
Eignet sich auch ganz gut als Test Board auf der 10 Poligen 
Schnittstelle ist ne ganze menge nutzbar.

von Michael (Gast)


Lesenswert?

Hallo.

Erstmal vielen Dank für die Antwort. Diese Lösung von dir ist sehr 
schön, kannte ich auch schon. Jedoch möchte ich keine extra Platine 
dafür haben, sondern alles auf einer. Das ist natürlich kein Problem, 
aber ich hätte es gerne ohne SMD-Bauteile und (wenn möglich) mit weniger 
"Verdrahtungsaufwand".

Deswegen finde ich die Variante von Elektor (obdev) "AVR steuert USB" 
sehr gut. Hiermit kann ich aber (glaube ich) den µC nicht flashen, oder?

Was gibt es für mich hinsichtlich dieser "Bedingungen" für Alternativen?

Michael

von sascha_focus (Gast)


Lesenswert?

Bootloader?

Mit dem FTxxx emulierst du einen Com-Port am PC und kannst den AVR dann 
über einen Bootloader flashen.

Gruß Sascha

von Michael (Gast)


Lesenswert?

@ Sascha

Ja, nur:

1) Gibt es den auch als DIL-Bauform (nicht SMD)?
2) "Normale" Kommunikation geht dann wie über eine serielle 
Schnittstelle (RS232)?

Vielen Dank.

Michael

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Michael wrote:
> @ Sascha
>
> Ja, nur:
>
> 1) Gibt es den auch als DIL-Bauform (nicht SMD)?

Nö, aber TQFP geht noch gut zu löten

> 2) "Normale" Kommunikation geht dann wie über eine serielle
> Schnittstelle (RS232)?

Sicherlich. Dazu ist sowas ja gedacht.
>
> Vielen Dank.
>
> Michael

Gruß Sascha

von Johannes (Gast)


Lesenswert?

hast dir den mal angeschaut?

- Proggen per USB
+ Kommunitation per
   * UART
   + TWI
   + SPI

http://www.myavr.de/shop/artikel.php?artID=42

funzt prima.

Grüße J.

von Michael (Gast)


Lesenswert?

@ Sascha

Ja, stimmt. TQFP ist ok und in sofern interessant für mich. Dann werde 
ich die USB-Schnittstelle jetzt mal in meine Hauptplatine integrieren.

Wo gibt es denn gute erprobte Bootloader und vielleicht etwas 
Beispielcode?


@ Johannes

Ja, das ist sicherliche eine schöne Lösung. Jedoch möchte ich mir dafür 
keine extra Platine zulegen.

Vielen Dank für eure Unterstützung.

Michael

von Michael U. (Gast)


Lesenswert?

Hallo,

wenn ich es richtig verstehe, willst Du einen USB-Adapter drauf haben, 
der per ISP den AVR flashen kann oder per virtueller COM mit dem 
AVR-UART redet, wenn Du das im Programm brauchst.
Das Ganze ohne Umzustecken an einem USB?

Mich würde da was stören: auf AVR-Seite müßten die Leitungen ja entweder 
an den ISP oder an den UART (meinetwegen auch an den TWI), Das ginge 
wohl nur per Jumper/Schalter/irgendwelcher Elektronik, die jedesmal 
umgeschaltet werden müßte.
Auf PC-Seite müßte das jeweils passende Programm laufen, ISP-Software, 
Terminalprogramm usw.

Das hieße also: ISP-Software starten, Schalter auf Board auf ISP, 
flashen.
Schalter auf Board an UART, ISP-Software beenden (sonst ist der COM-Port 
blockiert), Terminal starten, Fehler finden, Programm ändern, Terminal 
schließen, Board umschalten, ISP-Software starten,...

Nö, da bleibe ich bei meinen 2 COM- (oder meinetwegen USB-) 
Schnittstellen, die unabhängig voeneinander am ISP und am UART hängen, 
wo ich gleich nach dem Flashen die UART-Meldungen im anderen Fenster 
sehen kann usw.

Meine ganz persöhnliche Meinung.

Gruß aus Berlin
Michael

von Michael (Gast)


Lesenswert?

@ Michael U.

Du hast natürlich völlig recht. Mir sind einige Sachen auch erst beim 
Schaltungsentwurf bewusst geworden. Ausserdem hatte ich von der 
USB-Funktionalität bei AVRs wohl etwas hohe Erwartungen.

USB möchte ich vor allem deshalb haben, weil gerade neue PCs (vor allem 
Notebooks) keine LPTs oder COMs mehr haben - leider. Deswegen habe ich 
mich nun dazu entschlossen einen Kompromiss einzugehen. Ich werde eine 
USB-Schnittstelle zum Flashen des AVRs integrieren und gut is.

Viele Grüße
Michael

von Michael U. (Gast)


Lesenswert?

Hallo,

und wenn Du Dir die Finger nicht brichst und das Geld investierst, baue 
eben noch einen FT232RL mit rauf oder kauf einen fertigen Adapter und Du 
hast eine virtuelle COM für die anderen Sachen.

Außenbeschaltung ist praktisch keine, ich hab das kleine Ding selbst mit 
Lupe auf eine Adapterplatine bekommen, spielte sofort.

Einen 2. USB-Port findet man ja meist noch am Rechner. ;)

Gruß aus Berlin
Michael

von Michael (Gast)


Lesenswert?

Hi!

Ja, hört sich gut an. 2 USB-Ports gehen immer! ;)

Vielleicht bist du ja bereit, deine Adapter-Platine mal zu posten?

Viele Grüße
Michael

von Hannes L. (hannes)


Lesenswert?

Nicht ganz ernst gemeinter Tip:

Wenn Du alles auf einem Board haben willst, dann solltest Du mal über 
einen USB-Hub-Chip nachdenken, vielleicht aus einem billigen Hub 
herausgebastelt. Dann hat Dein Board nur einen USB-Anschluss, über den 
mehrere USB-Chips (oder auch die AVR-interne USB-Software) gleichzeitig 
mit dem PC verbunden, wodurch die PC-Programme parallel arbeiten können.

Nun wieder im Ernst:

Ich bevorzuge eine Trennung von Programmer und Target-Board, da ich 
weniger "evaluiere", sondern eher eine Schaltung für einen bestimmten 
Zweck aufbaue, den AVR draufpappe und dann die Software in dieser 
Schaltung schreibe, debugge, teste usw. Das hat auch den Vorteil, dass 
ich die Software auf dem später im Einsatz befindlichen Typ erstelle und 
nicht vom "Evaluations-Mega128" (oder -Mega32) auf den dann zum Einsatz 
kommenden Tiny13 oder Mega48 portieren muss.

Ich verfüge zwar über das STK500, benutze es aber meist nur als 
Programmer für externe Targets, nur sehr selten zum Testen von AVRs 
direkt auf dem STK500.

...

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.