Hallo, ich werd aus der angehängten Platine irgendwie nicht schlau, ich will rausfinden, welches die Pull-Up Widerstände der DATA und CLK Leitungen sind. Sieht so aus als würde z.B. vom CLK Pin überhaupt keine Leiterbahn wegführen? Schematic ist leider nicht vorhanden. Kann mir jemand helfen?
Wegstaben: Ich nehme an der gelb markierte, ich hab auch erst gebraucht, bis mir das aufgefallen ist. Du könntest das ganze einfache mal mit einem Durchgangsprüfer durchpiepsen. So viele Widerstände sind ja nicht drauf. Allerdings könnten auch interne Pullups genutzt werden. Wie sieht denn die andere Seite der Platine aus?
Auf der anderen Seite ist nicht viel drauf aber das was interessant sein könnte wird von der Steckerleiste überdeckt... Das mit dem Durchgangsprüfer probier ich jetzt mal. Bei den Pullups müsste ja dann ein Kontakt direkt mit VCC und der andere direkt mit CLK bzw. DATA verbunden sein, oder?
Ich glaub, da sieht man aus der sicht nicht viel. Die Widerstände können in den ICs sein, auf der anderen Seite, in der Platine verarbeitete Wiederstände (Hidden Resistors) können auch welche sein. Gehe ich recht der Annahme, dass das dieses Zusatzding für die WiiMote ist?? Sieht vom Stecker so aus und die Farbe vom Plastik sieht auch so aus. Da könntest du evtl bei google gucken. Manche haben ja schon die Beschleunigungssensoren angesteuert.
Du glaubst doch nicht, dass in diesem Massenprodukt für zwei fuffzich Bauteile in die Platine eingearbeitet sind. Was mich viel mehr interessiert: Was willst du denn mit den Pullups machen, wenn du sie gefunden hast? Ich meine, die sind da ja nicht umsonst da dran. Eventuell gibt es auch gar keine oder sie sitzen in der Wiimote und nicht im WMP.
Ja, ist ein Wii Motion Plus. Ich will das Teil aber mit Lego Mindstorms ansteuern und die Gyrosensoren auslesen. Die Kommunikation erfolgt über i2c. Allerdings sind für das Mindstorms Teil die Pull Ups angeblich zu klein. Das war zumindest beim Wii Nunchuk so. Da waren 1,8k Pull Ups drin, Lego fordert eigentlich 82k Pullups und es hat sich rausgestellt, dass die Verbindung mit 33k am besten funktioniert. Deswegen dacht ich, dass das bei dem Motion Plus auch so oder so ähnlich sein wird.
Naja als erstes solltest du mal herausfinden, welche Widerstände an CLK und Data liegen. Danach schaust du, ob diese Widerstände mit dem anderen Anschluss auf VCC oder GND liegen. Wenn du keine Pullups/Pulldowns ausmachen kannst, dann stecken Sie vermutlich in der Wiimote oder im ADC. Aus deinem Post entnehme ich, dass das Mindstorms die CLK- und Data-Leitungen mit so kräftigen Pullups nicht auf Masse ziehen kann. Mit einem einfachem Buffer-IC oder einer simplen Transistorschaltung könntest du das ausbügeln. Ist das eine original WiiMotionPlus, oder ein Fake? Je nachdem, was es für ein Fake ist, könnte ich auch mal nachschauen.
Kann keine Widerstände die an Clk oder Data liegen finden also sind die Pull-ups wohl im IC integriert? Ist ein original Wii Motion+
Du bist ein komischer Vogel. Du hast eingangs nicht mal gesagt, was das Objekt sein soll. Woher sollen wir wissen wo irgendwelche Widerstände von CLK oder DATA Leitungen liegen? Vielleicht solltest du es mal mit Nachdenken versuchen. Ich glaube dort wird I2C verwendet. Die Pullups für I2C sitzen am Master und sollten damit in der Fernbedienung sitzen und nicht in der Erweiterungsplatine.
Wie gesagt, beim Nunchuk wars so, dass die Pullups dort ausgetauscht werden mussten. Deswegen dachte ich, dass das hier auch so sein müsste...
Dachte, dass man als erfahrener Bastler vll "sieht" oder weiß, wo die Teile sind.
Simon K. schrieb: > Ich glaube dort wird I2C verwendet. Die Pullups für I2C sitzen am Master > und sollten damit in der Fernbedienung sitzen und nicht in der > Erweiterungsplatine. Ich persönlich würde mir an der Stelle von Nintendo möglichst viele Wege offenhalten, meine Hardware zu erweitern. Und da ist es ungeschickt, alle Bauteile in den Master zu pflanzen. Man ist flexibler, wenn man die Pullups in den (noch nciht existierenden) Slave baut.
Ach, jetzt habe ich das eigentliche Thema ganz außer Augen verloren: Probiere es doch einfach mal aus, ob's nicht ohne Modifikation geht? Ansonsten suchst du schnell die Betriebsspannung von Lego und Wiimote raus und meldest dich nochmal, dann kann man schauen, welche Buffer man da reinhauen könnte. Interessanter Link: http://www.wiibrew.org/wiki/Wiimote/Extension_Controllers#Wii_Motion_Plus
Jop, das werde ich jetzt wohl als nächstes machen... Den Link kannte ich schon =) Wie die Kommunikation abläuft ist auf mehreren Seiten beschrieben, das müsste ich nur noch für Mindstorms umschreiben. http://randomhacksofboredom.blogspot.com/2009/06/wii-motion-plus-arduino-love.html http://123a321.wordpress.com/2009/08/21/read-motion-plus-via-i2c/
Ok, ohne Modifikation läufts nicht, vorrausgesetzt mein NXT Programm is richtig... Lego Betriebsspannung sind afaik 5V, die von Motion Plus 3,3V
Dann brauchst du ja wohl einen Levelshifter. Hast du die Möglichkeit eine Platine zu ätzen? Wenn nicht, kann ich es dir machen, dann kann man das ganze als SMD aufbauen und es braucht nicht viel Platz. Kannst du vielleicht mal den ganzen Aufbau abfotografieren? Ich frage mich gerade, wie du das Nunchuck mit dem Lego versorgst, wenn die Spannungen gar nicht passen. Ausgehend davon kann man einen kleinen Levelshifter zusammenzimmern.
Also ich habe mich jetzt mal ein wenig über I2C-Levelshifting schlau gemacht. Der Knackpunkt ist, dass die Datenleitung bidirektional ist. Einfach einen Buffer in die Leitung zu hängen ist also nicht die Lösung. Die eine Lösung ist von NXP und funktioniert mit zwei N-MOSFET und vier Widerständen. Allerdings müssen dazu einige Vorraussetzungen erfüllt sein. Ohne nochmal genau die Eigenheiten der beiden Systeme zu analysieren, würde ich diese Methode nicht verwenden. Der Preis wäre mit 36Ct für die Bauteile natürlich super. Von Texas Instruments gibt es noch einen Levelshifter-Chip, der auf den Namen PCA9306 hört. Kostenpunkt 76Ct exkl. bei Abnahme von 5 Stück. Dazu kommen noch 5 Widerstände und zwei Kondensatoren. Das wäre meiner Meinung nach die eleganteste Lösung und auch noch universell. Wen du Zeit hast, dann könntest du den PCA9306 auch als Sample bei TI anfordern. Mit der richtigen E-Mailadresse (nix terminator007mega@gmx.tv oder so) sind die recht großzügig und liefern richtig fix. Wie gesagt, eine kleine Platine (einseitig mit Lötstopp) könnte ich dir schon ätzen und auch löten, wenn du SMD nicht beherrschst.
Ohje, scheint mir fast ein bisschen viel Aufwand zu sein, für so ein kleines Hobby Spaßprojekt... Ich hab halt gedacht, es würde vll genauso einfach wie beim Nunchuk funktionieren, da muss man nur die 2 Pullups rauslöten, zwei neue zwischenrein und es funzt. Zusätzlich hat der, von dem ich die Idee mit dem Umbau habe einfach eine Diode zwischenreingeklemmt um die Spannung zu reduzieren, obwohl der Nunchuk angeblich auch mit den 5V vom Mindstorms laufen soll. (siehe Anhang) Wäre das vll auch noch ne Idee die man ausprobieren könnte? Oder ist das eher ne dumme Idee mit der Diode?
Daniel schrieb: > Die eine Lösung ist von NXP und funktioniert mit zwei N-MOSFET und vier > Widerständen. Allerdings müssen dazu einige Vorraussetzungen erfüllt > sein. Welche sollen das sein? Bei mir tut die Schaltung super. Allerdings hab ich mit den empfohlenen BSN20 schlechte Erfahrung gemacht (was aber wahrscheinlich an einem anderen Fehler lag) und nehm daher immer BSH108 oder BSS138.
Oha, grad seh ich, dass der Pegel für CLK und DATA ja sogar beim NXT bei 3,3V liegt...
nintendomindstorms schrieb: > Zusätzlich hat der, von dem ich die Idee mit > dem Umbau habe einfach eine Diode zwischenreingeklemmt um die Spannung > zu reduzieren, obwohl der Nunchuk angeblich auch mit den 5V vom > Mindstorms laufen soll. Also ich würde das Nunchuck nicht mit 5V befeuern, wenn es normalerweise 3,3V haben möchte. Wenn unbedingt notwendig, müsste man dazu das Datenblatt der Chips zu Rate ziehen. Die Diode senkt die Spannung für das Nunchuck um ca. 0,7V ab. Das löst zwar das Versorgungsproblem mehr schlecht als recht, aber an den Datenleitungen passiert trotzdem noch nicht viel. Wemm irgendetwas passiert, dann eigentlich das Gegenteil von dem, was du haben möchtest. Die Level unterscheiden sich vielleicht noch mehr. Du kannst jetzt viel ausprobieren. Fakt ist nach allem, was du hier gemessen hast, dass du die Widerstände nicht tauschen kannst. Deswegen hilft es nichts, wenn wir über diese Lösung diskutieren.
nintendomindstorms schrieb: > Oha, grad seh ich, dass der Pegel für CLK und DATA ja sogar beim NXT bei > 3,3V liegt... Dann sollte man den Fehler vielleicht woanders suchen. Bist du dir sicher, dass dein WMP noch funktioniert? vielleicht waren die 5V über längere Zeit nicht gerade das gelbe vom Ei. Ich überlege die ganze Zeit, warum der Pullup zu klein sein sollte. Anscheinend schafft es eines der beiden Geräte nicht mehr, die Leitung auf 0-Potenzial zu bringen. Wenn du wenigstens ein Oszi hättest, dann könnte man an CLK nachmessen, ob es am Mindstorms liegt. Ich würde als nächstes die Spannung am WMP reduzieren (ZWEI Dioden in die Leitung). Möglicherweise befeuert das Teil die Datenleitung aktuell mit 5V und das Mindstorms (das ja für 3,3V konzipiert ist :-) bringt den Pegel nicht runter. Das passt zumindest zu der Lösung mit dem zu kleinen Widerstand.
Übrigens ziemlich leichtsinnig, ein Spielzeug für 250€ ohne fundamentierte Recherchen nach Herzenslust zu beschalten ;-)
Daniel schrieb: > Möglicherweise befeuert das Teil die Datenleitung aktuell > mit 5V und das Mindstorms (das ja für 3,3V konzipiert ist :-) bringt den > Pegel nicht runter. Das passt zumindest zu der Lösung mit dem zu kleinen > Widerstand. Achso, dann probier ich als nächstes die Betriebsspannung mit den zwei Dioden zu reduzieren. Ob das WMP noch funktioniert kann ich ausprobieren, habe bisher noch nichts dranrumgelötet oder so, allerdings kann ich das alles frühestens Dienstag Abend machen, dann meld ich mich wieder =) Danke schonmal für die Hilfe!
Spannung reduzieren hat nichts genützt, das Wii Motion Plus funktioniert aber auf jeden Fall noch...
Dann bleibt dir eigentlich nichts anderes übrig, als eine kleine Schaltung dazwischen zu hängen, wie auch immer die aussehen mag. Ich bin mir ziemlich unsicher, ob die Variante mit den FETs auch das Pullup-Problem lösen kann. Auf der NXT-Seite 82kOhm als Pullups anschließen. Auf der WMP-Seite hast du deine Pullups ja schon. Aber warum sollte das NXT jetzt die Leitung auf einmal über die DS-Strecke eines FETs auf GND bringen, wenn es das schon so nicht schafft... Mal ganz blöd gefragt: Hast du schonmal nachgemessen, ob im WMP überhaupt Pullups eingebaut sind? Vielleicht liegt der Fehler ja auch darin, dass gar keine Pullups vorhanden sind...
Wie find ich das denn raus? Einfach den Widerstand zwischen den Leitungen und VCC messen? Da krieg ich jeweils keine Werte, heißt das, es sind garkeine pull ups verbaut?
War das WMP an oder aus? Leg mal Spannung an und miss nochmal den Widerstand zwischen VCC und den Leitungen (einmal mit schwarzer und einmal mit roter Spitze auf VCC). Dann misst du noch die Spannung auf den Leitungen (nach Masse). Wenn du weder einen Widerstand, noch einen sauberen Logikpegel messen kannst, dann schalt einfach mal 33kOhm als Pullups rein. Dann müsste es klappen.
Ok, habs gemessen. Zwischen VCC und CLK hab ich bei schwarzer Messspitze an VCC nen Wert von -18,9kOhm gemessen. Ein negativer Widerstandswert? Keine Ahnung was das zu bedeuten hat. Mit vertauschten Messspitzen hab ich keinen Wert bekommen. Ähnlich bei VCC und DATA, da warens -31,2kOhm bzw. kein Wert. Spannungen gegen Masse hab ich bei CLK 0,88 V und bei DATA 2,26 V gemessen, also keine vernünftigen Pegel. Heißt das jetzt, das keine Pull-Ups verbaut/aktiv sind?
nintendomindstorms schrieb: > Spannungen gegen Masse hab ich bei CLK 0,88 V und bei DATA 2,26 V > gemessen, also keine vernünftigen Pegel. Heißt das jetzt, das keine > Pull-Ups verbaut/aktiv sind? Das liegt wohl nahe, probiers doch einfach aus. Häng schnell zwei Pullups rein und lass dein Programm schnell drüberwerkeln.
Wow, es scheint zu funktionieren! Hatte keine 33k Widerstände da aber 27k funktionieren genauso gut, denk ich. Ich krieg auf jeden Fall jeweils 6 Bytes Daten. =) Vielen, vielen Dank Daniel! Ohne deine Hilfe wäre das wohl nie was geworden... ^^
nintendomindstorms schrieb: > Vielen, vielen Dank Daniel! Ohne deine Hilfe wäre das wohl nie was > geworden... ^^ Ja gern geschehen ;-) Simon K. schrieb: > Die Pullups für I2C sitzen am Master > und sollten damit in der Fernbedienung sitzen und nicht in der > Erweiterungsplatine. Wir hätten auf Simon hören sollen^^
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.