Forum: Mikrocontroller und Digitale Elektronik Software USB Addon Board für AVR


von Daniel S. (Firma: HiTech Store) (hakkeduster)


Angehängte Dateien:

Lesenswert?

Hallo,

für eine Schaltung will ich USB per Software implementieren, hier jedoch 
soll der USB Teil der Schaltung unabhängig vom rest sein und nur bei 
Bedarf angehängt werden. (Vorteilhaft wenn man nur Feineinstellungen 
vornehmen will, ohne den MCU dauernd neu zu programmieren)

Ich habe mir dafür mal die ganzen Software USB implementierungen 
angesehen und auch die beigefügten "Design Guides". Ich habe mir nun 
eine Schaltung entworfen, mit der es normalerweise möglich sein sollte 
den USB Teil je nach Bedarf an die Hauptschaltung mit einem AVR an- oder 
abzuklemmen.

Es wäre Super wenn Ihre mal drüber schauen könnt, ob man das so machen 
kann oder ob ich da irgend etwas vergessen habe.

Beim ATMega32 Schaltplan fehlen noch einige dinge, weswegen der nur zur 
Veranschaulichung dienen soll.

Grüße,
Daniel

von (Gast) (Gast) (Gast) (Gast) (Gast)


Lesenswert?

C1 von V+ auf die Datenleitug ist nicht so der Hit. mf

von Mike J. (linuxmint_user)


Lesenswert?

Weshalb nimmst du nicht INT0 und INT1 für D+ und D- ?
Wird INT0 für etwas verwendet?

Der 10µF Kondensator soll wohl von +5V nach Masse gehen.

Kannst du den 18.34MHz Quarz dafür wirklich nutzen?

> Can be clocked with 12 MHz, 15 MHz, 16 MHz or 20 MHz crystal
> or from a 12.8 MHz or 16.5 MHz internal RC oscillator.

von Daniel S. (Firma: HiTech Store) (hakkeduster)


Angehängte Dateien:

Lesenswert?

Argh, hatte ich nicht gesehen, das ich C1 auf die Datenleitung gelegt 
hatte. habe es jetzt mal upgedated.

@Mike
Hatte die belegung mal schnell an freie Pins gezogen um den Anschluss zu 
veranschaulichen. Ist aber wie du sagtest sinvoller das eher dann mit 
INT0 und INT1 zu machen.

Bei dem Quarz bin ich mir grade auch nicht mehr 100% sicher, sollte aber 
normalerwese klappen, da mir dieser empfohlen wurde um sehr stabile Baud 
raten zu bekommen. Wenn dieser falsch sein sollte bin ich um jede info 
dankbar.

von Mike J. (linuxmint_user)


Lesenswert?

Daniel S. schrieb:
> da mir dieser empfohlen wurde um sehr stabile Baud
> raten zu bekommen

Für den UART trifft das ja zu, aber der USB Datentakt ist dann nicht 
mehr synchron.


Mit 12MHz bekomme ich auch stabile Baudraten.

http://www.gjlay.de/helferlein/avr-uart-rechner.html?fosc=12&error_max=0.3&submit=Absenden#

Wenn über den UART permanent hintereinander Daten gesendet werden kann 
sich der PC (ComPort) nicht mehr neu Synchronisieren, das wird nicht zu 
einem Problem wenn die Datenübertragung gelegentlich kurz ausgesetzt 
wird.

16 oder 20MHz sind glaube ich am besten, da hier noch die 
Fehlerkorrektur mitlaufen kann.

Bei mir wird der ATmega644P mit 3.3V versorgt und läuft mit 12MHz.
Ich habe extra geprüft ob die Spannung nicht zu niedrig ist, und er 
würde auch mit 1.9V laufen und 12MHz.

Bei mir sind aber auch überall 100nF und 4.7µF Keramikkondensatoren auf 
der Platine verteilt, daher bricht die Spannung des Controllers auch nie 
zusammen.

... bei dir fehlen die Puffer-Kondensatoren scheinbar.

von Daniel S. (Firma: HiTech Store) (hakkeduster)


Lesenswert?

Mike J. schrieb:
> Für den UART trifft das ja zu, aber der USB Datentakt ist dann nicht
> mehr synchron.

Hatte ich garnicht dran gedacht. Muss den Quarz dann in der Schaltung 
ändern, das ich bei bedarf eben den USB Adapter dranhängen kann.

Mike J. schrieb:
> ... bei dir fehlen die Puffer-Kondensatoren scheinbar.

Wie schon gesagt, ist eben nur zur Veranschaulichung und eh noch nicht 
fertig. Mir geht es derzeit eher um den Adapter für USB als um die 
Hauptschaltung mit dem ATMega ;-)


Worauf Du mich aber noch gebracht hast wäre eine Möglichkeit per Jumper 
die Spannung einzustellen, so das man entweder mit 5V oder wie bei dir 
3,3V Ausgang hat. Werde mal schauen wie ich da einen Spannungsteiler 
oder Pegelwandler unterbekomme.

von Mike J. (linuxmint_user)


Lesenswert?

Hallo Daniel,
hast du es nun mal mit V-USB probiert?

Ich stelle aus den 5V in etwa 3.3V her und nutze einen 12MHz Quarz.
D- verbinde ich dann über einen 1k Ohm Widerstand mit 3.3V (mit 1.5K 
erkennt er das Gerät nicht, es müssen scheinbar über 3mA fließen)
D+ verbinde ich über 1M Ohm mit GND.

Int0 (PD2) wird mit D- verbunden
Int1 (PD3) wird mit D+ verbunden

PD0, PD1 sind dann noch für den UART frei.

Also alles ohne Z-Dioden und es fließt somit auch kein Strom 
(theoretisch 25mA) in die Datenleitung des USB Port.

von Daniel S. (Firma: HiTech Store) (hakkeduster)


Lesenswert?

Hallo Mike,

erst einmal frohes neues Jahr und sorry für die lange rückmeldezeit, 
hatte im Urlaub leider garkein Internet...

Mit V-USB hatte ich es bis jetzt noch nicht probiert, nur mit USBtiny. 
Werde es die Tage wenn es ruhiger ist aber mal mit V-USB ausprobieren 
und mal sehen wie weit ich dann auch mit der Spannungsversorgung komme 
das ich die auf 5V odr 3.3V laufen lassen kann.

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.