Scalable FPGA Board: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
== Einleitung ==
== Einleitung ==


Dieses Projekt soll dazu dienen ein Basis Projekt zu schaffen, bei dem ein Microcontroller und ein FPGA zum Einsatz kommen. Dabei soll der Microcontroller per USB mit dem PC kommunizieren und ein FPGA zum Einsatz kommen. Der FPGA wird über den Microncontroller geladen. Auf Steck-Modulen sollen dann die eigentlichen Schnittstellen implementiert werden.
Dieses Projekt soll dazu dienen, eine Basis für Projekte zu schaffen, bei denen ein Mikrocontroller und ein FPGA zum Einsatz kommen. Dabei soll der Mikrocontroller per USB mit dem PC kommunizieren. Der FPGA wird über den Mikroncontroller geladen. Auf Steck-Modulen sollen dann die eigentlichen Schnittstellen implementiert werden.


Eine Liste von Features:
Eine Liste von Features:


* 32 Bit Microcontroller mit USB
* 32-Bit Microcontroller mit USB
* kleiner FPGA
* kleiner FPGA
* FPGA und Microcontroller per SPI verbunden
* FPGA und Microcontroller per [[SPI]] verbunden
* zwei SD-Karten als Massenspeicher
* zwei SD-Karten als Massenspeicher
* Microcontroller lädt den FPGA
* Microcontroller lädt den FPGA
Zeile 15: Zeile 15:
Projekt Status: Planung
Projekt Status: Planung


Next: Spannungs versorgung planen
Next: Spannungsversorgung planen


Todo:  
Todo:  
- Taktgewinnung für FPGA und MCU (48 MHz, wegen USB für MCU)
* Taktgewinnung für FPGA und MCU (48 MHz, wegen USB für MCU)
- Debug und Test Möglichkeiten vorsehen
* Debug- und Testmöglichkeiten vorsehen
- Schnittstellen zwischen MCU und FPGA definieren
* Schnittstellen zwischen MCU und FPGA definieren
- genutzte MCU Schnittstellen  
* genutzte MCU-Schnittstellen  
- freie MCU Schnittstellen auflisten
* freie MCU-Schnittstellen auflisten
- freie FPGA-Ports abschätzen
* freie FPGA-Ports abschätzen
- Partitionierung der vorhandenen Resourcen auf homogene Konnektoren
* Partitionierung der vorhandenen Resourcen auf homogene Konnektoren
- Schaltplan Erstelleung
* Erstellung Schaltplan  
- Test Software für FPGA schreiben und simulieren
* Testsoftware für FPGA schreiben und simulieren
- MCU Code zusammen stellen, der die FPGA schnittstellen nutzen würde. Testprogramm zur Inbetriebnahme, FPGA per MUC laden
* MCU-Code zusammenstellen, der die FPGA-Schnittstellen nutzt. Testprogramm zur Inbetriebnahme, FPGA per MCU laden
- Design von Erweiterungs Platinen: RS232, CAN, USB, Ethernet, LWL
* Design von Erweiterungsplatinen: RS232, CAN, USB, Ethernet, LWL
- Platine routen
* Platine routen
- Musteraufbau
* Musteraufbau
- Inbetriebname
* Inbetriebname
- Applikative SW
* Applikative SW


== Motivation ==
== Motivation ==
Typische FPGA Projekte implementieren die CPU im FPGA und verschwenden wertvolle universelle FPGA Hardware. Einen zusätzlichen Chip zum Laden des FPGAs muss man so oder so investieren. Die einfache Lösung ist hier einen FTDI-Chip zu verwenden. Dieses Projekt soll diesen Ansatz ein wenig erweitern, indem ein Microcontroller benutzt wird um mit dem PC zu kommunizieren. Die Aufteilung, was im Microcontroller und was im FPGA implementiert wird, kann später verfeinert werden.
Typische FPGA-Projekte implementieren die CPU im FPGA und verschwenden wertvolle universelle FPGA-Hardware. Einen zusätzlichen Chip zum Laden des FPGAs muss man so oder so investieren. Die einfache Lösung ist hier, einen FTDI-Chip zu verwenden. Dieses Projekt soll diesen Ansatz ein wenig erweitern, indem ein Microcontroller benutzt wird, um mit dem PC zu kommunizieren. Die Aufteilung, was im Microcontroller und was im FPGA implementiert wird, kann später verfeinert werden.
 


== Hardware ==
== Hardware ==
Zeile 46: Zeile 45:
=== Spannungsversorgung ===
=== Spannungsversorgung ===


Betrieben werden, soll die Schaltung über USB, der Microcontroller meldet sich am BUS an und schaltet dann die Spannungen für den FPGA ein. Zustzlich soll eine Externe Spannungsversorgung möglich sein, wenn die Schaltung (abhängig vom FPGA und den Erweiterungen) mehr als die erlaubten 500mA benötigt.
Betrieben werden soll die Schaltung über USB: der Microcontroller meldet sich am BUS an und schaltet dann die Spannungen für den FPGA ein. Zustzlich soll eine externe Spannungsversorgung möglich sein, wenn die Schaltung (abhängig vom FPGA und den Erweiterungen) mehr als die erlaubten 500mA benötigt.


Spannungsregler:
Spannungsregler:
  - LM 1086 IT3,3 (1,5 A, etwa 1,10 EUR, 2,5 V 3,3 V
  - LM 1086 IT3,3 (1,5 A, etwa 1,10 EUR, 2,5 V 3,3 V
- LM 317        (LM 317-220, 0,43 EUR
- LM 350        ( 0,85 EUR)


=== Schnittstellen ===
=== Schnittstellen ===


USB vom AT91. SPI an FPGA. Restliche I/O und Schnittstellen des Micro controller werden per Stiftleiste heraus geführt.
USB vom AT91. SPI an FPGA. Restliche I/O und Schnittstellen des Microcontroller werden per Stiftleiste heraus geführt.


An einem weiteren SPI des Microcontrollers soll eine SD-Karte angeschlossen werden, damit die MCU den FPGA autonom laden kann.  
An einem weiteren SPI des Microcontrollers soll eine SD-Karte angeschlossen werden, damit die MCU den FPGA autonom laden kann.  
Zeile 65: Zeile 66:
== Downloads ==
== Downloads ==
* Sourcecode:  
* Sourcecode:  


== Siehe auch ==
== Siehe auch ==


 
[[Kategorie:FPGA-Projekte]]
<!--[[Kategorie:FPGA| ]] Wenn es fertig ist-->
[[Kategorie:FPGA und Co]]
[[Category:Projekte| ]]
[[Kategorie:C]]

Aktuelle Version vom 18. Juni 2021, 15:32 Uhr

'AT91SAM7 FPGA Board 'von Thorsten W.

Einleitung

Dieses Projekt soll dazu dienen, eine Basis für Projekte zu schaffen, bei denen ein Mikrocontroller und ein FPGA zum Einsatz kommen. Dabei soll der Mikrocontroller per USB mit dem PC kommunizieren. Der FPGA wird über den Mikroncontroller geladen. Auf Steck-Modulen sollen dann die eigentlichen Schnittstellen implementiert werden.

Eine Liste von Features:

  • 32-Bit Microcontroller mit USB
  • kleiner FPGA
  • FPGA und Microcontroller per SPI verbunden
  • zwei SD-Karten als Massenspeicher
  • Microcontroller lädt den FPGA

Projekt Status: Planung

Next: Spannungsversorgung planen

Todo:

  • Taktgewinnung für FPGA und MCU (48 MHz, wegen USB für MCU)
  • Debug- und Testmöglichkeiten vorsehen
  • Schnittstellen zwischen MCU und FPGA definieren
  • genutzte MCU-Schnittstellen
  • freie MCU-Schnittstellen auflisten
  • freie FPGA-Ports abschätzen
  • Partitionierung der vorhandenen Resourcen auf homogene Konnektoren
  • Erstellung Schaltplan
  • Testsoftware für FPGA schreiben und simulieren
  • MCU-Code zusammenstellen, der die FPGA-Schnittstellen nutzt. Testprogramm zur Inbetriebnahme, FPGA per MCU laden
  • Design von Erweiterungsplatinen: RS232, CAN, USB, Ethernet, LWL
  • Platine routen
  • Musteraufbau
  • Inbetriebname
  • Applikative SW

Motivation

Typische FPGA-Projekte implementieren die CPU im FPGA und verschwenden wertvolle universelle FPGA-Hardware. Einen zusätzlichen Chip zum Laden des FPGAs muss man so oder so investieren. Die einfache Lösung ist hier, einen FTDI-Chip zu verwenden. Dieses Projekt soll diesen Ansatz ein wenig erweitern, indem ein Microcontroller benutzt wird, um mit dem PC zu kommunizieren. Die Aufteilung, was im Microcontroller und was im FPGA implementiert wird, kann später verfeinert werden.

Hardware

Gesetzt sind, ein AT91SAM7S256 (oder pin-kompatibel) und XC3S50. Microcontroller und FPGA sind über SPI verbunden, so kann der Controller per DMA Daten aus dem FPGA lesen und schreiben. Diese Daten bilden ein memory mapped I/O Interface nach.

TODO: Alternativ wäre ein 8bit MMIO Interface denkbar, gibt es einen AT91 Pin kompatiblen Typen, der das kann?

Spannungsversorgung

Betrieben werden soll die Schaltung über USB: der Microcontroller meldet sich am BUS an und schaltet dann die Spannungen für den FPGA ein. Zustzlich soll eine externe Spannungsversorgung möglich sein, wenn die Schaltung (abhängig vom FPGA und den Erweiterungen) mehr als die erlaubten 500mA benötigt.

Spannungsregler:

- LM 1086 IT3,3 (1,5 A, etwa 1,10 EUR, 2,5 V 3,3 V
- LM 317        (LM 317-220, 0,43 EUR 
- LM 350        ( 0,85 EUR)

Schnittstellen

USB vom AT91. SPI an FPGA. Restliche I/O und Schnittstellen des Microcontroller werden per Stiftleiste heraus geführt.

An einem weiteren SPI des Microcontrollers soll eine SD-Karte angeschlossen werden, damit die MCU den FPGA autonom laden kann.

Für den FPGA sollte ein DDRAM-Chip und eine weitere SD-Karte eingeplant werden.

Software

Beschreibung der Software

Downloads

  • Sourcecode:

Siehe auch