attiny2313 und V-USB

Gast #2487485
Lesenswert?

hi zusammen,
versuche seit längerem eine den V-USB zum laufen zubekommen, aber es 
klappt nicht. Habe die schaltung so aufgebaut wie auf der Homepage.
http://www.obdev.at/products/vusb/index-de.html
Ich weiss das ich auf der PC seite mehr machen muss ausser LibUSB-win32 
zu Installieren, aber was ist mir schleierhaft.

könnt Ihr mir bei dem problem weiter helfen?
MfG kluski
#2487504
Lesenswert?

Könntest auch mal von http://www.recursion.jp/avrcdc/ das 
USB-Seriell-Projekt ausprobieren. Wenn sich die Daten in einem 
Terminalprogramm ansehen lassen(Loopback-Test am tn2313) dann liegts 
schonmal nicht an der Hardware.

Vielleicht kannst du das AVR-CDC-Projekt ja auch direkt als serielle 
Schnittstelle benutzen, nur statt den RX/TX-Pins und deren Routinen dein 
eigenes Backend aufsetzen. Das erspart einiges an Rumgehühnere mit 
Libusb.

mfg mf
Gast #2487966
Lesenswert?

ich merke der post von mir ist nicht gerade ein glanz stück deutscher 
Grammatik, schreiben -> lesen-> posten und nicht schreiben -> posten -> 
lesen -> schämen :D

ich brenne den tiny2313 auf dem stk500 und setzt in dann ins steckbrett 
um es zu testen spannungsversorguung nehme ich von stk500 und ligt bei 
ca. 3,3 volt
den vom usb liege ich bei 6.2 volt. es kommt aber die fehler meldung 
"USB-Gerät wurde nicht erkannt" und im geräte manager ist unknown device 
habe es bei USBVIEW nachgesehen und dort steht die meldung 
"devicefailedEnumeration".
Also gehe ich davon aus das ich noch an der software ändern muss, aber 
weiss nicht was.
danke euch für die hilfe
(Firma: matzetronics) #2487973
Lesenswert?

Bitte geb mal an, wie du den ATTiny taktest. V-USB läuft eigentlich 
recht sicher, aber der Takt sollte von einem externen Quarz kommen. Nimm 
einen 16Mhz Quarz und vergiss nicht, das in den Projekteinstellungen 
anzugeben. 16 Mhz vertragen sich aber nicht unbedingt mit einer 
Versorgung von 3.3 Volt. Arduino läuft allerdings auch so.

D+ muss unbedingt an einen Interrupt mit hoher Priorität angeschlossen 
sein, INT0 bietet sich an.
Gast #2488748
Lesenswert?

also er läuft mit einem 12MHz Quarz(Habe noch alternativ ein 20MHz 
OSZI), den V-USB bekomme ich nicht compeliert,
V-USB-20100715 gezogen und und den test Ordner ausprobiert.
er zeigt mir ein error aber mein Kenntnisse sind noch nicht so weit, ich 
kann mit dem fehler nichts anfangen könnt
../main.c:130: error: expected '=', ',', ';', 'asm' or '__attribute__' 
before 'usbMsgLen_t'

Wie stelle ich die Projekteinstellungen ein und was mache ich mit den 
Makefiles

D- ist an INT1
D+ ist an INTO
Gast #2489232
Lesenswert?

mal eine verständniss frage wird, muss ich bei AVR-CDC eine was 
zusätzlich installieren?
habe das so verstanden das ich den code drauf brenne in den pc stecke 
und muss dann die eine inf datei installieren (avr-cdc.inf und 
lowcdc.inf).
bzw. muss auch die libusb-win32 installiert sein?

danke für die tipps
Gast #2489242
Lesenswert?

Avr-GCC ist im WinAVR-Paket enthalten. Das braucht man zum Kompilieren 
der Firmware. LibUSB ist eine Möglichkeit, USB-Geräte ohne eigenen 
Treiber anzusprechen. Dein Win 7 fragt schon selbst, wenn es den 
LibUSB-Treiber braucht. Das bedeutet dann zumindest schonmal, dass du D+ 
und D- angelötet hast.
Gast #2489342
Lesenswert?

also lag ich richtig, (laufen tuts trozdem nicht).
so gehe ich immer vor :
habe mir cdcio (tiny2313) drauf gebrannt und an PC angeschlossen dann 
kommt die meldung USB-Gerät wurde nicht erkannt. Gehe dann in 
Geräte-manager und will treiber manuell installieren und zwar lowcdc 
(avrcdc_inf->xpvista7-> lowcdc). dann kommt die meldung "treibersoftware 
für das gerät ist auf den neuesten stand". Habe es auch mit der avrcdc 
so gemacht kommt das selbe bei rum

aber das war dreieck mit Unkown Device bleibt?
(Firma: matzetronics) #2490310
Lesenswert?

Danny schrieb:
> Matthias Sch. schrieb:
>> aber der Takt sollte von einem externen Quarz kommen.
>
> V-USB mit Tiny und internem Quartz nennt sich EasyLogger.

Du meinst sicher den Code mit der 'Autocalibration' auf 12.8 Mhz ?( 
Tinys haben keinen internen Quarz, sondern nur einen RC Oszillator). 
Habe ich hier nie zuverlässig zum laufen bekommen und deswegen den Tipp 
mit dem externen Quarz gegeben. Vor allem ist es ein Problem , wenn du 
V-USB erst nach dem Einschalten mit dem Host verbindest.
Ich takte übrigens immer mit 16Mhz , damit läuft alles gut und sicher.

Oliver J. schrieb:
>> meldung USB-Gerät wurde nicht erkannt.

Das bedeutet nur, das der 1k5 Pullup Widerstand für ein USB 1 Gerät 
erkannt wurde.
Gast #2490426
Lesenswert?

habe die ganze Schaltung aufs Steckbrett gesetzt und direkt dort 
gebrannt, denn auf den stk500 wurde die On-Board Quarz genutzt.
der Quarz schwingt den wenn ich in raus ziehe kann ich in nicht brennen.
am Quarz sind 22pF angeschlossen wie im Datenblatt.

> Hast du auch das richtige Hexfile für den µC gebrannt?
mehr mal überprüft

> Hast du Lastkapazitäten am Quarz?
22pF

> Hast du die beiden Dioden in der Spannungsversorgung?
zwar keine 1N4148 sondern BZX85-C3V6

>USB+ und USB- vertauscht?
auch öfter getestet

> Die Fuses richtig gesetzt?
extended 0xFF
HIGH 0xDF
LOW 0XFF

> Miss mal nach ob dein Quarz auch schwingt.
der Quarz schwingt den wenn ich in raus ziehe kann ich in nicht brennen.

Spannungversorgung vom stk500 liegt bei (Vtarget =3.3) und wenn von
USB bei 4,5V

Der Code ist zu unübersichtlich für mich bin Ihn durch gegangen finde 
aber nicht was ich verändern sollt.

Danke nochmals für die Tipps
(Firma: matzetronics) #2490441
Lesenswert?

kluski schrieb:
> zwar keine 1N4148 sondern BZX85-C3V6

Dir ist aber klar, das das 3,6 Volt Zenerdioden sind, oder ? 1N4148 sind 
normale Si-Dioden und werden nach der anderen Methode verschaltet - 
siehe bei OBDev. Zeig mal Schaltplan oder deine Bauvorlage.
Stelle dein Projekt richtig ein auf Taktfrequenz und Device. Ändere die 
Porteinstellungen in 'usbdrv/usbconfig.h' auf deine Verhältnisse.
Gast #2490538
Lesenswert?

Matthias Sch. schrieb:

> Dir ist aber klar, das das 3,6 Volt Zenerdioden sind, oder ? 1N4148 sind
> normale Si-Dioden und werden nach der anderen Methode verschaltet -
> siehe bei OBDev. Zeig mal Schaltplan oder deine Bauvorlage.
> Stelle dein Projekt richtig ein auf Taktfrequenz und Device. Ändere die
> Porteinstellungen in 'usbdrv/usbconfig.h' auf deine Verhältnisse.

Das weiss ich denn aus meinem usb port kommen ca.6,5 volt. um das ganz 
bischen zu begrenzen auf 4,5 volt und hatte die auch nur zuhause ;).

> In Reihe zu Vusb?
ja habe es nach CDCIO nachgebaut die schaltung ist fast die selbe
(siehe Anhang)
habe mir datei gezogen (im Anhang) und habe sie so nachgebaut(tiny2313).
Angehängte Dateien:
Gast #2494734
Lesenswert?

So bei läuft der cdcio zwar immer noch nicht.
wusste jetzt nicht ob ich ein neues thema aufmachen soll, denn 
theoretisch ist es halb abgeschlossen.
Habe mir die cdcSpi gebrannt und wird auch erkannt, aber läuft als 
Master
wollte eine SW-SPI schreiben habe ein paar fragen bzw. ob meine 
überlegung richtig sind.
Pin Deklarationen
SW-SPI-Master
MOSI = Ausgang
MISO = Eingang
SS = Ausgang
ScK = Ausgang
und bei Slave halt umgekehrt
MOSI = Eingang
MISO = Ausgang
SS = Eingang
SCK = Eingang

das war auch nicht das Problem sondern mir geht es um SCK,
den der Master gibt mir den takt vor, von 1MHz oder 125kHZ (kann ich mir 
aussuchen). Es muss doch jedes mal wenn am Slave-SCK-eingang von high 
auf low wechselt ein Bit am mosi raus oder liege da falsch.
#2497349
Lesenswert?

kluski schrieb:
> Es muss doch jedes mal wenn am Slave-SCK-eingang von high
> auf low wechselt ein Bit am mosi raus oder liege da falsch.

Es läuft immer wie folgt, damit wie mit einem D-Flipflop sicher Daten 
übernommen werden:

1. Pegel werden gesetzt
2. Aktive Clock-Flanke kommt
3. Pegel werden gesetzt
4. Aktive Clock-Flanke kommt
...

Das gilt für Sender und Empfänger. Nur dass der Master eben den Takt 
vorgibt.
mfg mf
Gast #2498044
Lesenswert?

um das zu lösen dachte ich mir das so
=>
if(ss) wird SS low
dann übtragung starten
SCK als interrupt, wenn der into ausgelöft wird soll ein bit am MISO 
nach
ISR (INT0)
bit schieben
links/rechts(LSB/MSB) geschoben werden.
und interrupts so lange erlauben bis SS wieder auf high geht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren