Hallo,
hast Du auch den Pegelwandler von 5-auf 3,3V dazwischen?
Als ich den nicht drin hatte, bekam ich auch alle möglichen Werte zurück, erst mit der Pegelanpassung klappte es.
Hallo,
ich bin am versuchen, einen Nindento Wii Nunchuck Controller an einem ATmega32 zu betreiben, leider scheint es nicht ganz richtig zu laufen...
Ich bekomme die Daten wie auf http://www.wiili.org/index.php/Wiimo...ollers/Nunchuk ab 04a40040 (decrypted)
Code:Wii-Nunchuck Test app... let's go!!! 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 1 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 4 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 5 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 7 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 8 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 9 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 10 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 11 aa 0 0 0 0 0 0 0 0 0 0 0 a4 20 0 0 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 ff ff ff ff ff ff ff ff ff ff 0 0 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ff ff 16 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 17 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 18 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 19 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 20 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 21 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 22 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 23 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 24 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 25 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 26 ff ff ff ff ff ff ff ff ff ff ff ff ff ff aa 0 27 0 0 0 0 0 0 0 0 0 0 a4 20 0 0 0 0 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 0 0 ff ff ff ff ff ff ff ff ff ff 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0 ff ff ff ff 32 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 33 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 34 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 35 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 36 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 37 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 38 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 39 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 41 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 42 ff ff ff ff ff ff ff ff ff ff ff ff aa 0 0 0 43 0 0 0 0 0 0 0 0 a4 20 0 0 0 0 0 0 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 ff ff ff ff ff ff ff ff ff ff ff 0 0 0 0 0 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 0 0 0 0 0 0 0 0 0 0 0 ff ff ff ff ff 48 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 49 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 51 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 52 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 53 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 54 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 55 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 56 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 57 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 58 ff ff ff ff ff ff ff ff ff ff ff aa 0 0 0 0 59 0 0 0 0 0 0 0 a4 20 0 0 0 0 0 0 0
Das "aa 0 0 0 0 0 0 0 0 0 0 0 a4 20 0 0" scheint wohl eine TypeID zu sein oder so, also scheint die reine TWI-Implementation zu funktionieren.
Ich glaube eher, dass ich irgendwas beim Wiimote Erweiterungsslot-Protokoll nicht verstanden habe:
so wie ich das verstanden hab, muss folgendes geschen
1. sende an 0x52 die 2 bytes 0x40 und 0x00
loop{
2. sende an 0x52 ein byte 0x00
3. lese 6 bytes von 0x52
}
leider bekomme ich so immer nur 0xff zurück, und nun meine theorie: ich starte ab 04a40040 (0x40, 0x00) und bekomme dann immer 6 bytes, die natürlich 0xff sind...
Hat jemand einen Tipp für mich?
Dieser Thread https://www.roboternetz.de/phpBB2/ze...chuck&start=22 konnte mir leider auch nicht helfen
Grüße Uli
PS: Die oben genannten Ausgaben bekomme ich nur, wenn ich auf das 0x00 senden vorm lesen der 6 bytes verzichte...
Hallo,
hast Du auch den Pegelwandler von 5-auf 3,3V dazwischen?
Als ich den nicht drin hatte, bekam ich auch alle möglichen Werte zurück, erst mit der Pegelanpassung klappte es.
Hallo
Da es mit meinem RP6 (8MHz ATMega32) auch mit 5V recht gut funktioniert hatte scheint es nicht am Prozessor oder der Spannung zu liegen. Die TWI-Schreib/Leseadresse war bei meinen Versuchen unterschiedlich und 8bitig:
Mit 0xA4/0xA5 hat's bei mir letztlich funktioniert, dass hängt aber wohl von der verwendeten TWI-Lib ab?'Const Nunchuck_write = &H52 ' Slaveadresse
'Const Nunchuck_read = &H53
Const Nunchuck_write = &HA4 ' Slaveadresse
Const Nunchuck_read = &HA5
GrußCode:I2CTWI_transmitByte(0xa4, 0); // Datenlesemodus starten I2CTWI_readBytes(0xa5, &nunchuk_data[0], 6); // sechs Bytes lesen
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo,
danke für eure Antworten, ich habe das Problem gefunden und beseitigt:
ich hab bemerkt, dass ich nur müll (ff) bekomme, wenn ich zu schnell bin nach dem 0x00 senden.. also hab ich ein bisschen mit delay rumgespielt...
effektiv mache ich jetzt folgendes:
Grüße Uli1. sende an 0x52 die 2 bytes 0x40 und 0x00
loop{
. 2. sende an 0x52 ein byte 0x00
. 3. warte 200 µs (evtl auch weniger möglich, mit 100 gings netmehr)
. 4. lese 6 bytes von 0x52
. 5. auswerten und in variablen schreiben
}
PS: das mit 0x52 vs 0x53 ist meiner Meinung nach einfach nur die Modus-Angabe (lesen oder schreiben), also ist 0x52 die ID, beim schreiben muss das letzte Bit auf 0 sein, zu lesen auf 1
Prima, hast du schon eine Anwendung in Planung?
btw:
(aus https://www.roboternetz.de/phpBB2/ze...=389391#389391 :)Das Initialisieren funktioniert jetzt, wichtig scheint zudem eine kurze Pause zwischen dem Senden der "0" und der Abfrage der Bytes zu sein.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hi Radbruch,
schöner subtiler Hinweis von dir Ich hab das irgendwie überall überlesen... weiß auch net, wie mir das passiern konnte... nuja.. jetzt seh ich das quasi überall stehn :>
Meine Anwendung ist erstmal recht spielerisch: ich werd es wohl mit einem BTM-222 irgenwie verheiraten.. bin nur noch am zweifeln, ob ich meinen Plan, den Nunchuck ganz zu lassen übern haufen werfen soll und versuchen soll, in das Gehäuse selber ne platine mit nem atmega48, dem btm und ner lion-zelle zu quetschen... aber ich glaub, das würde wohl zu knapp werden...
Es könnte also z.b. für erste Tests mit dem Acclererometer mal meine PSX-Fernbedienung ersetztn oder so...
Grüße Uli
Lesezeichen