Forum: FPGA, VHDL & Co. Anschluß des SJA1000 an FPGA-Pins


von Juri (Gast)


Lesenswert?

Hallo Alle zusammen!

hab eine Frage: ich beabsichtige mein SoftCore-µC(im Xilinx Spartan 3 
FPGA)
mit dem CAN-Controller SJA1000 zu verbinden(s. Skizze). Nun weiß ich 
nicht,
ob es direkt ohne weiteres gemacht werden kann. Bei normalen 
µControllern ist
es ja kein Problem, da die Pins bereits über entsprechende 
Treiberschaltungen
geschützt sind, bei dem Softcore sind jedoch die Leitungen einfach über
die FPGA-Pins nach außen geführt. Hat jemand eine Idee diesbezüglich?

ps: die Pegelunterschiede (3,3V <-> 5V) werden natürlich mittels 
Levelshifter angepasst

von Mathi (Gast)


Lesenswert?

Das geht ohne Probleme. In den FPGA-Pins sind entsprechende Treiber 
eingebaut.

von Helmut L. (helmi1)


Lesenswert?

Am FPGA sind doch auch nach aussen hin Treiber drin. Auch ist der 
SJA1000 ja wohl keine Last die viel Strom zieht. Und wenn du schon den 
Pegelunterschied beruecksichtigst sollte es da kein Probleme geben. Da 
ist ja wohl eher das Timing das kritischere relativ gesehen.

Gruss Helmi

von Juri (Gast)


Lesenswert?

danke Leute, ich hoffe sehr, daß ihr Recht habt,
bin nähmlich in diesen Sachen ein blutiger Anfänger  )))

von Juri (Gast)


Angehängte Dateien:

Lesenswert?

skizze

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

> Xilinx Spartan 3 FPGA ... einen SJA1000 ...
Ja, der Spartan 3 ist jetzt nicht soooooo richtig 5V-fest :-o
Und der SJA1000 hat Vcc=5V :-(

> ps: die Pegelunterschiede (3,3V <-> 5V) werden natürlich mittels
> Levelshifter angepasst
Die Steuerleitungen vom FPGA zum SJA passen schon, die kann der SJA 
korrekt erkennen. Kritischer ist da der AD-Bus. Bei dem sollte ein 
Pegelwandler (z.B. 74LVC4245) die Pegelanpassung übernehmen. Mit dem RD# 
Signal wird dann die Richtung des AD-Busses vom SJA zum FPGA 
umgeschaltet.

Der Interrupt vom SJA ist ein OC-Pin, einfach mit Pullup im FPGA 
hochziehen.

Da kommt dann noch der gemultiplexte Bus dazu. Vermutlich musst du aus 
deinem internen Adress- und Datenbus erst noch diese Muxerei mit 
ALE-Erzeugung programmieren.

Aber gehen tut das schon, andere haben das auch schon gemacht ;-)


Und das muss jetzt auch noch sein:
> nähmlich in diesen Sachen ein blutiger Anfänger
Wie war das schon vor der Rechtschreibreform:
Wer nämlich mit h schreibt ist ...
http://www.jvfg-cham.de/jvfg/facher/deutsch/eselbruecke.pdf
Nämlich kommt nämlich von Namentlich, nicht von nehmen.

von Gast (Gast)


Lesenswert?

Es gibt auch einen SJA1000 ähnlichen IP-Core, warum also extern 
anschließen?
http://www.opencores.org/projects.cgi/web/can/overview

von Gast (Gast)


Lesenswert?

Ansonsten fehlen in der Skizze noch die bidirektionalen Datenleitungen!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Gast wrote:
> Ansonsten fehlen in der Skizze noch die bidirektionalen Datenleitungen!
Sind automatisch mit drin: der gemultiplexte AD-Bus (Adress- und 
Datenbus) überträgt erst die Adresse und dann die Daten.

von Juri L. (Firma: student) (juran78)


Lesenswert?

2 Lothar Miller:

danke für die Erklärung!

übrigens, ich komme ursprünglich aus Rußland, der deutschen
Sprache bin ich immer noch nicht gewachsen :)

Gast wrote:
> Es gibt auch einen SJA1000 ähnlichen IP-Core, warum also extern
> anschließen?
> http://www.opencores.org/projects.cgi/web/can/overview



ich benutze xs3s200 FPGA, die Kapazitäten reichen gerade mal für
den µC8051-core, so daß ich den CAN-Controller extern aufbauen muss

von shmatko (Gast)


Lesenswert?

@Juri

Privet Jura,

ich mache gerade das gleiche wie du. SJA1000 an spartan3s100 anbinden.
Könntest du mir helfen. Wie hast du das realisiert?

Danke und spasibo!

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.