Forum: FPGA, VHDL & Co. Sparten II FPGA für Anfänger


von Tobias P. (hubertus)


Lesenswert?

Hallo Leute,
ich habe mir grade folgende Überlegung gemacht:
Mein uC hat zuwenige Ports. Deshalb wollte ich einen Spartan II FPGA 
verwenden, da ich die in der Firma relativ günstig beziehen kann.

Nun habe ich dazu ein paar fragen:

1. Den FPGA kann ich, soweit ich weiss, auch über den Datenbus des uCs 
konfigurieren. Dann brauche ich kein Config-Eprom, oder? Die "Software" 
wird dann einfach im ROM des uCs gespeichert und nach dem Einschalten in 
den FPGA geladen.

2. Der FPGA kann ja nicht mit 5V betrieben werden. Deshalb stellt sich 
hier die Frage: Kann ich wirklich mit den 5V-Signalen des uCs direkt an 
den FPGA gehen? und ungekehrt - wenn der uC was vom FPGA lesen will, 
liefert der ja einen 3.3V Pegel zurück. Brauche ich da tatsächlich für 
jeden einzelnen Pin einen Pegelkonverter? Wie sieht das ganze aus, wenn 
ich extern noch jeweils einen Pullup habe? Am Datenbus des uC sind die 
sowieso schon dran.

Den FPGA will ich verwenden, weil ich denke dass sich das ganze dann 
später noch erweitern lässt. So könnte ich dann noch Timers oder UARTs 
oder was weiss ich im FPGA implementieren. Ein stinknormaler CPLD 
scheint mir dafür einfach zu stark eingeschränkt und mit zuwenig IOs.

Vorgesehen hatte ich den XC2S150.

Kann ich damit was anfangen, wenn ich vorher noch nicht mit FPGAs 
gearbeitet hab? Allzu schwierig stelle ich mir das nicht vor: Takt, 3 
Stromversorgungen, fertig. Mache ich mir falsche Vorstellungen?

von wasi (Gast)


Lesenswert?

Hallo Tobias,

zu (1): Das ist richtig,es gibt mehrere Möglichkeiten sowohl serielle
als auch parallele.Bedenke allerdings,dass ein XC2S150 1.040.096 Bits
an Konfigurationsdaten benötigt,das passt nicht in einem kleinen
Mikrocontroller rein !

zu (2): Der SpartanII benötigt zwei Spannungen VCCINT (core) = 2.5V und
VCCO (für die I/Os) = 3.3V.In dieser Betriebsart sind die Eingänge
5V Tolerant,man könnte den MC also direkt anschliessen.Anders herum
erkennt TTL ab 2.8V eine '1' also müsste es auch funktionieren.

Wenn Du noch nie mit FPGAs gearbeitet hast,dann ist das schon eine
Herausforderung! Gehäuse PQ208 mit 0.5mm Pinabstand ist nicht
gerade was für Lochraster,mehrere Versorgungsspannungen,nicht
triviale Konfiguration,...

Besuche doch die Seite von Xilinx und hole dir die Datenblätter,
die Bausteine sind noch gut erhältlich.

Aber an Deiner Stelle würde ich erstmal mit einem CPLD von ALTERA oder
XILINX anfangen,auch wenn da nicht so viel reinpasst!
XC9572 (5V) gibt es bei Reichelt oder XC95108 bei darisus.de.
Die ALTERA 7000S Reihe ist leider nicht so einfach zu bekommen.

Einige Ports oder spezielle andere logik passt da auch rein und
man kann einen Vorgeschmack von VHDL bekommen.

Gruss,
wasi

von Tobias P. (hubertus)


Lesenswert?

@wasi:
Die Altera MAX7000S kenne ich relativ gut. Ich hab da in der Firma mal 
eine Zeit lang mit gebastelt. So hab ich z.B. eine Uhr gemacht (wird mit 
32.768 kHz getaktet, incl. Taster zum richten).
mein MC ist ein 32 Bit. Ich beabsichtige, dem Teil 1 MB Flash sowie 1 MB 
RAM zu spendieren. Allerdings sind 1040096 Bits schon ein paar Byte ;)
Wegen dem QFP mache ich mir keine Gedanken; in der Firma repariere ich 
gelegentlich Geräte wo man so ein QFP von Hand löten muss. Das geht 
relativ leicht.
Das einzige was ich halt unsicher bin, sind die 3.3V I/O Spannung. Wenn 
TTL 2.8V als Schwelle hat, dann wirds ja schon eng....
Wie schaut das aus, wenn ich an einem I/O Pin einen Pullup nach 5V 
mache? Kann ich dann evtl eine höhere Spannung als 3.3V ausgeben?

von Klaus Falser (Gast)


Lesenswert?

> Anders herum erkennt TTL ab 2.8V eine '1' also müsste es auch funktionieren.

TTL garantiert nur 2.4 V High-Pegel am Ausgang, das kann für CMOS zu 
wenig sein.
Schau einmal nach, wenn dein MC an den Ausgangspins TTL Pegel ausgibt 
und verlangt (meistens der Fall), dann klappts.
Ein Pullup-Widerstand am Ausgang wird so ohne Weiteres nicht 
funktionieren, da die Ausgangsstufe das Pin auf 3.3 V zieht. Dazu müßte 
man das Pin hochohmig schalten, dann geht (aber auf Kosten der 
Geschwindigkeit).

von Mike (Gast)


Lesenswert?

@Tobias Plüss

Das was du dort meinst ist CMOS-Pegel und kein TTL. Du solltest du mal 
in das Datenblatt deines Controllers schauen. AVRs sehen zum Beispiel 
bis 1,5V ein L und ab 1,9V ein H. Könnte also passen. Im Datenblatt mal 
nach "Pin Thresholds And Hysteresis" suchen.

von wasi (Gast)


Lesenswert?

Hallo Tobias,

sorry,ich hatte es falsch verstanden,wenn Du schon mit CPLDs
gearbeitet hast,dann sieht es schon anders aus :-)

Ich habe gerade auch in einem 74LS00 Datanblatt reingeschaut,
dort steht Vih (HIGH Level Input Voltage) = 2V !
Was ich vorher mit Voh (HIGH Level Output Voltage) = 2.7V verwechselt 
habe!
Also erkennen die TTL Bausteine ab 2V High.

Mit den Pullups,weiss ich nicht so recht,wenn er aber so um die
1K ist dann dürfte nichts kapput gehen.Die Spartans haben interne
Schutzdioden an den pins,die würden dann aktiv werden.
Aber dazu müsste man das Kleingedruckte in den Datenblättern
des MC und des Spartan lesen.
Vielleicht SMD pullups vorsehen und wenn 3.3V nicht ausreichen
-ich glaube schon- ,dann einlöten.

Die Kombination MC + FPGA ist auf jeden Fall sehr Leistungsfähig,
versuche es!

Gruss,
wasi

von Tobias P. (hubertus)


Lesenswert?

@wasi:
genau darin liegt ja der Reiz der Sache ;) Mal dient der FPGA dann als 
IO-Baustein, ein ander mal könnte man einen HD-Controller draus machen 
oder ganz viele UARTS mit Handshake-Leitungen. Den FPGA kann man ja, 
soviel ich weiss, beliebig oft umprogrammieren, da er seine config ja in 
einem RAM speichert.
@Mike:
Könnte es auch noch gehen, wenn der MC 3V als VIh min anerkennt? das ist 
ja dann schon hart an der Grenze. Und Pegelconverter für jedes Signal 
sind unschön... In Zweifelsfalle mach' ichs nach wasis Methode:  einfach 
Pullups dran hängen. Es muss nicht sauschnell sein, ich arbeite nicht 
mit hunderten MHz. Mein MC hat "nur" einen Bustakt von 25 MHz.

Wie sieht das mit dem Config File aus - kann man in der Xilinx-IDE die 
Konfiguration auch als Hex-File oder so öhnlich ausgeben lassen, welches 
ich dann in meinen Code einbetten kann?
Konnte das leider noch nicht überprüfen; die IDE ist riesig (> 800b MB) 
und mein DSL nicht das schnellste.

von Stefan Salewski (Gast)


Lesenswert?

>wollte ich einen Spartan II

Wieso II?
Der ist doch schon etwas veraltet. Ich würde mir jedenfalls nicht die 
Mühe machen, mich in ein Auslaufmodell einzuarbeiten. Oder übersehe ich 
da etwas.

von Tobias P. (hubertus)


Lesenswert?

Du hast recht, @stefan.
allerdings besteht das Problem, dass der FPGA 5V-Tolerant sein muss. 
Mein MC hat Vcc = 5V. Nun habe ich hier im Forum irgendwo mal gelesen, 
dass die IIer Familie noch 5V tolerant ist, höher aber nicht mehr. 
Deshalb habe ich mich garnicht weiter informiert, sondern habe mich 
gleich für den IIer entschieden. Ausserdem, wie bereits erwähnt, werden 
die bei uns in der Firma verbaut und ich könnte die sofort und etwas 
günstiger bekommen, als wenn ich sie bei irgend einem Distri bestelle 
oder bei Xilinx (was, glaube ich, allerdings gar nicht geht).

von Stefan Salewski (Gast)


Lesenswert?

>dass die IIer Familie noch 5V tolerant ist

Ah ja, das kann ein Vorteil sein.

Kannst Du Deinen uC denn nicht mit 3.3V betreiben?
Mit einem AVR wäre das ja kein Problem?

Und Du weißt schon, dass man zu FPGAs einiges zu lesen hat?
VHDL-Bücher, Datenblatt und u.a. die Manuals von Xilinx, wie UG331 und 
UG332 (für Spartan-3).

von Tobias P. (hubertus)


Lesenswert?

Mein uC ist leider nur für 5V ausgelegt :( Das ist leider etwas unschön.
Bei FPGAs gibt es einiges zu lesen, weiss ich. Vorerst allerdings kann 
man ja angeblich die gewünschten Funktionen auch in einem schematischen 
Editor zusammenbasteln? Das wäre zum Einstieg sicher gut. Später dann 
kommt VHDL dran, das bin ich immernoch am lernen.
Das Datenblatt des Spartan II hab ich mir vorher noch runtergeladen und 
bin es grade am Sichten. Vielleicht werde ich auch mal mit dem einen 
oder anderen Entwickler in der Firma sprechen. Wenn man nett nachfragt 
helfen die einem immer ;)

von Stefan Salewski (Gast)


Lesenswert?

>Vorerst allerdings kann man ja angeblich die gewünschten Funktionen auch in 
>einem schematischen Editor zusammenbasteln?

Das geht wohl, zumindest für einfache Sachen.

>Das Datenblatt des Spartan II hab ich mir vorher noch runtergeladen

Ich hatte beim Spartan-3E auch mit dem Datenblatt angefangen -- aber die 
Manuals UG331 und UG332 sind noch weit umfangreicher.

Du willst Dir ja wohl auch eine Platine selbst machen: Der Spartan-3E 
benötigt drei Versorgungspannungen (1,2 und 2,5 und 3,3V) -- wie das 
bein II ist weiß ich nicht. (Alteras FPGAs und die neuen Spartan-3A 
sollen nur 2 benötigen.) In der Regel muss man die Platine mindestens 
4-lagig machen -- das ist leider nicht ganz billig. Zweilagig geht wohl 
notfalls auch -- wenn die Taktfrequenz nicht hoch und die Komplexität 
gering ist.

von wasi (Gast)


Lesenswert?

Hallo Tobias,

ja,man kann sie beliebig oft umprogrammieren.

Mit der Konfiguration ist es ein bischen komplizierter,es gibt
mehrere möglichkeiten,JTAG,Slave serial/parallel.Xilinx hat
mehrere XAPPs dazu.(XAPP078,XAPP176,XAPP178).Da muss man sich
reinlesen.Die Xilinx Sw. kann mehrere Formate erzeugen, das
*.bit Format wäre das kompaktere.Danach gibt es Formate für
die seriellen eeproms von Xilinx,SVF für das "abspulen" von
JTAG Kommandos,...
Da muss man sich -wie Stefan gesagt hat- einlesen,
ich habe leider keine Praktische Erfahrung
mit deren interpretation.Aber es wird irgendwie so sein,dass
man das *.bit file nimmt,und dann seriell oder parallel in
den spatran reinladen wird.Wenn alles ok ist,dann wird ein
DONE Pin gesetzt!
Die Details auszuarbeiten,wird einiges an Arbeit kosten.Auf
jeden Fall das JTAG Interface an einen Stecker herausführen,
dann kann man den Baustein im Zweifelsfall über einen externen
Programmierer laden.

Gruss,
wasi

von Tobias P. (hubertus)


Lesenswert?

Tach ihr,
ich hab mich nun mal ein bisschen mit diesem FPGA befasst.
Für den Einstieg erschtint er mir etwas ZU kompliziert. Stattdessen 
würde ich für erste Tests den XC3042A nehmen. Der ist nicht nur kleiner, 
sondern ein echtes 5V-Gerät. Nach ausführlichem Studium des Datenblatts 
habe ich auch schon herausgefunden, wie ich den Beschalten muss, um ihn 
konfigurieren zu können. Allerdings ist mir eines nicht klar.

Um in meinem Projekt die Konfiguration einspeisen zu können, erscheint 
mir der Peripheral Mode* ideal. Der FPGA muss ja sowieso an den Datenbus 
des MCs. Also schliesse ich den dort an, und schreibe Byteweise die 
Konfiguration rein. Aber - braucht der FPGA nicht noch einen 
zusätzlichen extern zugeführten Takt, um die Bytes intern wieder in ein 
serielles Format umwandeln zu können? Im Datenblatt steht: "The Data is 
loaded into a double-buffered UART inside the Device" oder sowas in die 
Richtung - ein UART braucht doch noch einen Clock. Also muss ich meinen 
FPGA immer mit einem Takt versorgen oder? Muss ich den am Global 
Clock-Pin anschliessen? Oder geht das auch, wenn ich den CLOCKOUT des 
MCs mit dem XTAL1-Pin des FPGA verbinde? (Der Chip hat einen 
integrierten Quarzoszillator).

Ansonsten sieht das aber recht simpel aus; dafür dass ich das erste mal 
mich ernsthaft mit einem FPGA beschäftige habe ich (meiner Meinung nach) 
schon ziemlich viel verstanden.... ;) Oder hab ich was übersehen?

von Günter -. (guenter)


Lesenswert?

Tobias Plüss wrote:
> Tach ihr,
> ich hab mich nun mal ein bisschen mit diesem FPGA befasst.
> Für den Einstieg erschtint er mir etwas ZU kompliziert. Stattdessen
> würde ich für erste Tests den XC3042A nehmen.

Vorausgesetzt du willst die freie Version von ISE dazu nutzen, solltest 
du dich erst mal schlau machen ob die den XC3042A noch unterstützt.

Ich kenne mich mit dem Typ FPGA nicht aus, musste aber mal Logik für 
einen Spartan XL ändern. Wenn ich mich recht erinnere, dann unterstützt 
Web ISE als ältesten FPGA den Spartan II. Der XC3042A dürfte älter sein.

Da gibt es zwar ein ISE-Legacy Version, die hat aber kein Synthesistool 
dabei. Dafür muss also ein kommerzielles Tool von einem der Anbieter 
gekauft werden.

von Falk B. (falk)


Lesenswert?

@ Tobias Plüss (hubertus)

>ich hab mich nun mal ein bisschen mit diesem FPGA befasst.
>Für den Einstieg erschtint er mir etwas ZU kompliziert. Stattdessen

Naja, ist ein FPGA halt.

>würde ich für erste Tests den XC3042A nehmen. Der ist nicht nur kleiner,

Das ist ein Coolrunner CPLD.

>Um in meinem Projekt die Konfiguration einspeisen zu können, erscheint
>mir der Peripheral Mode* ideal. Der FPGA muss ja sowieso an den Datenbus

???
Ich denke du willst erstmal mit dem CPLD anfangen? Und beim Spartan II 
heisst das Slave Parallel Mode.

>des MCs. Also schliesse ich den dort an, und schreibe Byteweise die
>Konfiguration rein. Aber - braucht der FPGA nicht noch einen
>zusätzlichen extern zugeführten Takt, um die Bytes intern wieder in ein
>serielles Format umwandeln zu können?

Ja, WR heisst das Signal.

>Im Datenblatt steht: "The Data is
>loaded into a double-buffered UART inside the Device" oder sowas in die
>Richtung - ein UART braucht doch noch einen Clock. Also muss ich meinen

???
UART? FPGA Konfiguration? Da verwechselst du was.

>FPGA immer mit einem Takt versorgen oder?

Nöö, aber die einzelenen Bytes/Bits müssen halt einzeln reingetaktet 
werden.

> Muss ich den am Global
>Clock-Pin anschliessen?

Nöö, dort schliesst man Takte an, die dann im Design verwendet werden 
sollen. Der Takt zur Konfiguration ist was anderes.

>Oder geht das auch, wenn ich den CLOCKOUT des
>MCs mit dem XTAL1-Pin des FPGA verbinde? (Der Chip hat einen
>integrierten Quarzoszillator).

???
Niemals. Weder Spartan II noch Coolruner haben das.

>Ansonsten sieht das aber recht simpel aus;

Nach deiner Beschreibung zu urteilen eher nicht.

>dafür dass ich das erste mal
>mich ernsthaft mit einem FPGA beschäftige habe ich (meiner Meinung nach)
>schon ziemlich viel verstanden.... ;) Oder hab ich was übersehen?

Es irrt der Mensch solang er lebt.
Eigenlob stinkt.
...

MFG
Falk

von Tobias P. (hubertus)


Lesenswert?

@Falk:

> Das ist ein Coolrunner CPLD.

Der XC3042 ist auf der Xilinx-Website unter "Mature Products / FPGA" 
angesiedelt, von da her schätze ich ihn als FPGA ein.


> Ja, WR heisst das Signal.

Dass das Signal, um ein Byte im FPGA zu platzieren, WR heisst, ist mir 
klar. Beim RAM heisst es ja auch WR. Oder je nach dem halt WE, bewirkt 
aber dasselbe. Im Datenblatt (JA, ich habe es gelesen ;) 
http://www.xilinx.com/support/documentation/data_sheets/3000.pdf) ist 
erwähnt, dass der 3042 die Config Daten in serieller Form benötigt. 
Deshalb frage ich mich, wie aus den parallelen Bits, die ich über den 
Slave Parallel Mode reinschreibe, wieder eine serielle Bitfolge wird. 
Ohne Takt ist da wohl nichts zu mache; die Frage ist nur woher dieses 
ominöse Takt kommt.


> UART? FPGA Konfiguration? Da verwechselst du was.

Ich verwechsle nichts wegen UART und FPGA-Konfiguration. Lies einmal 
mein Zitat, das habe ich 1:1 aus dem Datenblatt übernommen. Ich weiss 
was ein FPGA ist und was ein UART ist, und dass das zwei verschiedene 
Dinge sind. Xilinx schreibt aber, im FPGA sei eine UART-ähnliche 
Baugruppe drin, die die parallelen Bytes in serielle Bitfolgen wandelt - 
deshalb auch meine Frage, wie dieser UART zu takten sei.

> Niemals. Weder Spartan II noch Coolruner haben das.

Richtig. Aber der 3042 ist ja auch meines Wissens nach kein Coolrunner.
Im Datenblatt steht was von "special pins" oder sowas. Und dort sind 
XTAL1 und XTAL2 Pins aufgeführt. "The XTAL1 pin is the input to the 
inverting oscillator amplifier" oder sowas. Offenbar kann man also 
Quarze an das Ding anschliessen (ich rede jetzt vom XC3042A). Die Frage 
war, ob dieser Quarz nun für die Konfiguration nötig ist oder nicht. Du 
hast sie aber schon beanwortet. Danke erstmal, jetzt weiss ich nämlich 
dass ich mir in meinem Design den Quarz sparen kann.


> Eigenlob stinkt.

Ich habe mich nicht selber gelobt. Wir haben lediglich aneinander vorbei 
geredet. Wenn du mich kenntest (kennen würdest?) wüsstest du dass ich 
mich niemals selber lobe.
Ich bin übrigens auch der Meinung dass Eigenlob stinkt.

Es grüsst
   Tobias

von Falk B. (falk)


Lesenswert?

@ Tobias Plüss (hubertus)

>Der XC3042 ist auf der Xilinx-Website unter "Mature Products / FPGA"
>angesiedelt, von da her schätze ich ihn als FPGA ein.

Uups, mein Fehler. Stimmt, das sind GAAAAAANZ alte FPGAs. Nur ein 
Kommentar. FINGER WEG! Damit willst du nicht arbeiten. Keine Software 
verfügbar, alt, klein, anfällig. Tonne auf, rein damit. Nimm nen 
Spartan-II und sei glücklich. Die sind kein bisschen komplizierter zu 
handhaben, eher einfacher.

>Deshalb frage ich mich, wie aus den parallelen Bits, die ich über den
>Slave Parallel Mode reinschreibe, wieder eine serielle Bitfolge wird.
>Ohne Takt ist da wohl nichts zu mache; die Frage ist nur woher dieses
>ominöse Takt kommt.

Die FPGAs haben dazu einen interen RC-Oszillator.

MFG
Falk

von Tobias P. (hubertus)


Lesenswert?

@Falk:

Oh, okay. Das ist gut... Ich hab hier zwar noch solche FPGAs rumliegen, 
aber wenn sie nicht so dolle sind schmeiss ich sie weg. Anfangen kann 
ich ja eh nichts mehr damit wenn keine Software verfügbar ist.


> Die FPGAs haben dazu einen interen RC-Oszillator.

Aaaha. So funktioniert das. Heisst das auch, dass ich eigentlich niemals 
einen Takt brauche? Kann ich somit den FPGA vollkommen "asynchron" 
betreiben und Register über die Steuersignale vom MC setzen / 
rücksetzen?
Kann man als Anwender auch auf den RC-Oszillator zurückgreifen, sollte 
mal ein Takt vonnöten sein?

von Tobias P. (hubertus)


Lesenswert?

Nachtrag:
Ich nehme mal an, das gilt auch für Spartan II-FPGAs (und evtl spätere) 
oder?

von Falk B. (falk)


Lesenswert?

@ Tobias Plüss (hubertus)

>> Die FPGAs haben dazu einen interen RC-Oszillator.

>Aaaha. So funktioniert das. Heisst das auch, dass ich eigentlich niemals
>einen Takt brauche?

Nein. Bei den meisten FPGAs kommt man an diesen Oszillator nicht ran.

> Kann ich somit den FPGA vollkommen "asynchron"
>betreiben und Register über die Steuersignale vom MC setzen /
>rücksetzen?

Im Prinzip ja. Sobald aber bissel Ablaufsteuerung ins FPGA soll brauchst 
du einen Takt von aussen.

>Kann man als Anwender auch auf den RC-Oszillator zurückgreifen, sollte
>mal ein Takt vonnöten sein?

Bei den meisten FPGAs leider nicht. Genaueres sagt das Datenblatt.

MFG
Falk

von fpgaküchle (Gast)


Lesenswert?

Ich keine KEINEN FPGA mit internen RC-Oszillator, auch keinen FPGA. Aber 
man kann einen Quarz uber interne Inverter anschliessen und dann 
schwingt das Halbwegs. falls es die minimale interne taktfrequenz 
hergiebt, kanns du
vielleicht den takt des uc an den FPGA legen.

Die IO des Spartan2 vertragen 5v bestens, deshalb wird diese "olle 
Stück" immer noch eingesetzt. Ich bin mir nicht 100% sicher, aber mit 
spartan2 sollten auch 5V bidirektional kein Problem sein.

Wenn CPLD dann XC95-Reihe, die ist zwar noch älter als Coolrunner aber 
Xilinx hat damals versprochen diese wg. 5V (die XC95 wunderbar schafft) 
im Programm zu halten. Allerdings sind die grossen (>72 Makrozellen) 
(fast?) teurer als ein kleiner Spartan.

von Falk B. (falk)


Lesenswert?

@  fpgaküchle (Gast)

>Ich keine KEINEN FPGA mit internen RC-Oszillator, auch keinen FPGA.

Wie ich bereits sagte, der C-Oszillator ist der Nutzerlogik nitcht 
zugänlich. Aber er IST da, als Teil der Konfigurationslogik. Indirekter 
Beweis

http://www.geocities.com/jacquesmartini/digital/pldpower/pld_power_measurement.html

2nd Step) FPGA configured with empty design.

> Aber
>man kann einen Quarz uber interne Inverter anschliessen und dann
>schwingt das Halbwegs.

Ja, halbwegs. Das sollte man schnellstmöglich wieder vergessen! Mit 
FPGAs /CPLDs baut man keine Quarzoszillatoren. Punkt.

>Stück" immer noch eingesetzt. Ich bin mir nicht 100% sicher, aber mit
>spartan2 sollten auch 5V bidirektional kein Problem sein.

Wenn die 5V Bauteile TTL Schaltschwellen haben. Siehe Pegelwandler.

MFG
Falk

von Tobias P. (hubertus)


Lesenswert?

@Falk:
wegen den Schaltpegeln habe ich mir schon was ausgedacht. Die maximale 
Busfrequenz, die ich vorgesehen habe, ist 16 MHz. Deswegen denke ich 
sollte das schon klappen, wenn ich die Pins als Open Drain schalte und 
Pullups anschliesse. Das könnte schon klappen oder?

von Falk B. (falk)


Lesenswert?

@ Tobias Plüss (hubertus)

>wegen den Schaltpegeln habe ich mir schon was ausgedacht. Die maximale
>Busfrequenz, die ich vorgesehen habe, ist 16 MHz.

Was schon mal nicht so langsam ist.

> Deswegen denke ich
>sollte das schon klappen, wenn ich die Pins als Open Drain schalte und
>Pullups anschliesse. Das könnte schon klappen oder?

Totaler Käse. Erst recht bei 16 MHz. Lies mal was über Pegelwandler.

MFG
Falk

von Tobias P. (hubertus)


Lesenswert?

@Falk:
Klar hab ich schon was von Pegelwandlern gehört.
ABER: Es sind ca. 20 Leitungen vom MC zum FPGA (16 Bit Datenbus, RD, WR, 
CS, RESET). Die alle mit einem Pegelkonverter auszustatten wird eine 
lustige Sache.... Zudem sollen die nicht belegten Pins vom FPGA als I/Os 
benutzt werden. Dort wäre es natürlich auch nicht schlecht, 5V Pegel zu 
haben, aber auch dort finde ich es nicht wirklich sinnvoll, für jeden 
Ausgang einen Pegelwandler vorzusehen. Du meinst also, mit 16 MHz passt 
das gar nicht mit Open Drain un Pullups?
Okay ich versuch dann mal einfach, was passiert, wenn man dem MC einen 
3.3V-Pegel einspeist. Ob er das als H erkennt, ist fraglich, da die 
Schwelle schon sehr nahe bei 3V liegt. Klappen könnte es, das wäre 
genial.

von Falk B. (falk)


Lesenswert?

@ Tobias Plüss (hubertus)

>ABER: Es sind ca. 20 Leitungen vom MC zum FPGA (16 Bit Datenbus, RD, WR,
>CS, RESET). Die alle mit einem Pegelkonverter auszustatten wird eine
>lustige Sache....

Erstens gibt es 8/16 Bit Wandler in einem Gehäuse und zweitens wenn es 
sein muss, dann muss es sein!
>Zudem sollen die nicht belegten Pins vom FPGA als I/Os
>benutzt werden. Dort wäre es natürlich auch nicht schlecht, 5V Pegel zu
>haben, aber auch dort finde ich es nicht wirklich sinnvoll, für jeden
>Ausgang einen Pegelwandler vorzusehen.

???
Entweder du brauchst 5V oder nicht. Vergiss die Eierlegende Wollmilchsau 
die nix kostet. Mach entweder ein 5V oder 3,3V System. Der Mischmasch 
wird aufwändig.

> Du meinst also, mit 16 MHz passt
>das gar nicht mit Open Drain un Pullups?

Nein.

>Okay ich versuch dann mal einfach, was passiert, wenn man dem MC einen
>3.3V-Pegel einspeist. Ob er das als H erkennt, ist fraglich, da die
>Schwelle schon sehr nahe bei 3V liegt. Klappen könnte es, das wäre
>genial.

Nein, LIES DAS DATENBLATT!!!

MFG
Falk

von Tobias P. (hubertus)


Lesenswert?

@Falk:
Das ist ja das Blöde; das Datenblatt des MCs schweigt sich über V(IL) 
und V(IH) aus. Ich habe also keine Ahnung, in welchem Bereich eine 
Eingangsspannung liegen muss, damit das Ding einen H-Pegel erkennt.

Wegen der Mischmaschlösung:
Dann kann ich den FPGA ja gleich vergessen. Ausser den gaaaanz alten 
FPGAs von Xilinx habe ich keine brauchbaren neueren gefunden, die mit 5V 
arbeiten. Und einen anderen MC kaufen will ich nicht. Ich kenne den sehr 
gut, in der Firma wird damit auch gearbeitet (hab nen ganzen Tray 
abstauben können). Einarbeiten in einen neueren MC, der mit 3.3V läuft 
will ich mich vorerst nicht. Für mich käme nur ein Coldfire in Frage; 
die sind aber schwer zu bekommen und irgendwie findet man dazu nicht 
allzu viel Freeware im Netz. IDEs kosten einige k, zum Basteln lohnt 
sich das nicht.

Aber danke dass du mir von den Pullups abrätst. Ich hätte das sonst 
womöglich noch aufgebaut und mich drüber geärgert dass es nicht 
funktioniert.... ;)

Also weg mit dem FPGA. Such' ich mir halt 74er TTL D-Flipflops mit 
Read-Back möglichkeit und Tristate Output.

Grüsse
    Tobias

von Falk B. (falk)


Lesenswert?

@ Tobias Plüss (hubertus)

>Das ist ja das Blöde; das Datenblatt des MCs schweigt sich über V(IL)
>und V(IH) aus. Ich habe also keine Ahnung, in welchem Bereich eine
>Eingangsspannung liegen muss, damit das Ding einen H-Pegel erkennt.

Glaub ich kaum. Welcher ist es denn? Link auf das Datenblatt?

>FPGAs von Xilinx habe ich keine brauchbaren neueren gefunden, die mit 5V
>arbeiten.

Die gibt es auch nicht. 3,3V ist Maximum. Mehr braucht auch keiner.

>abstauben können). Einarbeiten in einen neueren MC, der mit 3.3V läuft
>will ich mich vorerst nicht.

???
Es gibt von nahezu JEDEM 5V Typ auch pin- und funktionskompatible 3,3V 
Typen.

>Also weg mit dem FPGA. Such' ich mir halt 74er TTL D-Flipflops mit
>Read-Back möglichkeit und Tristate Output.

????
So schnell die Flinte in Korn werfen? Ich bin enttäuscht.

MFG
Falk

von Tobias P. (hubertus)


Lesenswert?

@Falk:
Es ist ein MC68332 von Freescale (Ich weiss, 68k-Derivate sind nicht 
modern, aber sehr leistungsfähig und durchdacht, und durchaus nicht 
veraltet ;)).
Datenblatt gibts leider nur als blödes ZIP-Archiv auf Freescale.ccom: 
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC68332&tab=Documentation_Tab&pspll=1&nodeId=0162468rH3DgbNyDvb&SelectedAsset=Documentation&ProdMetaId=PID/DC/MC68332&fromPSP=true&assetLockedForNavigation=true&componentId=2&leftNavCode=1&pageSize=25&Documentation=Documentation/006Data%20Sheets
(Wie lang darf eine Webadresse eigentlich sein? ;))

Ich bezweifle dass es hiervon eine 5V-Version gibt, da im Datenblatt VDD 
mit typisch 5V spezifiziert ist.

Eigentlich will ich die Flinte nicht ins Korn werfen, aber im Moment 
steh' ich ziemlich überall in meinem Projekt an.

von Falk B. (falk)


Lesenswert?

@ Tobias Plüss (hubertus)

>http://www.freescale.com/webapp/sps/site/prod_summ...
>(Wie lang darf eine Webadresse eigentlich sein? ;))

Welcher Vollidiot hat diesen Datenmüll verbrochen? Wieso kann man das 
nicht einfach in EIN PDF packen. Kopfschüttel Freescale ist auch 
nicht mehr das, was es mal war.

Das schau ich mir morgen an. Keinen Bock mehr heute.

MFG
Falk

von Tobias P. (hubertus)


Lesenswert?

@Falk:
Ich sage ja nicht dass du es anschauen MUSST ;) natürlich werde ich es 
dir nicht verbieten. Übrigens hab ich mich auch geärgert, dass es nicht 
EIN PDF gibt. Ich hab aber noch eine ältere Version des kompletten 
Manuals, das in einem einzelnen PDF ist. Ich konnte es aber nicht 
hochladen (mein Uplink ist recht lahm und das Dokument ~7M).
Wie auch immer:
Warum meinst du, braucht man nicht mehr als 3.3V? Du hast das weiter 
oben geschrieben. Sind digitale Schaltungen mit 5V-Versorgung etwa in 
irgend einer hinsicht schlechter als solche mit 3.3V?

von Praktus Optimus (Gast)


Lesenswert?

5V gibt es immer noch, z.B. ATA-festplatten. Also IMHO ist XC9500 das 
rechte für dich (Statt 74xxx). Schau mal hier:
http://www.xilinx.com/products/cpldsolutions/X7400CC.xls
rechnet dir aus, welchen XC du brauchst um ein TTL-Grab nach deinen 
Ansprüchen zu ersetzten.

Pegelwandler hin und her, es kommt natürlich auch drauf an unter welchen 
bediengungen die schaltung laufen soll. Für hobbyanwender kann die 
margin
Vo_H und Vi_H schon mal 0V sein.

Oftmals sind die pegel auf Vcc bezogen,
also V_h = 0.9*Vcc. Also kann man mit Vcc in Richtung Toleranzengrenzen 
auch die Pegel (leicht) anpassen, beim 5V device leicht absenken (5%?), 
usf..

von Falk B. (falk)


Lesenswert?

@ Tobias Plüss (hubertus)

>Ich sage ja nicht dass du es anschauen MUSST ;) natürlich werde ich es

Jaja. OK, Back to Business. Steht doch alles sonnenklar drin. Start.pdf 
-> Inhaltsverzeichnis -> Apendix A Electrical characteristics.

Seite 9, Table A-12

V_IH 0,7*Vcc, macht bei 5V=Vcc 3,5V
V_IL 0,2*Vcc, macht bei 5V=Vcc 1V

Also nix mit 3,3V Ansteuerung. Pegelwandler oder vergessen.

>Warum meinst du, braucht man nicht mehr als 3.3V? Du hast das weiter
>oben geschrieben.

Weil das für ne Logikschaltug ausreicht. Ist Stand der Technik. 5V ist 
bis auf enige Bereiche veraltet, braucht mehr Strom, Leistung, ist 
langsamer etc.

@ Praktus Optimus (Gast)

>5V gibt es immer noch, z.B. ATA-festplatten.

Die laufen ALLE mittlerweile mit 3,3V. Schau mal genau hin und miss 
nach.

>Pegelwandler hin und her, es kommt natürlich auch drauf an unter welchen
>bediengungen die schaltung laufen soll. Für hobbyanwender kann die
>margin
>Vo_H und Vi_H schon mal 0V sein.

Glaub ich kaum.

>auch die Pegel (leicht) anpassen, beim 5V device leicht absenken (5%?),

Was ja auch sooo wahnsinnig viel bringt.

MFG
Falk

von Praktus Optimus (Gast)


Lesenswert?

< Was ja auch sooo wahnsinnig viel bringt.

Schau doch mal in die Toleranzen von Vcc, wahrscheinlich sind es mehr 
als 5% , schätze 10 % und damit:
V_iH = 0.7*4.5 = 3.15 V -> Passt.



also genau getrimmte Stromversorgung spart pegelwandler. Natürlich muss 
man jetzt garantieren, das die Spannung nicht über 4V7 steigt. so wie 
man garantieren muß das 5v5 nicht überschritten werden. sollte nachbar 
sein.

Zur sicherheit die 3v3 erhöhen. Ist die garantierte Konstanz der 
Stromversorgung besser als die geforderte Toleranz der Betriebsspannung 
hast du ne Lösung. ist halt ne Praktikerlösung, das problem der 
Pegelanppasung in das Problem der Stromversorgung zu verschieben.

von Martin K. (mkohler)


Lesenswert?

Praktus Optimus wrote:
> ist halt ne Praktikerlösung, das problem der
> Pegelanppasung in das Problem der Stromversorgung zu verschieben.
Ist nicht eine Lösung, eher Murks!

von Praktus Optimus (Gast)


Lesenswert?

Wer erklärt eine Schaltung innerhalb des Toleranzbereiches zu Murks?!

Gibt es noch jemand den Reifendruck immer auf exakt Hanbuchwert hält? 
Oder geht man nicht besser in Richtung obere Grenze um den 
Spritverbrauch zu mindern.

Und was ist dann das gegenteil zu Murks? Cargokult?! ( 
http://de.wikipedia.org/wiki/Cargo-Kult-Wissenschaft )

SCNR

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.