Forum: Mikrocontroller und Digitale Elektronik TriCore TC1796 per EBU zum Ethernet-Controller


von Matthias S. (zenonkition)



Lesenswert?

Hallo,

ich habe mir mittlerweile mehrfach die rund 100 Seiten zu EBU im Manual 
durchgelesen und auch einiges verstanden...aber ich fürchte mir fehlt da 
insgesamt ein wenig der Durchblick...

Zum Problem: Ich will mittels Ethernet Sollwerteänderungen auf den TC 
schieben. Habe hierfür ein PhyCore 1796 Board wo schon ein 
Ethernet-Controller (siehe Anhang) verbaut ist und an /CS3 des EBU in 
16-Bit-Mode hängt. Der Ethernet-Controller soll als TCP-Server verwendet 
werden, aber das kommt dann später...

zunächst hänge ich an der EBU wie muss ich die in Dave konfigurieren, 
worauf muss ich achten? Hat jemand ein praktisches Beispiel für die 
Arbeit mit der EBU? Ich bin für jeden Hinweis und Tipp dankbar, da ich 
gar nicht erkennen kann wie genau ich starten muss...kann ich einfach 
den TriCore als SoleMaster einstellen oder muss ich arbitrieren...

VIELEN DANK FÜR EURE HILFE

: Verschoben durch Admin
von Klaus B. (Gast)


Lesenswert?

Hi,

da hast ganz schön was vor.
Also erstmal, die EBU ist ein intelligentes Teil, das den externen Bus 
vollständig autonom betreiben kann. Die am Bus angehängten Teilnehmer 
werden dann gemäß der Adresseinstellungen in den TriCore-Adressraum ab 
0x80800000/0xA0800000 eingeblendet (entsprechend der Konfiguration).

Soweit ich dein angehängtes PDF überflogen habe, läuft der 
Ethernet-Controller im 16bit asynchronen Modus. Das macht es ein wenig 
einfacher ....

Damit das ganze dann 100%ig einwandfrei funktioniert, muß du die 
Timingparameter korrekt in der EBU einstellen. Es gibt nichts 
schlimmeres, als wenn du Datenfehler bei Lese- bzw. Schreibzugriffen 
bekommst.

Beginnen kannst du mal so (nur die angegebenen Bitfelder vom Reset Wert 
ändern, alle anderen vorerst so lassen):
EBU_CON: Bitfield ARBMODE = b11 -> Master
EBU_BFCON : nur relevant für Burstkonfigurationen, nichts ändern

EBU_ADDRSEL3 (wegen CS3): zB 0xA10000F1 -> der Ethernet-Controller 
beginnt ab Adresse 0xA1000000 aus TriCore-Sicht. Der Adressbereich ist 
auf 2^22 begrenzt. 0xA.... damit Zugriff über non-cached Adressbereich 
des TriCore

EBU_BUSCON3: WRITE = 0, AGEN = 0, PORTW = 1, AALIGN = 0 (wenn A0 des 
TriCore nicht am Ethernetcontroller angeschlossen ist)

EBU_BUSAP3: würde ich vorerst auf Resetwert lassen, dh. maximum 
Waitstates. Hier wird dann viel Gehirnschmalz reinfließen, damit die 
optimalen Einstellungen gefunden werden (wegen Performance bzw. 
Stabilität)

Wenns stimmt, solltest du mittels Debugger ab der Adresse 0xA1000000 
etwas sehen....
Ich hoffe, daß hilft dir weiter !

Gruß !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.