Forum: FPGA, VHDL & Co. i2c,spi Busse


von Mustafa (Gast)


Lesenswert?

Hallo,
Sorry wenn meine Frage für manche dumm vorkommt...ist sie auch!!

Vor 2 Tage war ich dabei einen i2c controller in vdhl zu schreiben,da 
fragt mir einen Kumpel,wie ich auf einer Platine erkenne welche Leitung 
für I2C bestimmt ist.Ich benutze einen DE0 Board.
Ich habe gegoogelt aber nix gefunden.
Wie erkennt man auf einen Board,ob i2c,spi,can.... Bus vorhanden ist?
Also steht nicht auf den Leitungen:"ICH BIN EINEN I2C BUS oder..oder.." 
:)
Bei manchen Datenblätter steht auch nicht unbedingt explizit 
geschrieben.

Mus

von Tilo (Gast)


Lesenswert?

Du definierst selbst, welche Leitungen verwendet werden sollen.
I2C ist so langsam, da gibts keine Probleme.

von Mustafa (Gast)


Lesenswert?

Danke für die rasche Antwort.
Meine Frage beschränkt sich nicht nur auf den i2c Bus,sondern allgemein.

Im diesen Thread:Welches Eval-Board mit FPGA für Microcontroller mit i2c 
Bus

Duke Scarring schrieb:
> Auf den gennanten Eval-Boards ist I2C (teilweise mehrfach) schon drauf.
> (Wobei sich der Aufwand mit den zwei Pull-ups arg in Grenzen hält.)

Heißt das also,dass  alle Leitungen nicht als i2c Bus benutzt werden 
können?

Tilo Lutz schrieb:
> Du definierst selbst, welche Leitungen verwendet werden sollen.

Du meinst wohl damit die Ausführung der Pins nach 
Außen(Pinbelegung),oder liege ich da falsch?

Mus

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


Lesenswert?

Mustafa schrieb:
> Heißt das also,dass  alle Leitungen nicht als i2c Bus benutzt werden
> können?
Für den I2C brauchst du 2 bidirektionale IO-Leitungen (für einen Slave, 
der keine Dleays einfügen darf reichen sogar 1 x Bidirektonal und 1 x 
Eingang). Weil jedes FPGA viele solcher IO-Pins hat, könntest du da 
(viele/2) I2C Slaves reinbasteln...

> Du meinst wohl damit die Ausführung der Pins nach
> Außen(Pinbelegung),oder liege ich da falsch?
Nein, du liegst richtig.

von Duke Scarring (Gast)


Lesenswert?

Mustafa schrieb:
> Wie erkennt man auf einen Board,ob i2c,spi,can.... Bus vorhanden ist?
Datenblatt, technische Beschreibung, Oszilloskop, Erfahrung.

> Also steht nicht auf den Leitungen:"ICH BIN EINEN I2C BUS oder..oder.."
> :)
Das wäre schön. Damit wäre Hardware hacken viel einfacher... (und ich 
müßte nicht immer in meinen Unterlagen nach der Pinbelegung suchen.)

Duke

von Mustafa (Gast)


Lesenswert?

Ihre Antworten haben mir sehr  geholfen, um einiges zu verstehen.

Wenn ich zusammenfasse,ist ein (spi oder i2c...) Bus also nicht 
fest-(verdrahtet) vorhanden,aber wird je nach  Auswahl der IO-Pins zu 
solchen.Richtig?

Duke Scarring schrieb:
> Datenblatt, technische Beschreibung, Oszilloskop, Erfahrung

Ich versuche ja die Erfahrung zu sammeln :)
Wozu der Oszi?was soll ich da messen wenn noch in Design kein Bus(zB 
i2c) definiert ist?  Willst du damit sagen,das der Bus fest verdrahtet 
ist?

Danke Leute!
Mus.

von Uwe (Gast)


Lesenswert?

Ich glaube du bist dir nicht ganz klar was ein FPGA eigenlich ist.
Du kannst aus jeder Leitung einen I2C machen. Aber auch beliebige andere 
Sachen. Du kannst auch ein VGA Ein oder Ausgang daraus machen oder SPI 
oder PCI oder USB ... Aber man muß es halt MACHEN. Ein FPGA besteht 
Hauptsächlich aus LUTs und FlipFlops (auch Logic Elements). Diese können 
Logikgatter nachbilden (AND,OR,NOT usw.) und enthalten FlipFlops. Aus 
diesen kann man nun Komplexere Funktionseinheiten BASTELN und diese 
wieder mit einander Verdrahten um noch komplexere Einheiten zu Bekommen 
(z.B. CPUs,USB Controller,I2C Controller,VGA Controller auch Grafikkarte 
genannt usw.)
Man kann also (und muss es auch) alles selber Bauen. Es gibt jedoch die 
möglichkeit Librarys und IPs zu benutzen. Dann hat jemand z.B. schon 
einen I2C Controller gebaut und Verkauft diesen nun (er verkauft es zu 
download).
Im grunde genommen baust du deine eigene Hardware ohne löten zu müssen. 
Man sollte aber Digitale Schaltungen verstehen und bauen können. Und 
nocheinmal : ein FPGA ist keine CPU oder Mikrocontroller er führt keine 
Software aus sondern die Funktionseinheiten werden Verdrahtet (Je 
nachdem wie du sie verdrahtest kommt eine andere Funktion dabei heraus 
oder auch keine)

von Lattice User (Gast)


Lesenswert?

Lothar Miller schrieb:
> Für den I2C brauchst du 2 bidirektionale IO-Leitungen (für einen Slave,
> der keine Dleays einfügen darf reichen sogar 1 x Bidirektonal und 1 x
> Eingang).

Auch Slaves dürfen Delays einfügen, und es gibt auch Devices die das 
tun.

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


Lesenswert?

Lattice User schrieb:
> Auch Slaves dürfen Delays einfügen,
Uuups, das kam offenbar falsch rüber: es ist mir klar, dass der Slave 
den Takt ausbremsen darf. Ich meinte hier, wenn man einen Slave machen 
würde, der schnell genug wäre, um keine Clock-Delays einfügen zu müssen, 
würde ein Eingang für den Takt reichen...
(Ich liebe den Konjunktiv ;-)

> und es gibt auch Devices die das tun.
Allerdings glaube ich sowieso, dass die meisten Software-SPI-Master da 
schwer auflaufen würden... :-o

von Tilo (Gast)


Lesenswert?

War nicht von I2C die Rede? Da wäre das wegen Open Collector auch kein 
Problem.

Wie soll der Slave bei SPI den Takt beeinflussen?

von Lattice User (Gast)


Lesenswert?

Tilo Lutz schrieb:
> War nicht von I2C die Rede? Da wäre das wegen Open Collector auch kein
> Problem.
>
> Wie soll der Slave bei SPI den Takt beeinflussen?

Gar nicht, sieht so aus als ob heute einfach nicht Lothars Tag ist :-)

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


Lesenswert?

Tilo Lutz schrieb:
> War nicht von I2C die Rede?
> Wie soll der Slave bei SPI den Takt beeinflussen?
Ach Sch....lags kaputt.

Lothar Miller schrieb:
>>> I2C ... für einen Slave, der keine Delays einfügen darf
>> Auch Slaves dürfen Delays einfügen, und es gibt auch Devices die das tun.
> Allerdings glaube ich sowieso, dass die meisten Software-SPI-Master da
> schwer auflaufen würden... :-o
Stimmt trotzdem... ;-)

Lattice User schrieb:
> Gar nicht, sieht so aus als ob heute einfach nicht Lothars Tag ist :-)
Gute N8.

von Mustafa (Gast)


Lesenswert?

Der Beitrag hat vieles erweckt :)
Mir ist sehr viel klarer bezüglich der Busse geworden.
Danke Leute.
Mus

von Tilo (Gast)


Lesenswert?

:) passt schon ich schraube gerade an einem SPI Master rum und hab 
befürchtet, mir ist irgend was entgangen.

@topic:
Über die Pins muss man sich erst dann Gedanken machen, wenn es schneller 
oder spezieller wird, z.B. LVDS.


Jetzt gönne ich mir zum Feierabend erstmal draussen ein kühles Bier.

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.