Forum: Mikrocontroller und Digitale Elektronik ATtiny45 und VUSB?


von Alfred K. (devkid)


Angehängte Dateien:

Lesenswert?

Hi,

nach erfolglosem Verlöten eines viel zu kleinen FTDI-Chips wollte ich 
die Variante mit einem ATtiny2313 (DIP-20) und VUSB probieren. Aber 
zuerst wollte ich hier nachfragen, ob meine Schaltung so funktionieren 
würde, bevor ich mir die Bauteile zulege :)

Außerdem wollte ich noch wissen, ob man mit einem 20 MHz Quarz neben dem 
USB --> UART auch noch das SPI (für ISP) bewerkstelligen kann und ob man 
dafür auch mit dem CKOUT-Ausgang einen zweiten Chip mit 20 MHz betreiben 
kann, so dass SPI und UART ausreichend schnell eingestellt werden 
können. Habe mir das entweder als USB-Programmer oder als einfacher USB 
--> UART-Wandler gedacht.

MfG.

von mr. mo (Gast)


Lesenswert?

sind die leds mit integrierten vorwiderständen?

von Floh (Gast)


Lesenswert?

Alfred Krohmer schrieb:
> zuerst wollte ich hier nachfragen, ob meine Schaltung so funktionieren
> würde, bevor ich mir die Bauteile zulege :)

Nein.
Entweder du betreibst den uC mit den "5V" vom USB und baust für die 
Datenleitungen Pegelwandler, ODER du betreibst den uC mit 3,3 V und 
lässt die Pegelwandler weg.
Übrigends wird Reset normalerweise mit einem Pullup (Widerstand) an + 
gehängt, sonst macht dein ISP einen sauberen Kurzschluss.
Weiter vermisse ich deine Abblockkondensatoren.
Für Vorwiderstände bei den LEDs auch zu geizig?
Naja, kauft man öfter mal LEDs.
:-)

von 6to4 (Gast)


Lesenswert?

Alfred Krohmer schrieb:
> die Variante mit einem ATtiny2313 (DIP-20) und VUSB probieren.

Diese Variante benötigt einen 12MHz Quarz, wenn sich da in letzter Zeit 
nicht was geändert hat...

von holger (Gast)


Lesenswert?

>nach erfolglosem Verlöten eines viel zu kleinen FTDI-Chips wollte ich
>die Variante mit einem ATtiny2313 (DIP-20) und VUSB probieren. Aber
>zuerst wollte ich hier nachfragen, ob meine Schaltung so funktionieren
>würde, bevor ich mir die Bauteile zulege :)

Nein, Angstkondensatoren fehlen. LEDs betreibt man nicht
ohne Vorwiderstand. Wenn du deinen Programmer killen willst
dann lass Reset hart an VCC;)

von holger (Gast)


Lesenswert?

Nachtrag: Höhere Baudraten wird der AVR wohl auch nicht
hinbekommen weil er das gesamte USB Protokoll in Software
abarbeiten muss. Das ganze wird dann ein Spielzeug das
mehr Ärger macht als es nutzt. Versuch den FTDI zum laufen
zu bekommen. Dann hast du was anständiges.

von Alfred K. (devkid)


Lesenswert?

Hui, das ging ja schnell mit den Antworten.

Zu den LED's: die bekommen selbstverständlich noch einen Vorwiderstand, 
hatte ich der Übersicht halber nur weggelassen.

Reset hab ich auch an einem ATmega168 an VCC hängen und der macht keine 
Probleme. Aber auch hier kann ich selbstverständlich einen 1k-Widerstand 
reinklemmen.

Zu den 3,3 V: Dafür hab ich die Zener-Dioden mit 3,6 V eingebaut. Hab 
ich in mehreren VUSB-Schaltungen schon so gesehen, sollen die Spannung 
doch eigentlich auf ca. 3,3 V runterziehen, wenn ich das richtig 
verstanden habe?

20 MHz: Hab zumindest gelesen, dass man bei VUSB in der Config die 
Taktfrequenz einstellen kann und dass er so an manchen Stellen NOPs 
einfügt, damit das Timing passt.

Angstkondensatoren: Könnte ich auch noch reinpacken, aber ich dachte per 
self-powered USB-Hub sollte zumindest eine einigermaßen stabile Spannung 
kommen?! Will jetzt nichts stromintensives an dem µC betreiben.

Nochmal zu meiner Frage: Kann man mit einem 20 MHz Quarz auch noch einen 
zweiten Chip betreiben über den CKOUT-Ausgang? Kann ich statt USB --> 
UART auch (per Software umstellbar) USB --> SPI verwenden mit VUSB?

von Floh (Gast)


Lesenswert?

> Zu den LED's: die bekommen selbstverständlich noch einen Vorwiderstand,
> hatte ich der Übersicht halber nur weggelassen.

Wenn du genaue Infos haben willst, rück gefälligst auch den kompletten 
Schaltplan raus.

> Reset hab ich auch an einem ATmega168 an VCC hängen und der macht keine
> Probleme. Aber auch hier kann ich selbstverständlich einen 1k-Widerstand
> reinklemmen.

Es läuft, ja. Allerdings wird der Reset beim Programmieren auf Masse 
gezogen -> Kurzschluss.

> Zu den 3,3 V: Dafür hab ich die Zener-Dioden mit 3,6 V eingebaut. Hab
> ich in mehreren VUSB-Schaltungen schon so gesehen, sollen die Spannung
> doch eigentlich auf ca. 3,3 V runterziehen, wenn ich das richtig
> verstanden habe?

Das macht man so:

 uC-Pin -----WWWWW----o------- USB-Pin
                      |
                   ,-----
                   ' /|\
                     ---
                      |
               --------------
Mit (W)iderstand um die 68 Ohm.
Halt wie im V-USB-Beispiel.

> Angstkondensatoren: Könnte ich auch noch reinpacken, aber ich dachte per
> self-powered USB-Hub sollte zumindest eine einigermaßen stabile Spannung
> kommen?! Will jetzt nichts stromintensives an dem µC betreiben.

Bei den Kondensatoren gehts nicht um Stromverbrauch, sondern um 
kurzzeitige Einbrüche der Versorgungsspannung bei schnellen 
Schaltflanken.

von holger (Gast)


Lesenswert?

>Angstkondensatoren: Könnte ich auch noch reinpacken, aber ich dachte per
>self-powered USB-Hub sollte zumindest eine einigermaßen stabile Spannung
>kommen?! Will jetzt nichts stromintensives an dem µC betreiben.

Das ist Wurst die Dinger gehören an jeden uC ganz dicht an die Pins ran.

> Kann ich statt USB -->
>UART auch (per Software umstellbar) USB --> SPI verwenden mit VUSB?

Du kannst auch beides gleichzeitig machen wenn du die Software
so auslegst.

von Alfred K. (devkid)


Angehängte Dateien:

Lesenswert?

So, hab jetzt noch den Kondensator und die Widerstände rein gemacht.

Reset will ich bei dieser Schaltung gar nicht benutzen, dieser ATtiny 
soll nur einmal programmiert werden und bei Bedarf andere Chips 
programmieren. Also könnte ich die Leitung zum Reset eigentlich ganz 
weglassen...

Mit "ausreichend schnell" meinte ich nur, dass man nicht bei 9600 Baud 
bei UART oder bei Clock/256 bei SPI rumhängt. Bei dem ATmega168 kann ich 
mit 20 MHz auch nicht mehr als 115200 als Baudrate rauskitzeln. --> Kann 
ich nun einen anderen Chip mit CKOUT takten?!

von holger (Gast)


Lesenswert?

>Reset will ich bei dieser Schaltung gar nicht benutzen, dieser ATtiny
>soll nur einmal programmiert werden und bei Bedarf andere Chips
>programmieren. Also könnte ich die Leitung zum Reset eigentlich ganz
>weglassen...

Eine Leitung zum Reset des Ziel uC fehlt dann trotzdem noch.
Dann stellt sich nur noch die Frage ob du dazu in der Lage bist
eine eigene Firmware zu schreiben um andere AVR mit deiner
Gurkenschaltung programmieren zu können;)

von Alfred K. (devkid)


Lesenswert?

holger schrieb:
> Eine Leitung zum Reset des Ziel uC fehlt dann trotzdem noch.

Das würde ich direkt am Ziel mit einem Taster machen, weil das ganze 
eben auch als UART-Bridge herhalten soll.

holger schrieb:
> Dann stellt sich nur noch die Frage ob du dazu in der Lage bist
> eine eigene Firmware zu schreiben um andere AVR mit deiner
> Gurkenschaltung programmieren zu können;)

Jop, klappt schon :) Hab hier ein mySmartControl-Board und beschreibe 
damit einen weiteren ATmega168 über SPI. Ist nur halt ziemlich 
unhandlich auf einem Steckbrett.

von holger (Gast)


Lesenswert?

>> Eine Leitung zum Reset des Ziel uC fehlt dann trotzdem noch.

>Das würde ich direkt am Ziel mit einem Taster machen, weil das ganze
>eben auch als UART-Bridge herhalten soll.

Ich glaube nicht das du es schaffst den im us Bereich zu drücken
um dann synchron zu deiner Software einen SPI Sync hinzubekommen;)

Du bist ein klein wenig blauäugig mit dem was du vorhast.

>Jop, klappt schon :) Hab hier ein mySmartControl-Board und beschreibe
>damit einen weiteren ATmega168 über SPI.

Wozu brauchst du dann noch den Tiny? Mach einen ISP Stecker
an deine Schaltung und gut is.

von Alfred K. (devkid)


Lesenswert?

holger schrieb:
> Ich glaube nicht das du es schaffst den im us Bereich zu drücken
> um dann synchron zu deiner Software einen SPI Sync hinzubekommen;)

Wieso soll ich den µs Bereich drücken?! In der jetzigen Schaltung mache 
ich das auch mit dem Taster. Drücken, SPI per UART anschmeißen und 
loslassen, wenn er fertig ist.

Mit dem Tiny will ich mir evtl. mehrere Schaltungen bauen, einen z.B. 
als Programmer oder in einer eigenständigen Schaltung, dann nur als USB 
--> UART-Bridge.

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.