Forum: Mikrocontroller und Digitale Elektronik Welche sind die Pull-Ups?


von nintendomindstorms (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

welchen Clk-Pin an welchem Bauteil meinst du denn genau?

von Verwirrter Anfänger (Gast)


Lesenswert?

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?

von ich nich (Gast)


Lesenswert?

schonmal auf der anderen Seite geguckt ?

von nintendomindstorms (Gast)


Lesenswert?

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?

von Michael S. (rbs_phoenix)


Lesenswert?

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.

von Daniel (Gast)


Lesenswert?

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.

von nintendomindstorms (Gast)


Lesenswert?

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.

von Daniel (Gast)


Lesenswert?

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.

von nintendomindstorms (Gast)


Lesenswert?

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+

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von nintendomindstorms (Gast)


Lesenswert?

Wie gesagt, beim Nunchuk wars so, dass die Pullups dort ausgetauscht 
werden mussten. Deswegen dachte ich, dass das hier auch so sein 
müsste...

von nintendomindstorms (Gast)


Lesenswert?

Dachte, dass man als erfahrener Bastler vll "sieht" oder weiß, wo die 
Teile sind.

von Daniel (Gast)


Lesenswert?

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.

von Daniel (Gast)


Lesenswert?

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

von nintendomindstorms (Gast)


Lesenswert?

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/

von nintendomindstorms (Gast)


Lesenswert?

Ok, ohne Modifikation läufts nicht, vorrausgesetzt mein NXT Programm is 
richtig...

Lego Betriebsspannung sind afaik 5V, die von Motion Plus 3,3V

von Daniel (Gast)


Lesenswert?

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.

von Daniel (Gast)


Lesenswert?

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.

von nintendomindstorms (Gast)


Angehängte Dateien:

Lesenswert?

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?

von André H. (andrekr)


Lesenswert?

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.

von nintendomindstorms (Gast)


Lesenswert?

Oha, grad seh ich, dass der Pegel für CLK und DATA ja sogar beim NXT bei 
3,3V liegt...

von Daniel (Gast)


Lesenswert?

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.

von Daniel (Gast)


Lesenswert?

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.

von Daniel (Gast)


Lesenswert?

Übrigens ziemlich leichtsinnig, ein Spielzeug für 250€ ohne 
fundamentierte Recherchen nach Herzenslust zu beschalten ;-)

von nintendomindstorms (Gast)


Lesenswert?

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!

von nintendomindstorms (Gast)


Lesenswert?

Spannung reduzieren hat nichts genützt, das Wii Motion Plus funktioniert 
aber auf jeden Fall noch...

von Daniel (Gast)


Lesenswert?

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...

von nintendomindstorms (Gast)


Lesenswert?

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?

von Daniel (Gast)


Lesenswert?

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.

von nintendomindstorms (Gast)


Lesenswert?

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?

von Daniel (Gast)


Lesenswert?

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.

von nintendomindstorms (Gast)


Lesenswert?

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... ^^

von Daniel (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.