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
kluski schrieb:> könnt Ihr mir bei dem problem weiter helfen?
Tritt das Problem auf PC (Windows)-Seite oder schon auf µC-Seite auf?
i.A.W. Erkennt Windows das Gerät schon (mit Namen etc) und kann nur
keinen Treiber laden, oder klappt schon das nicht?
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
also mit dem VUSB habe ich es aufgegeben hatte nochmal Libusb-win32
deinstalliert und noch mal installieret seit den hängt sich mein
wlan-stick immer auf.
Habe das jetzt das versucht
http://www.recursion.jp/avrcdc/cdc-io.html
das bekomme ich wenigstens auf den tin2313, wenn ich es dann am PC
anschließe kommt "USB-Gerät wurde nicht erkannt".
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
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.
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
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
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.
Danny schrieb:> oh verlesen. CDC braucht natürlich auch einen Treiber.
Aber nicht libusb. Da reicht der generische von Windows. Man muss
Windows aber über eine entsprechende inf-Datei mitteilen, das es seinen
Standardtreiber dafür nehmen soll.
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?
kluski schrieb:> meldung USB-Gerät wurde nicht erkannt.
Da liegt der Fehler außerhalb des PCs.
Hast du auch das richtige Hexfile für den µC gebrannt?
Hast du Lastkapazitäten am Quarz?
Hast du die beiden Dioden in der Spannungsversorgung?
USB+ und USB- vertauscht?
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.
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
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.
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).
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.
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
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.
Wenns jetzt noch von Belang ist: Zusätzliche Interrupts bei V-USB sind
gefährlich, weil man sich die Kommunikation über USB dadurch
kaputtfummeln kann.
mfg mf