PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wii Motion Plus - Nunchuck Passthrough Mode



Che Guevara
17.08.2011, 19:46
Hallo,

in letzter Zeit habe ich mich etwas in die Aktivierung des Passthrough-Modes des WMP (und Nunchuk) eingelesen. Gestern Abend hab ich dann mal beide Teile auf je eine eigene Platine mit LM317 gelötet. Jedes einzelne Modul funktioniert auch bestens, nur sobald ich in den Passthrough Modus will, bekomme ich einen Fehler bei der I2C Kommunikation. Habe mir schon versch. Programme im Arduino-Forum (z.b. von DogP) angesehen, welche scheinbar alle funktionieren! Habs dann mal in Bascom versucht, aber leider gehts nicht. Die ersten gesendeten Befehle zur Initialisierung funktionieren noch (Error = 0), aber das auslesen der 6 Bytes macht mir irgendwie Probleme (Error = 1). Ich kann mir mittlerweile nicht mehr erklären, wo der Fehler liegen könnte, zumal die Module seperat ja funktionieren....
Hier mal mein Code:


$regfile = "m32def.dat"
$crystal = 16000000
$framesize = 80
$hwstack = 80
$swstack = 80


Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Config Lcdbus = 4
Initlcd
Cls
Cursor Off Noblink

Locate 1 , 1
Lcd "WMP + NUNCHUK"


$lib "I2C_TWI.LBX"
Config Scl = Portc.0
Config Sda = Portc.1
Config Twi = 100000
I2cinit



Dim Tmp As Byte
Dim Pos_x As Byte
Dim Pos_y As Byte
Dim Acc_x As Byte
Dim Acc_y As Byte
Dim Acc_z As Byte
Dim Buttons As Byte
Dim Buffer(6) As Byte
Dim Xid As Byte

Buffer(1) = 0
Buffer(2) = 0
Buffer(3) = 0
Buffer(4) = 0
Buffer(5) = 0
Buffer(6) = 0



Waitms 200



'##############
'INITIALISIEREN
'##############


I2csend &H53 ; &HFE ; &H05

Locate 2 , 1
Lcd "ERROR: " ; Err

Waitms 100

I2csend &H53 ; &HF0 ; &H55

Locate 2 , 1
Lcd "ERROR: " ; Err

Waitms 100

I2csend &H52 ; &HFA

Locate 2 , 1
Lcd "ERROR: " ; Err

Waitms 100


'Wire.requestFrom (0x52,6);
'Outbuf[0] = Wire.receive() ; Serial.print(outbuf[0] , Hex) ; Serial.print( " ");
'Outbuf[1] = Wire.receive() ; Serial.print(outbuf[1] , Hex) ; Serial.print( " ");
'Outbuf[2] = Wire.receive() ; Serial.print(outbuf[2] , Hex) ; Serial.print( " ");
'Outbuf[3] = Wire.receive() ; Serial.print(outbuf[3] , Hex) ; Serial.print( " ");
'Outbuf[4] = Wire.receive() ; Serial.print(outbuf[4] , Hex) ; Serial.print( " ");
'Outbuf[5] = Wire.receive() ; Serial.print(outbuf[5] , Hex) ; Serial.print( " ");

I2creceive &H52 , Buffer(1) , 0 , 6 'Ab hier geht nichts mehr!!!

Locate 2 , 1
Lcd "ERROR: " ; Err


Xid = Buffer(1) + Buffer(2)
Xid = Xid + Buffer(3)
Xid = Xid + Buffer(4)
Xid = Xid + Buffer(5)
Xid = Xid + Buffer(6)

Locate 2 , 10
Lcd "ID: " ; Xid

Wait 1



Waitms 100

I2csend &H52 ; &H08

Locate 2 , 1
Lcd "ERROR: " ; Err

Waitms 500

Gosub Send_zero

Waitms 500


Cls



Do


'Send_zero() ; / / Send The Request For Next Bytes
'Delay(100);
'Wire.requestfrom(0x52 , 6);
'Outbuf[0] = Wire.receive();
'Outbuf[1] = Wire.receive();
'Outbuf[2] = Wire.receive();
'Outbuf[3] = Wire.receive();
'Outbuf[4] = Wire.receive();
'Outbuf[5] = Wire.receive();

Gosub Send_zero
Waitms 1
I2creceive &H52 , Buffer(1) , 0 , 6
'I2cstart
'I2cwbyte &H52
'I2crbyte Buffer(1) , Ack
'I2crbyte Buffer(2) , Ack
'I2crbyte Buffer(3) , Ack
'I2crbyte Buffer(4) , Ack
'I2crbyte Buffer(5) , Ack
'I2crbyte Buffer(6) , Nack
'I2cstop

Locate 1 , 1
Lcd Buffer(1) ; ":" ; Buffer(2) ; ":" ; Buffer(3) ; " "
Locate 2 , 1
Lcd Buffer(4) ; ":" ; Buffer(5) ; ":" ; Buffer(6) ; " "



Loop


Send_zero:
I2csend &H52 ; &H00
Return

End


Hat jemand evtl. schonmal was mit dem Passthrough Modus gemacht und könnte mir evtl. ein bisschen unter die Arme greifen? Ich weiß momentan nicht mehr weiter, da ich schon so ziemlich alles ausprobiert habe. Natürlich habe ich die WMP gemäß http://radio-commande.com/wp-content/uploads/2010/06/WMP_NK_wiring1.jpg angeschlossen.

Vielen Dank & Gruß
Chris

Che Guevara
27.08.2011, 03:12
Hat noch niemand den Passthrough Mode aktiviert? Ich selbst komme nicht mehr weiter...

Gruß
Chris

Che Guevara
03.10.2011, 01:13
Keine Ideen? ... Schade.

peterfido
03.10.2011, 13:13
Wenn Du die Programme richtig umgesetzt hast, würde ich als nächstes Soft-TWI probieren. Das läuft bei mir ab und an besser als mit der LIB...

Che Guevara
19.10.2011, 20:36
Hallo,

die Software Lösung funktioniert leider auch nicht, hat jemand noch ne Idee?

Vielen Dank & Gruß
Chris