www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA mit PC/104


Autor: Geri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

I.) Ich möchte für ein ARM9-Board mit PC/104-Schnittstelle eine 
Interfacekarte bauen. Die Interfacekarte sollte mit einem FPGA bestückt 
werden, welcher einerseits die Dekodierung der an PC/104-Schnittstelle 
vornimmt und Benutzerlogik aufnehmen kann. Die Benutzerlogik sollte 
später ohne Hardwareeingriffe änderbar sein. Am liebsten wäre mir mit 
Standards zu arbeiten.

Praktisch wäre s.w.wenn ein Konfigurationsfile vom per 
PC/104-Schnittstelle übertragen werden kann.

Frage 1: Ist dieses Vorgehen Eurer Meinung nach überhaupt praktikabel 
und sinnvoll?

II.) Alternativ könnte man ja auch eine JTAG-Schnittstelle aufbauen und 
an einer Standardschnitttelle des ARM-Boards eine Art Wiggler anbringen 
und diesen zusätzlich mit der Interfacekarte verbinden:)

Frage 2: Wie sehen bitte evtl. bessere Lösungen aus?

Beste Grüsse

Geri

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> PC/104
= ISA
Also nicht PC104+ = PCI?
Der ISA-Bus ist ein obsoleter, asynchroner Bus (mit haarsträubend 
vermurkstem Timing) willst du wirklich darauf aufsetzen?

Zur Sache:
Ich würde vorschlagen, du lässt dein FPGA aus einem Config-Flash booten. 
Wenn du jetzt z.B. den JTAG-Port des Config-Flashs an FPGA-Pins 
anschliesst, dann kannst du über den PC104-Bus und das FPGA diesen 
Config-Flash umprogrammieren.

Autor: Geri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lothar

Vielen Dank für Deine Rückmeldung.

ja, ich meinte wirklich den PC104-Bus. Ich bisher der Annahme, dass 
dieser Bus bei vielen Embedded-Systemenn weit verbreitet zum Einsatz 
kommt. Sozusagen ein Standard... Die Codierung wäre sehr einfach. Mit 
ist aber auch aufgefallen, dass dieser Bus recht langsam ist:)

Ich bin aber flexibel bei der Boardwahl. Für mich ist es auch mehr ein 
"Lern-Projekt":) Es sollte aber sinnvoll sein. Es gibt ja massig 
AMR9-Boards. Verstehe ich dich richtig? Du würdest eher den PC104+-Bus 
bevorzugen?
Vielleicht ist es heutzutage auch besser, gleich ein Controller-Board 
mit FPGA zu verwenden... Mit gefällt nur die Modularität mit dem 
BUS-Sytem sehr gut.

Zur Verbindung PC104-FPGA. Das kann ich gut nachvollziehen.
Was passiert aber, wenn beim Schreiben der Konfig-Flashes ein Fehler 
auftritt? Nehmen wir aber mal an, das ist nicht das Problem. Gibt es 
Standard-Implementatierungen für JTAG-Signalgenerierung durch eine FPGA?

Eine Option wäre vielleicht auch noch ein zusätzliches CPLD auf der 
Interfacekarte zu platzieren, welches die Programmierung des 
FPGA-Konfigurationsspeichers vornimmt:)

Beste Grüsse und nochmals vielen Dank

Geri

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was passiert aber, wenn beim Schreiben der Konfig-Flashes ein Fehler
> auftritt?
Dann muß das Flash manuell mit einem Programmierkabel neu programmiert 
werden.

> Gibt es Standard-Implementatierungen für JTAG-Signalgenerierung
> durch eine FPGA?
Nein, die Signale werden dann nicht durch das FPGA generiert, sondern 
vom Prozessor. Und nur über das FPGA an die JTAG-Pins ausgegeben.

> Eine Option wäre vielleicht auch noch ein zusätzliches CPLD auf der
> Interfacekarte zu platzieren, welches die Programmierung des
> FPGA-Konfigurationsspeichers vornimmt:)
Beim ISA geht das (da gibt es keine Initialisierung wie beim PCI...).
Über das CPLD (am ISA-Bus) werden per Software die Konfigurationsdaten 
ins FPGA gebracht. Vorteile: weil die Konfigdaten auf dem 
Prozessorspeicher liegen ist kein Konfig-PROM nötig. Und ein 
Hardware-Update kann einfach wie ein Softwareupdate gehandhabt werden.

Aber ISA ist wirklich uralt, eigentlich ein Zombie...

> Du würdest eher den PC104+-Bus bevorzugen?
Diese PC104 CPUs sind mir ein Greuel:
Jede hat irgendwelche Schnittstellen irgendwo anders und irgendwie 
anders belegt. Meine Plattform derzeit ist ETX und dessen Nachfolger...

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowas wie dieses:
http://www.systerra.de/index.php?seite=35&inhalt=2345
http://www.systerra.de/index.php?seite=35&inhalt=2259

Der ISA-Bus ist uralt. Aber immer noch sehr beliebt in der 
Steuerungstechnik. Gerade bei den I/O-Karten des PC104-FF werden immer 
noch neue Karten nur mit diesem Bus angeboten.

Autor: Geri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für Eure Infos!

"Meine Plattform derzeit ist ETX und dessen Nachfolger..."
Das sieht mir schon recht fortschrittlich, nur halt auch etwas komplexer 
aus:) ETC, XTXund ETCexpress...

@Volker: Die Boards sehen mit recht leistungsfähig aus. Für meinen Fall 
möchte ich eine Stück Hardware mit IOs mit Schutzschaltung und 
Leitungstreiber aufbauen.

Vielleicht wäre aber es auch besser, ein ARM9-Board mit PC104-Bus plus 
so ein FPGA_Modul anzuschaffen und lediglich den IO-Teil zu 
implementieren. Der Lerneffekt würde dann halt ein wenig darunter 
leiden:)

Habe hier auch noch einen interessanten Link dazu gefunden
http://www.fpga-faq.com/FPGA_Boards.shtml

Nun bin ich gespalten und frage mich ob es dann immer noch Sinn macht 
auf dieser - vielleicht schon verlateten Technologie - aufzubauen:)

Beste Grüsse

Geri

Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei PC104 gibt es allerdings noch eine kleine Gemeinheit die Du 
unbedingt beachten solltest: PC104 hat standardmäßig 5V Pegel. Das 
verträgt nun mal kein neuerer FGPA. Eine Abhilfe kann da aber ein CPLD 
sein. Sozusagen als Pegelwandler. Es gibt eine ganze Reihe von aktuellen 
CPLDs, welchen 5V tolerante Eingänge haben. Sie treiben zwar nur 3,3V 
aktiv am Ausgang, das ist aber am ISA-Bus normalerweise kein Problem. 
Dann kannst Du ja auch gleich, wie vorgeschlagen, die Konfiguration des 
FPGAs über den ISA-Bus und den CPLD durchführen und sparst Dir den 
Config-Flash.

Pegelwandlerschaltkreise gehen natürlich auch.

Autor: Georg A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> PC104 hat standardmäßig 5V Pegel.

Wie schaffen das die neuen Industrie-PC-Boards? Da ist doch auch alles 
3.3V, zB. der ISA-Bus aus der Southbridge... Ich kann mir jetzt nicht 
vorstellen, dass die da Pegelwandler drinhaben...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie schaffen das die neuen Industrie-PC-Boards?
Es gibt da ausreichend viele Kompatibilitätsprobleme :-o

Ein FPGA mit 3,3V IO-Spannung geht ja nicht sofort kaputt, wenn es mal 
5V am Eingangspin abbekommt. Aber dann, das böse Erwachen ein paar Jahre 
später...

Und wie gesagt:
ISA ist tot
PCI steht kurz vor dem Ende
PCIe ist das aktuelle Bussystem

Autor: Geri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mathias: Danke für den Hinweis. Nun leuchtet mir auch wieso viele 
Erweiterungsboards mit CPLD und nicht mit FPGAs ausgerüstet sind.

Beste Grüsse

Geri

Autor: Georg A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das muss nicht unbedingt mit den 5V zu tun haben. Es könnte nur die 
Integration des GAL/PAL-Grabs eines alten Designs sein. Oder die 
benötigte Logik ist wirklich simpel, so dass es ein CPLD für ein paar 
EUR tut. Oder die FPGA-Konfigurationszeit ist zu lang. Oder der 
Entwickler hat Berührungsängste mit den komplexen FPGAs. Etc.p.p. :-)

Autor: René D. (Firma: www.dossmatik.de) (dose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe mit einem Arm9 und mit FPGAs im geleichen System gearbeit.
Diese system hatte für den FPGA einen SPI bootflash.
Das ist sehr unzwckmäßig, weil, das System nur über einen JTAG 
programmierbar ist.

Eine bessere Lösung ist einen SPI am ARM für einen JTAG 
umzufunktionieren.
Der parallel Flash am ARM ist groß genug um so ein Bitfile mit zu 
speichern.

Auf dem ARM9 wurde zuerst das U-boot als bootloader gestartet.
Im U-boot gibt es ein Codeschnipsel, der vor dem Starten des Linux den 
FPGA beschreibt. Leider habe ich keinen Hinweis gefunden wie die Hardwar 
für diesen Codeschnipsel aussieht.

Eine Bessere Grundlage bietet  xc3sprog.
Diese Tool läuft super und ist im Quellcode verfügbar.
Damit sollte es keine Probleme geben aus der USB Schnittstelle eine SPI 
zu machen.
Wenn du noch einen FTP server auf dem ARM laufen lässt. Kannst du das 
Bitfile per ftp aufschieben.
Per FTP habe ich das Verzeichnis immer aktuell gehalten auch die 
Linuxapplikationen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.