Mach mich gleich ran.
Netter Gruß
Da ich mit der RS232-Versíon des Servo Coprozessor nicht recht glückling war/bin, habe ich versucht, das ganze als I2C-Sklave zu machen. Beim RNKC10 gab's das zwar schon, aber da konnte man keine normalen I2c-Routinen verwenden, wegen der Geschwindigkeit.
Ich teste diese neue Version dzt. mit 100-400 kHz Master-Speed und versuche das Programm in einen Fehler zu hetzen.
Versuchen tu ich am Mega32 mit HW-TWI & Bascom-Soft I2C
Ihr würdet mir einen Gefallen tun , wenn sich es weitere Versuch-Kaninchen geben würde, die das Zeugs ein wenig testen könnten und ev. darüber berichten.
Es ist auch ein Test-Demo-Versuchsprogramm für dem AtMega32 dabei, also gewissermassen mundgerecht für die RNBFRA-Karte
Edit: Das RNSI2C.HEX ist für den AT90S1213 und
RNSTEST.BAS für den AtMega32
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Mach mich gleich ran.
Netter Gruß
Die ersten zehn Millionen Jahre waren die schlimmsten. Und die zweiten Zehn Millionen Jahre, die waren auch die schlimmsten.url
So, damit das nicht ganz so trocken ist, ein Bild Deiner Servo-farm.
Dazu ein Stück Terminalmitschnitt. Der ist mir noch nicht klar, schaue ich mir morgen noch mal an.
8 Servos laufen, jedenfalls dem Auge nach gleichzeitig und synchron, jetzt schon über eine Stunde, furchtbar, ticker, tickker, ticcker, tickker, tickker....., sssssst,
Die restlichen 2 Servoports machen exakt das gleiche wenn man die Servos mal umsteckt.
Ich meine wer hat den 10 Servos so auf die schnelle.
Die 3 LEDs blinken brav und der Kühlkörper auf dem Board wird richtig schön warm.
So, das war’s erstmal für Heute
Netter Gruß nach Wien und Kompliment der Herr
Siehst, so geht's mir auch.Zitat von marvin42x
Küß' die Hand und g'schamster Diener !Netter Gruß nach Wien und Kompliment der Herr
EDIT: Das Log:
"S" / ServoNr / Position / TWI-Status (20 = "Schreibadresse not Acked")
Da hat der Co nicht geantwortet, vermutlich, weil grad bei der I2C-Startbedingung ein Timer-Interrupt aufgetreten ist.
Das läßt sich auch bei langsameren Geschwindigkeiten nie ganz vermeiden, deswegen auch eine einfache sendewiederholung.
Wenn wir dann Multimaster machen, kommen Konflikte ja dann häufiger vor (Arbitrierung der Master), das ist wie bei Ethernit Netzen.
Das muß ein Master dann abkönnen, das gehört dazu.
Ich find die Häufigkeit aber erträglich. Ich wär wirklich froh, wenn man den Co zuverlässig als I2C Slave einsetzen könnte.
Für unsere Routerei wär's auch gut, wenn da mal was weitergehen würde.
EDIT II: Du siehst, daß dieser Fall hauptsächlich (oder nur) beim ersten Servo auftritt. die anderen 9 Servos kommen ja gleich hinten nach (ohne stop mit repeated Start), da klappt's dann besser
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Was Du für Wörter kannst, da musste ich erstmal in google nachgucken was „Arbitrierung“ überhaupt heißt.
Ich habe meinem Seriel-Jumper schon mal vorgewarnt, dass er möglicherweise Urlaub bekommt.
Bis dahin drück ich Dir die Daumen das da nix blödes mehr in den Weg kommt.
Zumindest haben wir schon mal eine Maschine mit der man jemanden in den Wahnsinn treiben kann
Netter Gruß
Die ersten zehn Millionen Jahre waren die schlimmsten. Und die zweiten Zehn Millionen Jahre, die waren auch die schlimmsten.url
Vielleicht noch ein rhythmischeres Servo-Programm.. jemanden in den Wahnsinn treiben ..
Walzer: ssssssst, rtz, rtz, ssssssst, rtz, rtz, ssssssst, rtz, rtz, ...
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Einsame Spitze!
Darauf habe ich lange gewartet!
Jetzt kann es ja losgehen mit der I2C-Servoansteuerung auf der RNBFRA!
Vielen Dank PicNick!
Jetzt kommt noch was ganz dreistes:
Gibt es eine Chance, dein Prog auf dem 2313 kennen zu lernen? Wie hast du das hingekriegt? Ich würde das gern kapieren!
P.S.: Ich teste natürlich eifrig mit,- und das auf 2 RNBFRAs gleichzeitig (leider habe ich nur 8 Servos, die ich locker verteile).
Gruß Dirk
@Dirk: freut mich, wenn's gefällt.
Das Programm besteht aus zwei Schweinereien: Die I2C Geschichte
und das Servofummeln. Letzteres ist dem RNS1 entnommen, und da sitzt der Frank drauf, da hat er sozusagen Copyright.
Aber die I2C-Geschichte kannst du schon haben, die derzeitige Version ist allerdings noch nicht konfektioniert, sprich, man muß im Bascom doch noch etwas rumwursteln. Ist eben ein Prototype.
Ich bin noch nicht sicher, wie ich das am besten einpacke (Schnittstellen), damit man vernünftig damit arbeiten kann.
Ich muß dazu kurz den Computer wechseln, ich stell das Zeugs mal rein, bis dann halt !
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
So , da sind wir wieder. In der zip sind drei dinge:
2313.bas für den 2313 Co Prozessor
MyTwi.LIB die braucht er, die muß zu den anderen Bascom-libraries (muttu gucken, wo)
M32s.bas für den ATmega32
ABlauf : Master schickt 3 byte an der 2313. macht stop und PRINT
dann schickt er ein Byte an der 2313 (überschreibt das erste von den dreien)
macht gleich wieder START
und liest jetzt die drei Byte vom Slave
macht stop
und PRINT
Status sollte immer 28 oder 58 sein (ack)
Dann sendet er noch an das Powerport und blinkt
und PRINT sol auch 28 sein (ack)
Der Slave steht Lade-bei-fuß. Will der Master schreiben, empfängt er das, will er lesen, sendet er den gleichen Buffer zurück
Hat er ein Stop-gekriegt, sendet der Slave an den anderen PCF (Output) das erste Byte vom Buffer. Sollten also binär aufsteigend sein.
Wildes rumschicken, sollte auf keinen Fall wo hängen bleiben.
Alles Prototypes ohne Gewähr
Sachdienliche Hinweise erbeten, Fragen gerne
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Dzt. noch keine Möglichkeit eingebaut, die I2C adresse zu ändern...2 RNBFRAs gleichzeitig ..
Ist ja irgendeine Hausnummer. Gehört zu der "konfektionierung" dazu.
Weiss auch nicht recht, wie. Ich hab keine Pins auf dem 2313, die man jumpern könnte. Vielleicht irgenwas software-mäßiges und im ERAM speichern ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen