Hallo! Ich beschäftige mich schon seit längerem mit Mikrocontrollern und Elektronik. Hab auch schon Erfahrung mit Arduino, aber jetzt wollte ich mal richtig etwas eigenes bauen. Zufällig hab ich den ATTiny45-20pu gefunden... Ich benutze den mySmartUSB light und eine selbstgebaute Platine mit IC-Sockel und 6 pins wo ich den 6-poligen Stecker des ISP-Programmers dranstecke und den ATTiny einsetze... Als Programm benutze ich AVRFuses mit avrdude auf dem Mac. (Bild vom Programmer und der Platine sind angehängt.) Tja warum mach ich eigentlich das ganze? Ich bin auf http://macetech.com/blog/?q=node/46 gestoßen, ein kleines USB Gerät welches zw. 30 sec und 8 Minuten die Caps-Lock Taste emuliert... Also hab ich die .hex Datei die dort verlinkt ist auf den ATTiny raufgeladen... Als Programmer hab ich den stk500v2 eingestellt, die baud-rate ist auf 115200 gesetzt. Wenn ich die hex Datei auswähle und auf Program drücke, fangt der ISP-Programmer wild zu blinken an, dann sagt mir das Programm "Success". Scheint also irgendwie zu klappen. So und dann noch die Fuses.... Naja gut so ganz versteh ich das noch nicht, aber ich hab das mal so eingestellt: Häkchen bei: - Serial program downloading enabled - Brown-out detection level at VCC = 4.3 V - PLL-Clock; Startup time PWRDWN/reset: 1K CK/14 CK + 6 Auf program gedrückt, "Success"... Dann habe ich eben die Schaltung am Breadboard aufgebaut (ohne SMD)... Hab anstelle des 2k Widerstandes 2 mal 1k benutzt, statt des 68 ohm Widerstandes 78 ohm und 170 ohm, und einen 0.1uF Keramikkondensator (104 steht drauf). Und dann einen USB Stecker von irgendeinem Kabel das herum lag... So weit, so gut die Schaltung aufgebaut, aber es tut sich nichts... Der Mac erkennt irgendwie keine neue USB Tastatur und es macht anscheinend garnichts... Habs auch bei Windows probiert, normalerweise kommt ja ein Benachrichtigungston wenn man ein neues Gerät einsteckt - nichts! Tja nur wo liegt der Fehler?
Bevor dir irgendjemand helfen kann, lade die Bilder erstmal in einem passenden Format hoch. So tust du niemandem einen Gefallen. Dauert ja ewig. die anzuzeigen...
Das erste, was ich sehe ist, das die USB Norm insoweit verletzt wird, als das der 2k eigentlich ein 1k5 sein muss. Dann ist V-USB dafür bekannt, das es nicht immer gut funktioniert, vor allem, wenn der MC mit dem internen RC Oszillator läuft. Ausserdem darf auf den USB Leitungen eigentlich nur 3,3 Volt liegen, deswegen gibts bei http://www.obdev.at/products/vusb/index-de.html Vorschläge, wie das hinzukriegen ist. Für dich kommt eigentlch nur die Lösung mit den Zenerdioden an den Datenleitungen in Betracht, da die PLL Clock vermutlich mit 3,3V nicht gut läuft.
Jonas H. schrieb: > Bevor dir irgendjemand helfen kann, lade die Bilder erstmal in einem > passenden Format hoch. So tust du niemandem einen Gefallen. Dauert ja > ewig. die anzuzeigen... Bestimmt wollte er, dass jeder sehen kann, wie sehr seine Kamera rauscht. :-/ Hab' sie verkleinert. ==> Bildformate!
Matthias Sch. schrieb: > Dann ist V-USB dafür > bekannt, das es nicht immer gut funktioniert, vor allem, wenn der MC mit > dem internen RC Oszillator läuft. Internen Oszillator kann man für USB an sich vergessen, nicht nur bei V-USB. Mindestens ein Keramikresonator sollte es schon sein.
Ok, danke erstmal für die Antworten, nur warum funktioniert das dann bei dem Tutorial-Schreiber? Der verwendet doch auch keinen Keramikresonator... Hab da noch einen 8mHz Quarzresonator herumliegen, aber der bringt mir nicht viel oder? Gibt es irgendwas was ich ausprobieren könnte damit es funktioniert? Sorry wegen den Bildern und danke fürs verkleinern...
harru12 schrieb: > Hab da noch einen 8mHz Quarzresonator herumliegen, > aber der bringt mir nicht viel oder? So isses. Wie auf der V-USB Homepage bereits erwähnt, geht 12, 15, 16 oder 20MHz, wobei ich die besten Erfahrungen mit einem 16 MHz TTL-Oszillator am Tiny45/85 gemacht habe. Der Oszillator ist für dein Ich-Nerve-Leute-Keyboard-Stöpsel aber vermutlich zu gross. Bleibt also nur ein Quarz/Resonator mit der richtigen Frequenz. Das bedeutet aber auch, das du das Programm mit der richtigen Frequenz neu kompilieren musst. harru12 schrieb: > nur warum funktioniert das dann bei > dem Tutorial-Schreiber? Tja, das ist eben Glückssache, prüf aber mal, ob du nicht aus Versehen noch eine CLKDIV8 Fuse gesetzt hast. Der 2k (besser 1k5) Widerstand soll jedenfalls dem Rechner signalisieren, das da ein USB 1.0 Gerät angeschlossen wird. Sollte das schon nicht gehen, ist was an den USB Pins nicht richtig, z.B. D- und D+ vertauscht. Jörg Wunsch schrieb: > Internen Oszillator kann man für USB an sich vergessen, nicht nur > bei V-USB. Mindestens ein Keramikresonator sollte es schon sein. Bis auf V-USB habe ich noch nie ein USB Gerät ohne Resonator/Quarz gesehen, das würde beim Hersteller auch vermutlich Rückläufer ohne Ende geben.
Matthias Sch. schrieb: > Bis auf V-USB habe ich noch nie ein USB Gerät ohne Resonator/Quarz > gesehen, das würde beim Hersteller auch vermutlich Rückläufer ohne Ende > geben. Neuere FTDI-ICs können sowas. ;-) Vermutlich haben sie eine Testprozedur, die die Kalibrierdaten im EEPROM ablegt, sodass der Oszillator dann ausreichend in der Toleranz liegt.
Jörg Wunsch schrieb: > Neuere FTDI-ICs können sowas. ;-) Vermutlich haben sie eine > Testprozedur, die die Kalibrierdaten im EEPROM ablegt, sodass > der Oszillator dann ausreichend in der Toleranz liegt. So macht es der V-USB auch. Er kalibriert den internen Oszillator am Anfang der Verbindung anhand des USB-Datenstroms. Ob er auch im Betrieb nachkalibriert, weiß ich nicht.
Alexander Schmidt schrieb: > So macht es der V-USB auch. Er kalibriert den internen Oszillator am > Anfang der Verbindung anhand des USB-Datenstroms. Ob er auch im Betrieb > nachkalibriert, weiß ich nicht. Ich kenn nur Software, die am Anfang kalibriert. Trotzdem gibts kleine Unterschiede: Das Referenzprojekt "EasyLogger" von obdev.at kalibriert beim der ersten Inbetriebnahme und schreibt den Kalibrierungswert ins EPROM. Der Programmer "guloprog" kalibriert bei jedem Anschließen an die USB-Schnittstelle neu und speichert den Wert nicht. harru12: Schau dir mal dieses Projekt an: http://www.obdev.at/products/vusb/hidkeys.html Dürfte dem, was du vorhast, recht nahe kommen. Dort wird allerdings ein ATmega8 eingesetzt. Du kannst sicher auch einen ATtiny45 einsetzen, wie das geht, siehst du hier: http://www.obdev.at/products/vusb/easylogger.html Ein Quarz wird dabei nicht benötigt. Eine verbesserte Kalibrierungsprozedur findest du in den Quellen von "guloprog". Das Zeug ist alles Open Source, schaus dir ruhig mal näher an. Bei der Entwicklung des Programmers stellte sich übrigens heraus, dass der ATtiny45 vom Speicher her doch etwas zu knapp war, deswegen bist du mit dem ATtiny85 eventuell besser dran. Grüße Markus
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.