@Hans
wolltest du es nicht mit C versuchen oder noch besser mit der Wii-Software???
@Hans
wolltest du es nicht mit C versuchen oder noch besser mit der Wii-Software???
So, jetzt raff ich es grad nicht... Wenn ich die MPU an den anderen I²C Bus hänge (twiC) und das entsprechend im Code ändere, dann funktioniert die IMU und sendet fleissig Werte... Ich hatte schon nach Fehlern auf der Hauptplatine gesucht aber nichts gefunden. Das ist doch etwas eigenartig. Chris sendet mir eine neue MPU Platine (die alte hat ziemlich gelitten bei den vielen Lötversuchen), dann kann ich wieder weitermachen :-D
Geändert von Willa (04.04.2012 um 19:35 Uhr)
Viele Grüße, William
-> http://william.thielicke.org/
Mach ich auch, ich fange aber nicht vor Ostern an. Mal sehen, was draus wird.
Meine PCB von Chris sind noch nicht eingetroffen. Die 4-Mot-Variante hätte mir auch gefallen, nur hast Du die Motoren unglücklich auf zwei Ports verteilt. Das bedeutet dann auch, dass man zwei Timer benötigt. Alle X0-Timer haben vier Capture/Compare-Register, alle X1-Timer eben nur zwei.
Vorab wollte ich noch den MPU6000 an SPI hängen und die Geschwindigkeit mit der I2C-Anschaltung vergleichen. Aber es ist eigentlich vorher schon klar, was da heraus kommt.
So schnell wie Chris bin ich natürlich nicht.
Gruß Hans
Oh ja, das erspart uns mal wieder Arbeit :-DWenn Interesse besteht, kann ich den Code reinstellen
Ich habe jetzt die erste Version des zweiseitigen MLF Layouts "fertig". Zweiseitig ist echt Neuland für mich, und entweder Eagle kann dabei echt nervig sein, oder ich checke es nicht richtig. 20x20 mm sind es im Moment. Vielleicht mag ja jemand mitpuzzlen? Die Bohrung der Pads ist 0.5mm, Bilex hat minimal 0.6mm. Wie kann ich das umstellen?
Edit: grad etwas überarbeitet...:
Geändert von Willa (05.04.2012 um 07:42 Uhr)
Viele Grüße, William
-> http://william.thielicke.org/
Hallo Willa,
wenn du die Bohrungen nur zum selber Ätzen verkleinern willst, dann kannst du in der Boardansicht ein ULP ( Knopf dazu oben neben den Lupen) laufen lassen: drill-aid.ulp
Hier kannst du die Bohrlöcher verkleinern lassen, sie werden dann auf Layer 116 dargestellt.
Zum löschen einfach Layer 116 alleine darstellen und dann mit DELETE GROUP wieder entfernen.
Morgen werde ich mir dein Layout einmal genauer ansehen.
Ich verzweifel nur langsam an ungenügenden Vorgaben, siehe Hans.
Gruß Bernd
Geändert von bendh (05.04.2012 um 08:02 Uhr)
Hallo Hans,
mach doch mal Vorgaben wo der Empfänger, die LEDs, der Sensor und die Motoren am besten angeschlossen sein sollen, dann male ich eben nochmals, das sollte kein Problem sein.
Gruß Bernd
Hi,
@Bernd:
warum willst du den nochmal ein Layout machen? Ich denke, zum ausprobieren reicht das jetzige doch locker, einzig die kleinen Anschlusspads sind etwas fummelig. Die externen Anschlüsse sind doch eigentlich schon alle festgelegt und passen!? Also ich habe mich, bis auf die 3 LEDs, an deine Vorgaben gehalten und bin schon ein paar mal erfolgreich geflogen
@Willa:
Meinen Code kannst du gerne haben, ist nicht viel dabei:
Je nachdem, wieviele Motoren du angeschlossen hast, kannst du ja evtl. wieder einen Timer ausschalten.Code:$regfile = "xm32a4def.dat" $crystal = 32000000 $framesize = 100 $hwstack = 100 $swstack = 100 $lib "xmega.lib" $external _xmegafix_clear $external _xmegafix_rol_r1014 Config Osc = Disabled , 32mhzosc = Enabled Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 Declare Sub Serial1charmatch() Config Com2 = 38400 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 Config Serialin1 = Buffered , Size = 100 , Bytematch = 13 Config Serialout1 = Buffered , Size = 100 Open "COM2:" For Binary As #1 '--Motor Constants-- Const Pwm_mot_off = 20000 Const Pwm_mot_max = 60000 '--PWM Settings-- Config Tcd0 = Pwm , Prescale = 1 , Comparea = Enabled , Compareb = Enabled , Comparec = Enabled , Compared = Enabled , Event_source = Off , Event_action = Off , Event_delay = Disabled , Resolution = 16 Config Tcd1 = Pwm , Prescale = 1 , Comparea = Enabled , Compareb = Enabled , Event_source = Off , Event_action = Off , Event_delay = Disabled , Resolution = 16 Tcd0_cca = Pwm_mot_off '############################## Tcd0_ccb = Pwm_mot_off Tcd0_ccc = Pwm_mot_off Tcd0_ccd = Pwm_mot_off Tcd1_cca = Pwm_mot_off Tcd1_ccb = Pwm_mot_off Dim A As String * 100 Dim B As Word Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled , Hi = Enabled Enable Interrupts Print #1 , "START" Do Loop End Sub Serial1charmatch() Input #1 , A , Noecho B = Val(a) Print #1 , B If B > 0 And B < 65000 Then Tcd0_cca = B Tcd0_ccb = B Tcd0_ccc = B Tcd0_ccd = B Tcd1_cca = B Tcd1_ccb = B End If End Sub
Die Werte habe ich von HTerm aus gesendet, ohne LF, nur mit CR am Ende.
Gruß
Chris
Es ging um das 4-Motoren-Board! Für vier Motoren braucht man keine zwei Timer. Die Version mit 6 Motoren ist schon eine gute Basis. Die LEDs an PortB, die Pads größer machen und vom PortC alle Pads zugänglich machen.
Aber nochmal, wegen mir braucht gar nichts geändert zu werden.
@Bernd,
eine Mail von Dir steht noch aus. Es ging um das gleiche Thema. Du kannst auch gern NEIN reinschreiben.
Hans
Hm ja klar, für vier Motoren reicht TCC0. Da das Prog aber sowieso sonst nichts macht, ist es ja eigentlich egal, wieviele Timer man benutzt
Hast du den meine Platinen schon bekommen, Hans?
Gruß
Chris
Meins schonDa das Prog aber sowieso sonst nichts macht
Der Briefträger hat heute morgen geliefert. Vielen Dank!
Hans
Lesezeichen