Ich habe mir einmal das Referenzprojekt von https://www.obdev.at/products/vusb/easylogger.html aufgebaut. Die Schaltung ist ja auch sehr einfach und hoffentlich nicht so fehlerträchtig. Die gängigen Fehler sind vermieden (UB sauber und kurz mit 220nF terminiert, alle Verbindungen kurz). Einzige Änderung am AD Wandler hängt ein lm335 zur Temperaturmessung. Der liefert sinnvolle Spannungen. Ein kleines Testprogramm tut auf der Hardware problemlos und läßt die LED blinken. Nun flugs das Referenzprojekt angepaßt (tiny45 -> tiny85, Programmer ist anders), make - alles Ok, make flash, alles Ok. Beim Anstecken an den USB Bus bekomme ich aber leider keine Funktion sondern diese Fehler (Linux): Jan 31 22:34:29 hans kernel: usb 4-1.6: device descriptor read/64, error -32 Jan 31 22:34:30 hans kernel: usb 4-1.6: device descriptor read/64, error -32 Jan 31 22:34:30 hans kernel: usb 4-1.6: new full-speed USB device number 6 using ehci-pci Jan 31 22:34:30 hans kernel: usb 4-1.6: device descriptor read/64, error -32 Jan 31 22:34:30 hans kernel: usb 4-1.6: device descriptor read/64, error -32 Jan 31 22:34:30 hans kernel: usb 4-1.6: new full-speed USB device number 7 using ehci-pci Jan 31 22:34:31 hans kernel: usb 4-1.6: device not accepting address 7, error -32 Jan 31 22:34:31 hans kernel: usb 4-1.6: new full-speed USB device number 8 using ehci-pci Jan 31 22:34:31 hans kernel: usb 4-1.6: device not accepting address 8, error -32 Jan 31 22:34:31 hans kernel: usb 4-1-port6: unable to enumerate USB device Beim drücken des Tasters geht die LED an, aber es kommen keine Tastaturdaten. Die HW ist so simpel, da kann doch nichts schiefgehen ? Einzige Unbekannte ist das USB Kabel, das mußte eine alte USB Maus spenden und ist ca. 80cm lang und ungeschirmt. Im Forum hatte ich ein paar ähnliche Beiträge gefunden wo es kritisch zu sein scheint mit dem Takt, der im Beispielcode automatisch kalibriert wird. Ich habe diese Routine einmal entfernt und den Takt der CPU mit einem Fregquenzzähler (Testrogramm LED an, LED aus, 6 Taktzyklen) genau auf 16,50x MHz abgeglichen - kein Erfolg, gleiches Verhalten. Hat jemand eine Idee was das sein kann ? Ich bin recht ratlos. Der Treiber sollte wohl recht gut "abgehangen" sein und keine Bugs enthalten. Bei den Bildern ist der Abblockkondensator im IC Sockel und nicht sichtbar.
Mach mal die frei rumhängenden USB-Adern (ohne Schirmung) kürzer. Das hat bei mir nie gut funktioniert wenn die so rumschlackern. Ich bin dann dazu übergegangen die V-USB Teile (damals noch tinyUSB) direkt mit Stecker zu bauen, wie ein USB-Stick eben. Ich sehe auch in deiner Schaltung nicht wo da der Kerko direkt am Vcc vom Tiny sein soll - der ist wichtig. Ich werd jetzt nicht deine Schaltung aus dem Board reversen, ich kann aber sagen, dass diese Schaltung bei mir immer einwandfrei funktioniert hat - so krude sie auch sein mag! https://www.obdev.at/Images/vusb/circuit-zoomed.gif
Nein, ein probeweises Tauschen bring gar keine Meldung. Muß also richtig sein und stimmt auch mit dem Schaltplan.
Ja, das Kabel habe ich auch in Verdacht, ich werde es einmal kürzen und berichte. - Der Kerko ist direkt unter dem IC (kurze Leitungen). Test Softwas läuft ja auch problemlos. Allen schon mal vielen Dank!
Und ja, die funktioniert auch mit dem tiny45 - es geht mir um die Vcc aus USB über 2 Dioden und USB D+/- ohne Z-Dioden nor mit Widerständen auf Int1/2.
Die Z-Dioden machen nämlich auch oft mal probleme - nimm die im Zweiffel einfach mal raus. Angswiderstände sind ja da...
Liegt an der Kapazität der Z's - die SMD-Z's sind da meist ok, mit bedrahtet hatte ich Probleme.
Ich vergaß zu erwähnen, daß das Verhalten ohne Z-Dioden mit 3,3V UB das gleiche, Falsche ist. Jedoch wir der Controller bei 3,3V und 16,5 MHz ein wenig außerhalb der Specs betrieben (geht aber, nur Serienfertigung sollte man sicherlich nicht so machen). Hat eigentlich jemand mal einen Tiny mit externem Takt hochgejagt ? Ich vermute bei 5V wird es mit einzelnen Exemplaren auch noch mit 40MHz gehen (aber ohne den Segen von Atmel) ?
Nana, das ist doch hier kein Overclocker-Forum. Die Z's hängen an den USB-D+/- um den Pegel zu begrenzen wenn der Chip nur mit 3,xV läuft. Denn die AVR's dürfen an den Digitalpins ja nur was - Vcc+0,?V bekommen? Ist schon etwas her das Datenblatt. Mit den zwei 1n4148 in der 5V-Leitung vom USB lief mein Tiny45 immer so mit ca. 3,6V. Klar sind die 16MHz für 3,3V und auch 3,6V außer Spec. aber das ist kein Problem gewesen. Lief trotzdem immer. Die Mega8 im USBasp laufen ja auch bei 3,3V noch problemlos. Bisher hab ich noch keinen AVR gefunden der nicht bei 3,3V trotzdem mit seinem für 5V garantierten Takt lief. Ist halt eben nur nicht von Atmel garantiert...
Warte mal, ich hab mir gerade doch noch mal dein Aufbau angesehen. Der Tiny läuft doch mit 5V und du ziehst die D+/- Signale auf Z-Spannung runter. DAS hat nie zuverlässig funktioniert meiner Erfahrung nach. Lass den Tiny auf 3,?V laufen - dann wird alles gut. 2x 4148 in die USB 5V oder ein 3V3 Regler. Z-Stabilisierung würde vieleicht auch gehen, hab ich aber nie gesehen. Viel Erfolg - Zeit fürs Bett!
Hans Müller schrieb: > Jan 31 22:34:30 hans kernel: usb 4-1.6: new full-speed USB device number > 6 using ehci-pci Man beachte das "full-speed" bei der Meldung. VUSB ist nur Low-Speed, und die unterscheiden sich daran dass der Pullup bei Low Speed an D- gehängt wird. Du hast also mit fast 100%iger Sicherheit irgendwo D+ und D- vertauscht. Das kann so nicht tut.
Es ist mir schon fast peinlich. D+ und D- waren tatsächlich vertauscht. Nun spielt es wie es soll! Herzlichen Dank an alle!
Hi Gibt es diese vUSB-Routinen auch als ASM? Fand bis jetzt nur C-Files und damit kann ich nicht so :/ (Klar kann ich die HEX zerpflücken, aber so richtig glücklich werde ich damit wohl auch nicht werden) MfG
Patrick J. schrieb: > Gibt es diese vUSB-Routinen auch als ASM? Es gibt sogar deutlich besseres als das. Nur leider nicht öffentlich verfügbar. Der eigentliche Trick von V-USB ist allerdings auch bei V-USB selber NATÜRLICH direkt in Assembler geschrieben. Weil: Es gibt schließlich nix, was besser ist, wenn es um exaktes Timing geht und es gibt auch nix besseres, wenn es um maximale Performance geht. Sprich: Du musst einfach mal in die Tiefen der Verzeichnistruktur der Quelltexte schauen, dann findest du auch reichlich Assembler. Vermutlich sogar deutlich mehr als du jemals sehen wolltest und verstehen kannst... > Fand bis jetzt nur C-Files und damit kann ich nicht so :/ > (Klar kann ich die HEX zerpflücken, aber so richtig glücklich werde ich > damit wohl auch nicht werden) Du könntest statt dessen auch einfach die USB-Specs lesen. Das bissel recht triviales Zeug, was V-USB in C implementiert, kann man (deutlich effizenter) recht leicht auch in Asm umsetzen. Wenn man denn Assembler wirklich kann und obendrein weiss, was man da eigentlich programmieren will. Für letzteres muss man halt die USB-Specs gelesen und verstanden haben. So einfach ist das eigentlich...
Hi c-hater Von mir ist die '-1' nicht anmerk Werde mich dann Mal, ... wenn Zeit ... Lust ... Kleingeld ... weitere Ausreden hier einfügen ... daran machen, dem Zeug 'unter den Rock' zu schauen. Bei den ganzen Spezifikationen bin ich mit meinen minimalistischen Englisch-Kenntnissen (wurde schon versucht, Diese aufzupäppeln ...) wohl eher Außen vor - aber auch Das wird mich nicht aufhalten! Eigentlich hast Du ja Recht, man muß ja 'nur' schauen, daß der USB-Controller Das bekommt, was Er haben will - wird aber trotzdem noch einiges an Zeit brauchen - bin da noch etwas feucht hinter den Ohren, gelobe aber Besserung :) MfG
Patrick J. schrieb: > Eigentlich hast Du ja Recht, man muß ja 'nur' schauen, daß der > USB-Controller Das bekommt, was Er haben will - wird aber trotzdem noch > einiges an Zeit brauchen - bin da noch etwas feucht hinter den Ohren, > gelobe aber Besserung :) Warum der Stress? Es gibt schließlich Controller wie den PIC16F1454, die nicht/kaum teurer sind, auch in DIL erhältlich und USB 2.0 Full Speed in Hardware eingebaut haben, welches auch ohne Quarz auskommt. Natürlich alles 100% standardkonform und zertifiziert. fchk
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.