PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C Slave mit bascom



sme-bbg
06.03.2004, 05:20
So ich habe mich jetzt entschieden die sensoren für meinen robby intelligent zu machen , das heißt ich werde 8 von den sharp sensoren nehmen und zu sehen auf dem roboter montieren..
Der sub cpu soll diese dann schwenken und jeweils für 5° den messwet abspeichern...

den dac des Cpus auslesen ist kein problen auch die servoansteuerung nicht ... nur i2c....

daraus soll dann Pro sensor aus dem gesammten schwenkbereich ein mittelwert gebildet werden der an den haupt cpu auf anfrage weitergegeben wird...

min problem istnun wie bekommen ich den hauptcpu dem subcpu mitteilen kann welchen wert von welchem Sensor er nun haben möchte

Ichhabe da was von registern gelesen aber bin im i2c bus noch nicht über den PCF portexpander rausgekommen

Haupt und sub cpu ist jeweils ein AT90S8535 und proggen tue ich mit bascom

Frank
06.03.2004, 12:01
Hi Sme,

da hast du ja in etwa da sgleiche vor wie es schon auf dem Roboternetz-Board gemacht wird. Hier soll ja auch der CoProzessor im Slave-Modus arbeiten. Sobald ein Beispielprogramm bereit steht, dürfte das dann auch für dich interessant sein.
Kijion arbeitet bereits daran. Ich weiss nur nich tob es Bascom, C oder Assembler sein wird. Soll bald fertig sein. Sollte es kein Bascom sein, dann werd ich versuchen auch noch ein Demo für Bascom hin zu bekommen. Solltest du es früher schaffen, dann bitte unbedingt hier posten, dann hab ich etwas Zeit gespart.

Gruß Frank

CityJumper
06.03.2004, 16:16
wenn ihr was habt, währe ich auch sehr interesiert, da ich auch im moment versuche mit bascom einen i2s slave zu frickeln, bis jetzt lieder ohne ervolg.

mir fehlt aber auch das wissen über den i2c bus.. aber naja..
ich hoffe das das einer hin bekommt.

auch dir frank schonmal danke für deine mühe!!

mfg
michael

Frank
06.03.2004, 16:20
Schaut Euch mal diesen Thread an https://www.roboternetz.de/phpBB2/viewtopic.php?t=694

Ich bin noch nicht dazu gekommen das auszutesten, sollte aber sowas in der Richtung sein

sme-bbg
06.03.2004, 18:21
Schaut Euch mal diesen Thread an https://www.roboternetz.de/phpBB2/viewtopic.php?t=694

Ich bin noch nicht dazu gekommen das auszutesten, sollte aber sowas in der Richtung sein
hmm ist doch in assembler geschrieben....mist... mit c ode3r basic könnte ich ja noch was anfangen ..... aber damit ...

also das mit dem dac einlesen und mit der servonasteuerung habe ich heute mal in der hardware getestet auch die übertragung via rs232 zum pc geht super.... also per hyperterminal bzw xterm

07.03.2004, 17:28
Es ist ein Basic-Programm mit integrierter Assembler Routine. In Basom kann man ja Assemblerprogramme einfach zwischdrin nutzen (im gegensatz zur C-Control wo man sich mit extra Assembler beschäftigen muß). Vielleicht kann man die integrierten Assemblerroutinen einfach als Blackbox von den Basic Funktionen aus nutzen.

sme-bbg
07.03.2004, 20:30
@gast ja das weißich nur in asm bin ich halt net so besonders gut

x-ryder
12.03.2004, 21:58
kannste da nich einfach den cpu ne zahl durch nen portpin ausgeben lassen und der subcpu steht auf empfang.

dann liest der subcpu die zahl und weiss dadurch welchen wert er über nen anderen port an die cpu weitergeben soll

Red Dragon
29.03.2004, 20:08
so werde ich das bei der kommunikation vom pc machen. da es eh nur in eine richtung muss kann ich damit ziemlich viel erreichen

tomkeule
05.04.2004, 21:44
Hi,
wollte mal nachfragen ob es schon etwas Neues in Bezug auf I2C-Slave mit Bascom gibt. 8-[


mfg

Tomkeule

God
05.04.2004, 22:39
Ja gibt noch was aber leider nur ne noob-Frage: 8-[
Was bedeutet eigentlich das der MC als Slave oder Master konfiguriert ist?
Kann der MC über Slave nur Daten senden und über Master nur Empfangen?
Oder wie ist das?

mfg God

05.04.2004, 22:40
Genau umgekehrt ;-)

sme-bbg
05.04.2004, 23:01
genauso wie bei sklave und herr ... *GG*

Frank
05.04.2004, 23:54
Vom Bascom Hersteller gibt es eine kleine Libary (allerdings kostet die ein paar Euro). Damit kann man Programme relative einfach als I2C Slave programmieren.

tomkeule
06.04.2004, 00:00
Hat eigendlich schon jemand mit dieser Libary gearbeitet ?

Die 4.95€ habe ich Gestern investiert. Vor 10min ist die Mail mit den 2 Dateien angekommen. Werde mich Morgen mal drann versuchen.

Falls jemand irgendwelche Beispiele hat? Bin an allem zu diesem Theme interesiert.

mfg

Tomkeule

Frank
06.04.2004, 00:07
Ich hab die Libary auch hier! Das Demo sieht einigermaßer verständlich aus. Aber ich bin auch noch nicht dazu gekommen was damit zu machen. Ich komme erst dazu wenn mal meine Mechanik fertig ist.
Aber an Beispielen und Programmen mit der Libary bin ich durchaus auch interessiert.
Schade ist das offenbar die I2C Port´s fest vorgegeben sind. Wenn ich das richtig verstanden habe lassen sich diese nicht anders konfigurieren.

Gruß Frank

06.04.2004, 07:20
Hoffentlich kann man die Ports ändern. Das Ganze ist eigentlich für das RNBFRA gedacht um die Servos anzusteuern.

mfg

Tomkeule

Frank
06.04.2004, 12:33
Also wie ich es verstanden habe ist in der Libary der Port fest definiert. Aber ganz sicher bin ich auch noch nicht. Kannst ja mal Nachricht geben falls du zum austesten kommst.

Ansonsten wäre es aber kein Beinbruch, du kannst die Libary trotzdem für das RNBFRA BORD verwenden, denn ein Port stimmt überein und der andere Port ist beim Board nicht belegt und wird auch überhaupt nicht verwendet. Er liegt zudem noch ganz genau neben dem vom Board verwendeten I2C Bus. Also du bräuchtest nur diesen unbelegten Pin des CoProzessors mit dem daneben liegenden Pin brücken und schon könntest du wahlweise die Libary benutzen oder den von Kjion geplanten Servo-Baustein.
Sollte das notwendig werden, kann ich dir nochmal die genauen Pin´s nennen! Aber zuerst sollte man mal die Software Möglichkeiten der Libary checken.

Es gibt immer eine Lösung ;-)

Gruß Frank

tomkeule
06.04.2004, 17:27
Würde es eigentlich auch funktionieren wenn ich die Pins7 & 8 des Coprozessors auf der Unterseite der Platine verbinde und dabei den Pin 7 weiterhin mit dem I2C-Bus beschaltet lasse. Oder muss die Verbindung unterbrochen werden. Wenn ich die Verbindung nicht trennen müßte könnte ich auch Kjion's Programm verwenden.

mfg

Tomkeule

Kjion
06.04.2004, 18:21
Sollte funktionieren ( Notfalls kann ich das schnell noch in meinem Programm ändern ). Frank hat übrigens schon mein Programm zum testen ;) Sollte also in den nächsten Tagen soweit sein...

MfG Kjion

Frank
06.04.2004, 22:01
Ja ich sehe es auch so. Du müsstest Pin 7 und 8 des Coprozessors problemlos brücken können. Das ginge mit einem Lötpunkt, allerdings würde ich ein Stück draht vorziehen, da skann man dann jederzeit wieder ändern falls man mal was anderes mit dem unbelegten Port vorhat.

Bei dem Programm im CoProzessor darf man dann einfach den Port den man nicht nehmen möchte, auch nicht im Programm konfigurieren. Er müsste dann ja als Eingang hochomig sein und beeinflußt den anderen Pin nicht.
Somit kannst du ohne Hardwareveränderung die Libary nutzen oder Kjions Programm. Bei der Testversion von Kjions Software gibt es noch ein paar kleine Problemchen, aber wird Kjion sicher noch in den Griff bekommen.
Bei Programmen im CoController könnte man übrigens auch den Bascom-Befehl Servo benutzen!

Frank
09.04.2004, 14:35
Die Software Probleme mit der Servoansteuerung sind soweit gelöst. In Kürze wird das Programm für Kjions-Servo-Platine als auch für den CoController den RNBFRA Boards in Download gestellt. Damit können dann 10 Servos ganz einfach über einen einzigen Bascom Befehl in eine gewünschte Position gebracht werden. Natürlich können auch andere Programmiersprachen benutzt werden.
Kjion macht noch eine Doku dazu!

Gruß Frank