PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-Motor Problem Bitte Helfen!



nerofighter
23.06.2005, 17:40
Hi
Ich bau zur Zeit nen Roboter für die Schule als Projekt und muss leider schon in 10 Tagen fertig sein. Dazu habe ich die RN-Motor Platine nachgebaut ( Schaltplan der auf robotikhardware angegeben ist). Dazu verwende ich den RNST01 über I2C . Leider krieg ich einfach die Treiberbausteine L298 N nicht angeschalten. Ich hab außerdem dazu noch ne Sensorplatine gebastelt mit nem PCF8591 und Sharp Sensoren drann) Die Platine läuft super und auch die I2C Ansteurung ist korrekt da ich vom PCF8591 die Sensorwerte abrufen kann. Die Platine hab ich auch bereits unzählige male überprüft. Die Platine muss auch in Ordnung sein. Nun meine Frage: An was könnte es noch liegen?? Muss ich irgendetwas bestimmtes bei der Ansteurung noch beachten?? Ich verwende die i2C Befehle für den RNMotor die in der PDF Datei enthalten sind. Außerdem wenn ich den Strom anschalte dann leuchtet die LED an der Platine ein paar mal kurz auf. Hat das etwas zu bedeuten??

BIn über jede Info super dankbar

mfg. Nero

nerofighter
23.06.2005, 17:42
mit der Platine , die ich überprüft hab meinte ich die nachgebaute RNMotorplatine (https://www.roboternetz.de/bilder/icrnst01schaltplan.gif)

Frank
23.06.2005, 18:10
Mit welcherm Controller und welchen I2C Befehlen steuerst du das Board an? Ältere I2C Routinen sind nicht immer kompatibel, so ist zum Beispiel bekannt das die CC2-Routinen Probleme machen. Bascom klappt problemlos.
Am besten auch mal PC über rs232 verbinden und mit Terminal die Befehle I2C Rückmeldungen überwachen.

nerofighter
23.06.2005, 18:13
Hi
Ich verwende den RNST01 mit I2C
Die Befehle sind aus der RNMOTOR PDF.
DA ist ne Tabelle enthalten wo steht:
ÜBERSICHT ÜBER I2C SCHRITTMOTORBEFEHLE

Ich programmier mit Delphi
Hat das blinken am Anfang irgendetwas zu bedeuten?

nerofighter
23.06.2005, 18:13
Hab auch schon nen Oszi angeschlossen die Daten werden zur Platine gesendet nur leider reagiert diese nicht

Frank
23.06.2005, 18:19
Auch diese I2C Version kannst du über Max232 mit PC verbinden. Du kannst so kontrollieren ob i2c Kommunikation gut klappt.
Das blinken symbolisiert nur das ein RESET durchgeführt wurde und das Board bereit für Befehle ist.

Wie gesagt, eventuell stimmt was mit deinen i2c Routinen nicht. Ich hatte dir ja schon mal per Mail geschrieben das deine I2C Routinen die Clock Leitung überwachen müssen. Solange sie LOW bleibt ist RN-Motor noch beschäftig und es muss kurz gewartet werden. Das ist I2C Standard, wird aber oft von Eigenbau I2C Routinen nicht immer berücksichtigt

nerofighter
23.06.2005, 18:37
Das müsste aber das gleiche Prinzip wie beim AD-Wandler(PCF8591) sein oder? und bei dem kann ich frei lesen und schreiben

Frank
23.06.2005, 19:37
Nein, nicht alle Bausteine machen von diesen Waitzyklen Gebrauch

nerofighter
24.06.2005, 08:39
Kannst du mir mehr Informationen über das Terminal geben das du gemeint hast? Das ich mit dem RS232 das noch überprüf , ist nämlich ne klasse idee :)


mfg.

Frank
24.06.2005, 09:54
Wie es per Hardware angeschlossen wird sieht man ja im Schaltplan. Zum Terminalprogramm findest du im neuen Artikelbereich einiges, hier ganz unten:
https://www.roboternetz.de/wiki/pmwiki.php?n=Main.Inhaltsverzeichnis

Baudrate 9600 Baud, wie üblich

nerofighter
26.06.2005, 12:17
Hi
Also das mit dem Terminalprogramm will einfach nicht funzen. Der RNST01 verwerte einfach keine Signale die man ihm sendet deswegen gib das Terminalprogramm auch nichts aus. Nur warum? Die Ansteuerung kann doch vom PCF8591 nicht so unterschiedlich zum RNST01 sein oder??? Irgendetwas stimmt nicht! Und die I2C Routinen sind wirklich sehr gut ich verstehs einfach nicht . Bitte um Hilfe

nerofighter
26.06.2005, 18:15
HI
Also folgendes:

Ich hab die Platine und die Ausgänge des RNST01 an das Terminal mit dem Max angeschlossen. Wenn ich dann Strom anmache krieg ich am Anfang beim Reset die einzelnen Daten im Terminal aufgelistet. Also Schrittgeschwindigkeit und den Strom der Motoren ... Nur wenn ich nun Daten senden will nimmt der RNST01 nichts an! Nun meine Frage an sie und bitte antworten sie ehrlich... Verwendet der RNST01 die originalen i2C Routinen??? Also die identischen wie die von Philips? Weil hier im Forum hatte jemand schon mal die gleichen Problemen. Das wäre die einzigste Möglichkeiten, das der RNST01 auf eine "bisschen" andere Routine nur anspringt. Weil die i2c Routine die ich mit einem Freund programmiert habe ist identisch zur STANDART i2c!

mfg. nero

the_Ghost666
26.06.2005, 20:01
moin nerofighter, ich fürchte helfen kann ich nicht, aber ich hab gelesen, dass du die software in Delphi progst. ich suche immernoch nach guten quellen für passende funktionen für rs232 verkehr mit delphi. hast du da ein paar tips oder seiten, vielleicht fertige funktionsbibliotheken?

nerofighter
26.06.2005, 22:03
Hi
Ich programmier aber für die I2C Version also nicht für die RS232 aber wenn de willst kann ich dir gern ma nen Beispiel Prog schicken etc...
Warte immernoch auf die Antwort von Frank :)

Frank
26.06.2005, 22:10
HI
Nun meine Frage an sie und bitte antworten sie ehrlich... Verwendet der RNST01 die originalen i2C Routinen??? Also die identischen wie die von Philips? Weil hier im Forum hatte jemand schon mal die gleichen Problemen. Das wäre die einzigste Möglichkeiten, das der RNST01 auf eine "bisschen" andere Routine nur anspringt. Weil die i2c Routine die ich mit einem Freund programmiert habe ist identisch zur STANDART i2c!
mfg. nero

Ich habe auch bisher ehrlich geantwortet. Ich hab dir doch nun schon zweimal den Sachverhalt versucht zu erklären, einmal per Mail und einmal oben. Du musst auch schon ein wenig beachten was ich schreibe, sonst nützt es wenig.

Zum dritten mal:

Natürlich nutzt der Baustein das Standard I2C Protokoll wie es definiert wurde. Aber das RN-Motor macht auch von diesem Clock-Stretching (so heißt es glaube genau) gebrauch. Das bedeutet es zieht die Clock Leitung manchmal etwas länger auf GND (bei manchen Befehlen über eine Millisekunde). Dadurch muss der Master kurz warten. Dies ist in der Fachliteratur zum I2C-Bus gut beschrieben und alle I2C-Routinen die sich wirklich 100% an den Standard halten werden damit keine Probleme haben.
Aber da früher nur wenige oder kaum I2C-Bausteine dieses Clock-Stretching benutzt haben, haben viele Programmierer recht schnell I2C-Routinen zusammengezimmert die diese Überwachung der Clock Leitung einfach weglassen. Dadurch funktioniert die Ansteuerung vieler I2C-Bausteine immer noch, aber eben nicht mehr alle können angesteuert werden (dazu gehört auch die momentane RN-Motor Firmware).
Bei neuen Compilern wie Bascom ist das schon länger berücksichtigt. Ob das z.B. auch in GCC schon der Fall ist weiss ich nicht.
Also das müsste dein Programmierer der I2C-Routinen prüfen - vielen ist das Clock Stretching noch unbekannt. Am besten du erklärst es ihm.

Das wäre aber nur eine Annahme warum es bei dir noch Problemchen gibt. Natürlich ist durchaus auch denkbar das du noch irgendwo einen Schaltungsfehler drin hast oder einfach von der Syntax der Befehle was falsch machst. Das kann ich ohne Beispielprogramm nicht beurteilen. Ich kann dir nur sagen das es normalerweise sehr gut funktioniert.

Noch eins: DIe RS232 Schnittstelle ist bei diesem Baustein ja nur zur Ausgabe von kurzen Rückmeldungen vorgesehen. Du kannst mit dem Terminalprogramm keine Befehle übergeben!

Hoffe das hilft dir nun weiter.

nerofighter
27.06.2005, 08:12
Jo vielen dank. Noch was wenn ich das Terminal Prog drannhängt bekomm ich am Anfang wenn ich Strom einschaltet und der Reset an der Platine gesetzt wird eine Status Meldung über den RNST01 . Also muss die Platine ja funktionieren :) . Ich werd das mit der Programmierung versuchen

mfg. Nero

nerofighter
27.06.2005, 08:24
Hat evtl bisher irgendjemand ein Beispiel für den RNMOtor i2c in Delphi oder C oder sonst irgendetwas geschrieben? Weil mit dem Bascom Beispiel kann man absolut nichts anfangen da das ja wieder für irgendnen Rncontrol ist. Das wäre super wenn mir da jemand nen Beispiel geben könnte.....

nerofighter
27.06.2005, 19:20
Hi Frank
Wenn du willst kann ich dir gerne das Programm schicken und du kannst es dir mal anschauen wenn du möchtest...

Frank
27.06.2005, 19:35
Vielleicht postest du mal hier den passenden Auszug. Von Delphi hab ich wenig Ahnung aber vielleicht kann ich oder jemand anders was erkennen.

Übrigens die Meldungen nach RESET sagen ja nur das der Chip arbeitet, sie sagen nicht aus das die restliche Hardware korrekt ist. Da kann also immer noch Fehler drin stecken