PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C VerarbeitungsSpeed



gamebeast
18.03.2006, 18:18
Betreff:

Hallo,

ich komm gleich mal auf denn Punkt.

Geräte:
1. RN-Control 1.4 (ATMega32)(16Mhz)
2. Ethernut(ATMega103)(3,..Mhz)
3. I2c LCD-Display

Um den Programmieraufwand auf den Flashs einzuschränken habe ich folgendes Aufgebaut.

(LinuxServer) -tcpip-> (Ethernut) -RS232-> (RN-Control) -i2c-> (LCD-Display)

1. Server sendet ein Datenpaket
2. Ethernut emfängt das Datenpaket und gibt es auf dem RS232 aus.
3. Der RN-Control emfängt das Datenpaket und mach ein I2C datenpaket draus und sendet es an LCD
4. LCD gibt text aus.

Was natürlich vereinfacht ausgrdrückt ist weil ein I2C Tempsensor vorher abgefragt wird
und einiges anderes was am Server verarbeitet wird und dann auf dem LCD ausgegeben wird.

Da das nun alles einiges an Zeit beansprucht möcht ich das gerne überarbeiten.
1. Ethernut (ATMega128+16Mhz) einbauen.

Mein Vorschlag.

(LinuxServer) -tcpip-> (Ethernut) -i2c-> (LCD-Display)

1. Server sendet Datenpaket an Ethernut.
2. Ethernut sendet dieses Datenpaket 1:1 an I2C.
3. LCD-Display emfängt und zeigt an.

Am schluss soll der Ethernut nur 1x Programmiert werden und alles andere soll am Server ablaufen.
Der Server soll dann mehrere Datenpakete senden. z.B: 1.Start 2.writeslaveid 3.data 4.data ... 10.Stop

Meine frage is nun ob der Ethernut das in einen Ordentlichen geschwindigkeit(400khz) schaft.
bei einen 4x20LCD-Display währen das dann mal 80Datenpaktete im schlimmsten fall.

Das Programmieren der Ethernut App sollte kein Problem sein.

Ich bitte doch meine Rechtschreibefehler zuübersehen ich habe schon lange nicht mehr Deutsch geredet(geschrieben) :)

Danke für eure hilfe schonmal
MfG Gamebeast

Superhirn
18.03.2006, 19:32
ich kann dir leider nicht so viel helfen. Aber mal eine ganz simple Frage:
Warum schickst du die datenpakete nicht gleich über rs232 an den uC? oder es gibt da auch so ein RN-projekt, was einen RS232/I²C Adapter realisiert. Das wär ja auch was tolles. (meiner meinung nach).

gamebeast
18.03.2006, 21:55
Aus meinen Augen ist es einfacher eine NetzwerkApplikation zu schreiben als unter Linux auf den RS232 zuzugreifen.

Ich habe 3 Monate versucht via fopen() auf denn Com1 zuzugreifen aber es hat nie so geklappt wie ich es wollte.
Und da ich noch einen Ethernut rum zuliegen hatte war das für mich der bessere Weg. Zumal ich mich mit der Netzwerkprogrammierung mehr beschäftigt habe. :)

aber der Rn-Control macht ja momentan nix anderes als RS232 auf I2C wandeln. Was auch ein grund währe ihn aus der Schaltung zuentfernen.

MfG
Gamebeast

izaseba
18.03.2006, 22:47
Warum nimmst Du nicht eine Fertige Lösung?

Ich hab es so gemacht:

Einen Mega8 mit RS232 zum PC, an dem ein LCD hängt( in meinem Fall ein mit KS0070B und neuerdings M50530 Kontroller)
Ein kleines Programm auf dem Mega, das Crystalfontz Befehle vom RS232 empfängt und für das Display umwandelt.

auf dem PC lcd4linux damit hast Du Zugriff auf alle Sensoren und infos aus dem /proc Verzeichnis und bist super flexibel

Gruß Sebastian

gamebeast
18.03.2006, 23:21
Ja ja wenn das so einfach währe.

Also ich gehe jetzt mal mehr ins Detail.

Ich habe ein Atmega8 der via I2c erreichbar ist und für das gesamte FS20 System zuständig ist ca 35 Emfänger.

Ich habe 14 I2c LCD-Displays die alle verteilt sind.
2 I2c Touchsreens
7 I2c ADwandler die auch alle Verteilt sind.

Da das alles vom Server aus abläuft wollte ich eigentlich nur denn RN-Control 1.4 rausnehmen und Direkt I2c befehle senden um das ganze ein bissen klein zuhalten.

kurz um der Speed läst sehr zuwünschen übrig. Logisch bei der Datenmenge
Und da ich am Server Nunmal Genung Speicherplatz habe läst sich das dort besser lösen.

Aber ich habe jetzt erstmal bei Robotikhardware den PCtoI²C Adapter bestellt und werde mal ein bissen damit rum friemeln mal schaun wie das geht dann bleib ich dabei.

Eigentlich wollte nicht so ausschweifen aber naja.

Ich werde dann mal warten bis der Adapter geleifert wird.

Danke für alle Tipps bis hier.

MfG
Gamebeast