Hi!
Wie kann ich den I2C Bus am RN-Control via Bascom für 10 sek. deaktivieren?
Also dass keine I2C Signale gesendet werden.
Habt ihr eine Idee?
Danke!
Gruß
Dennis
Hi!
Wie kann ich den I2C Bus am RN-Control via Bascom für 10 sek. deaktivieren?
Also dass keine I2C Signale gesendet werden.
Habt ihr eine Idee?
Danke!
Gruß
Dennis
Nx versteht. Der sendet doch eh' nur, wenn du es ihm sagst ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Du müsstest im Register TWCR das Bit TWEN für die zehn Sekunden auf null setzen. Aber ich schließ mich der Frage von PicNick mal an: wozu?
Hi!
Also wie schon in dem zuvor eröffnetem Thread habe ich das Problem, dass beim Einschalten (nicht immer) meiner Control Boards (RN-Control + AnxS20) die Servos wie wild in eine Position fahren und da stehen bleiben. Dies passiert immer ganz willkürlich und es ist auch kein Schema daraus zu erkennen oder sonstige Regelmäßigkeiten.
Die beiden Boards sind mit einem I2C Kabel verbunden.
Trenne ich nun dieses Kabel beim Einschalten so hören die Servos direkt auf mit dem Spuck.
Daraus schließe ich, dass es daran liegt, dass das Servoboard I2C Signale bekommt, die es nicht bekommen dürfte.
Um das zu verhindern dachte ich mir, dass ich einfach die I2C Schnittstelle 10 sek. deaktiviere, bis das Programm in den beiden Controllern läuft, und diese die richtigen Signale abgeben ohne durch irgendwelche Spannungsspitzen oder beim Einschalten verursachende Störquellen, die die Servos in Positionen steuern, wo sie gar nicht hinsollen.
uwegw wie meinst Du das mit den Registern?
Danke!
Gruß
Dennis
Geh, schau mal, ob das was mit den +5V auf dem Kabel zu tun hat.
Sprich, du sollest das trennen, damit die Betriebs Spannungen der zwei Boards sich nicht gegenseiting masssakrieren
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
hast du mal versucht, die I2C-Schnittstelle nicht sofort beim Einschalten, sondern erst nach nen kurzen Verzögerugn zu starten? Also die Konfigurationsbefehle nciht sofort beim Programmstart ausführen lassen.
Hi!
Also was ich schon probiert habe ist folgendes:
Danke!Code:$regfile = "m32def.dat" 'Die Anweisung bestimmt Ccntrollertyp, hier AVR Mega 32 $crystal = 16000000 $baud = 9600 Wait 5 I2cinit 'Startet den I2C Bus ' I2C SETUP Config Scl = Portc.0 Config Sda = Portc.1 Config Twi = 100000 'LED AUS Config Portc.2 = Output Config Portc.3 = Output Portc.2 = 0 Portc.3 = 0 ' CONSTANTS 'Anx-S20 Board Slave Adresse Const Anx = &HC2 ' FUNCTIONS Declare Sub Anxwrite(byval Servo As Byte , Byval Pos As Byte) ...
Gruß
Dennis
Eigentlich alle + Spannungen. Da die Boards ja alle versorgt sind, braucht der Bus nur GND, SCL u. SDA.
Schaumal, manchmal kann man das auch jumpern
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hi!
Also im RN-Control Handbuch steht:
Zum I2C Bus:
Die PIN?s 5,7,9 und 10 können über herausnehmbare Kurzschlussbrücken (Jumper JP6) vom
Board getrennt werden. Dies ist zum Beispiel dann notwendig, wenn bereits ein anderes
Masterboard die Spannungen auf den Bus legt. Es darf immer nur ein Board die Spannungen
bereitstellen.
Bei mir sind alle 3 Jumper herausgenommen (sind zuständig für UB, +5V und INT).
Danke!
Gruß
Dennis
Lesezeichen