TWI slave mit XMega

CPU -CPU verbindung

RichardT
Benutzer
Avatar
Gender:
Age: 55
Posts: 19
Registered: 02 / 2013
Subject:

TWI slave mit XMega

 · 
Posted: 12.09.2017 - 13:57  ·  #1
Hallo an Alle

Wollte mal wissen ob jemand schon mal einen XMega als Slave mit I2C/TWI gebraucht hat. Brauche evtl ASM code. Eigntlich möchte ich ein Netzwerk aus mehreren XMegas verbinden, muss aber nur sehr geringe Datenmengen (30 byte pro minute) (auch sehr langsam möglich) verschicken (Ein Master) und von allen Anderen empfangen (viele Slaves ca 13)

Würde mich über Rat und Vorschläge freuen. USART geht sicher auch, ist aber nicht so elegant.
Grüsse
Richard
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: TWI slave mit XMega

 · 
Posted: 12.09.2017 - 18:46  ·  #2
Hallo Richard,
ein ähnliches Thema hatten wir schon mit einem SPI-Slave!
Nicht zu empfehlen aus div. Gründen.
RS485 Netzwerk ist das optimale dafür, vor allem da die XMegas
ausreichend UARTs haben...

rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2078
Registered: 03 / 2003
Subject:

Re: TWI slave mit XMega

 · 
Posted: 13.09.2017 - 11:26  ·  #3
Hallo Richard,

welchen XMega möchtest du dafür verwenden? Ich versuche gerade etwas ähnliches: ein LED-Dot-Matrix-Display-Modul (53mm Schrifthöhe, 5x7-Matrix), welches via I²C angesprochen wird. Ich möchte 16, besser 32-Module auf einen Bus hängen können.
Das Layout ist zwar mit einem Mega schon fertig, aber ein XMega wäre mir lieber. Ich habe nur das Problem: wo privat günstig kaufen? Ein XMega16A4 würde vollkommen ausreichen.

Übertragen werden soll nur der ASCII-Code des anzuzeigenden Zeichens (natürlich zusammen mit der eingestellten I²C-Adresse).

Gruss
Harry
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: TWI slave mit XMega

 · 
Posted: 13.09.2017 - 13:52  ·  #4
Hallo Harry,
Nehme doch für das Netzwerk RS485 und für das Display I2C.
Damit umgehst du alle I2C Netzwerk schweinerreien.
Rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2078
Registered: 03 / 2003
Subject:

Re: TWI slave mit XMega

 · 
Posted: 13.09.2017 - 15:51  ·  #5
Hi Rolf,

der XMega treibt direkt (über Transistoren) die LED-Matrix und kümmert sich um I2C. Es gibt keinen speziellen Treiber. Außerdem wird das ein "Ich-will-das-testen"-Projekt. Nicht weil ich muß, sondern weil ich es will ;)

Gruss
Harry

PS: Bin ab Freitag in S beim angeln :)
RichardT
Benutzer
Avatar
Gender:
Age: 55
Posts: 19
Registered: 02 / 2013
Subject:

Re: TWI slave mit XMega

 · 
Posted: 13.09.2017 - 17:23  ·  #6
Hallo Harry

I werde wohl das mit dem RS485 ausprobieren da ich auch andere Projekte mit z.B. Modbus habe. RS485 ist ein rein Hardware Standard somit ist das Protokol frei wählbar und via jedem UART möglich. Bei I2C hast du ASM nötig mit einigen Interrupts die dann bedient werden müssen
Good Luck.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2078
Registered: 03 / 2003
Subject:

Re: TWI slave mit XMega

 · 
Posted: 13.09.2017 - 19:55  ·  #7
Hallo Richard,

das mit dem ASM kann ich nicht glauben, da ich seit Jahren via I2C grafische Displays mit einem eigenen Mega-Prozessor steuere. Ich habe mir dazu ein einfaches Protokoll ausgedacht.

z.B.:
• $11 = chDrawRect(Xs,Ys,Xe,Ye,Pattern:Byte) (Datenlänge: 6)
Byte 1: X-Koordinate oben/links
Byte 2: Y-Koordinate oben/links
Byte 3: X-Koordinate unten/rechts
Byte 4: Y-Koordinate unten/rechts
Byte 5: Pattern
• $12 = chFillRect(Xs,Ys,Xe,Ye,Pattern:Byte) (Datenlänge: 6)
Byte 1: X-Koordinate oben/links
Byte 2: Y-Koordinate oben/links
Byte 3: X-Koordinate unten/rechts
Byte 4: Y-Koordinate unten/rechts
Byte 5: Pattern

Ich sende also via I2C $12,3,3,120,34,$FF und das Display zeichnet ein Rechteck (Befehl Rechteck=$12) mit den Eckkoordinaten und Muster $FF.
Vorteil: Ansteuerung ist auch mit einem Mega8 möglich. Im Display sind auch div. Fonts und ca. 40 Festgrafiken gespeichert. Da die Displays in X- und Y-Richtung nie größer als 255 Pixel waren, reichen Bytes als Variablen. Es gibt auch eine Funktion, die 2 Koordinaten, einen Winkel und eine Größe übermittelt braucht und daraus eine Windrose mit Gradangabe zeichnet :)

Gruss
Harry
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: TWI slave mit XMega

 · 
Posted: 14.09.2017 - 14:42  ·  #8
Hallo Harry,

ich denke Richard meinte wohl die notwendigen Interrupts beim TWI/I2C Slave.

rolf
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   138   152 · Page-Gen-Time: 0.028522s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI