Hi,
3k3 bedeutet 3,3k und 1k8 bedeutet 1,8k.
mfg Kay
Wenn ich den Atmega8 (5 Volt) mit den Nunchuck (3.3 Volt ) verbinden will könnte ich das doch wie hier im Bild. An den Wiederständen steht 3k3 oder 1k8 .
Also 3k und 1k ist klar doch was ist diese 3 und 8 ???
Hi,
3k3 bedeutet 3,3k und 1k8 bedeutet 1,8k.
mfg Kay
Hallo
Wenn man weiß wie es funktioniert klappt das auch mit der orginalen RP6-TWI-Library in C:
Die Ausgabe dazu sind die sechs Daten-Bytes des Nunchuk:Code:// WII-Nunchuk am RP6 erste Versuche mit TWI in C 8.8.2008 mic #include "rblib.h" #include "rblib.c" #include "rblcdlib.c" #include "RP6I2CmasterTWI.h" #include "RP6I2CmasterTWI.c" uint8_t i=0; // Hilfsvariable uint8_t nunchuk_data[6]; // Nunchuk-Daten void lcd_start(void) { lcd_init(); // lcd initialisieren lcd_cls(); // lcd Inhalt löschen lcd_locate(2,0); lcd_writeString("RP6 ROBOT SYSTEM"); lcd_locate(1,1); lcd_writeString("WII-Nunchuk am RP6"); } void lcd_ausgabe(void) { lcd_locate(2,2); for(i=0; i<5; i++) { lcd_writeInteger((nunchuk_data[i] ^ 0x17) + 0x17, 16); lcd_writeString(" "); } lcd_writeInteger(((nunchuk_data[i] ^ 0x17) + 0x17) & 3, 16); lcd_locate(2,3); lcd_writeString("Tasten: "); lcd_writeInteger(128+lcd_getkeys(), 2); } int main(void) { rblib_init(); // rblib initialisieren I2CTWI_initMaster(400); // TWI mit 400kHz initialisieren I2CTWI_transmit2Bytes(0xa4, 0x40, 0); // Nunchuk Speicheradresse setzen lcd_start(); // LCD-Startbildschirm darstellen while(1) { I2CTWI_transmitByte(0xa4, 0); // Datenlesemodus starten I2CTWI_readBytes(0xa5, &nunchuk_data[0], 6); // sechs Bytes lesen for(i=0; i<5; i++) { writeInteger((nunchuk_data[i] ^ 0x17) + 0x17, 16); writeString(" "); } writeInteger(((nunchuk_data[i] ^ 0x17) + 0x17) & 3, 16); writeString("\n"); lcd_ausgabe(); delay_ms(50); } return(0); }
Echt einfach.Code:Terminal cleared! 7c 81 76 84 dc 3 7c 81 7a 8c df 3 7c 81 82 8e dc 3 7c 81 83 8a dc 3 7c 81 7d 8c df 3 7c 81 6f 8c dd 3 7b 81 4b 7f c2 3 7b 81 42 79 a7 3 7b 81 3f 79 ab 3 7b 81 4b 82 d3 3 7b 81 88 8d db 3 7c 81 af 7d b1 3 7c 81 ab 6e 91 3 7c 80 a0 7b b5 3 7b 80 8b a7 c0 3 7b 80 91 bc a8 3 7b 80 85 c1 a8 3 7b 80 86 b2 cb 3 7b 80 81 7e de 3 7b 80 7b 58 aa 3 7b 80 76 57 bf 3 7b 80 8e 88 dc 3 7b 81 93 8f d9 3 78 81 89 8f d6 3 4f 7f 87 91 db 3 1b 7d 85 90 dd 3 1b 7e 86 90 dd 3 1b 7e 82 90 dc 3 1b 7e 82 90 dc 3 7a 81 83 91 dd 3 7b 81 84 8f dc 3 80 80 85 8f db 3 a5 7d 86 8f db 3 df 80 86 8f dc 3 df 7f 85 8f dc 3 df 7f 88 8f db 3 df 7f 88 90 db 3 79 81 87 8e db 3 7a 80 86 8e db 3 78 a0 86 8f dc 3 71 d5 84 8e db 3 71 df 87 8d dc 3 71 df 85 8d dd 3 71 df 86 8e dd 3 7a 81 85 8d dd 3 7a 81 85 8c dd 3 80 79 85 8c db 3 82 3d 84 8c dc 3 83 22 85 8c dc 3 82 21 85 8c dc 3 81 20 84 8c dc 3 80 1f 86 8c dc 3 7a 81 84 8c dc 3 7a 81 86 8d dd 3 7a 81 81 8b db 3 7a 81 7e 8b db 3 7a 81 7d 87 db 3 7a 81 7e 8a df 3 7a 81 81 8a dc 3 [RP6BOOT] [READY]
Gruß
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 zusammen
Anstatt einen neuen Tread anzufangen schreibe ich hier weiter.
Erstmal ein grosses dankeschön an Radbruch. Dank deiner Entwicklungsarbeit funktioniert das auslesen des Nunchuk einwandfrei!
Nun zu meinem Problem:
Ich habe das Nunchuk an den I2C Bus meines Hexas gehängt. Wenn ich ein kleines Programm schreibe welches nur das Nunchuk ausliest funktioniert es einwandfrei (5 weitere I2C Teilnehmer hängen auch am Bus werden aber nicht angesprochen).
Wenn ich jetzt aber das Nunchuk Programm in meinen kompletten Hexacode einbaue stürzt der Bus ab und mein Mastercontroller bleibt einfach stehen und macht nix mehr.
Hat jemand das Nunchuk schon einmal zusammen mit anderen Busteilnehmern getestet? Das Nunchuk hat eigene 1k8 Pullup Widerstände für den I2C Bus eingebaut, ich habe diese mal ausgelötet da ich am Master ja schon Widerstände habe, dies hat aber nichts gebracht.
Hat jemand eine Idee warum der Bus abstürzt? hat schonmal jemand das Nunchuk zusammen mit anderen I2C Teilnehmern verwendet?
gruss Bluesmash
Meine Homepage:
www.bluesmash.roboterbastler.de
Hallo Bluesmash,
direkt probiert hatte ich das zwar noch nicht, hatte das aber bei meiner Anpass-Schaltung berücksichtigt. Das sollte aber funktionieren, die Schaltung stammt aus einer Philips Application note.
Bild hier
Es müssen nur alle 5V I2C Bus Teilnehmer auf der rechten Seite angeschlossen werden, und alle 3V I2C Teilnehmer, wie der Nunchuk, auf der linken Seite. Wenn bei dir schon I2C Bus Pullup Widerstände am Controller bzw. am Nunchuk vorhanden sind, kannst du die Widerstände aus der Schaltung natürlich weglassen, dann brauchst du nur die beiden FETs. Den BSN10A gibt es z.B bei Conrad. Du brauchst aber auf jeden Fall I2C Pullups auf beiden Seiten (5V u. 3V) sonst funktioniert die Schaltung nicht.
Hier nochmal der Link zum cc2 Thread
Danke für den Schaltplan.
Ich habe zum testen das Nunchuk einfach an 5V gehängt, funktioniert ja auch aber wenn zusätzlich die anderen I2C Teilnehmer abgefragt werden bleibt der Mastercontroller einfach stehen und macht nix mehr....
Ich habe das Gefühl dass, das nunchuk bei der kommunikation mit anderen I2C Teilnehmern "durcheinander" kommt und den Bus blockiert und der Master bleibt dann auch stehen da die Kommunikation nicht weitergeht....
gruss Bluesmash
Meine Homepage:
www.bluesmash.roboterbastler.de
nö das kann nicht sein, das nunchuk hat ja etwas mit 160 und meine Module haben die Adressen 2,4,6,10 und 12 (sind alles eigene Module mit M8/M168/M32)
Das währe Super wenn du dies mal testen könntest.
gruss Bluesmash
Meine Homepage:
www.bluesmash.roboterbastler.de
Hallo Bluesmash,
hier kann ich keinen Fehler feststellen. Ich kann einen PCF8574, einen DS1307 und ein 24C256 EEPROM zusammen mit dem Wii Nunchuk an einem I2C Bus ohne Fehler betreiben. Egal ob der Nunchuk mit 5V betrieben wird oder mit 3,3V.
vielen dank für deine mühe! ich bin jetzt auch wieder seit 2h am testen. momentan sieht es so aus dass,das nunchuk nur eingesteckt sein muss damit der bus abstürzt... es muss nicht einmal abgefragt werden... ich vermute jetzt langsam die 5V stromversorgung... werde mal meinen oskar rufen...
gruss Buesmash
Meine Homepage:
www.bluesmash.roboterbastler.de
Lesezeichen