Ich versuche, SPI-Verbindungen zu finden, um mein Programm auf Xilinx XC3S50A-4VQG100C herunterzuladen , kann aber nicht herausfinden, welche Pins SPI-Pins sind.
Neuling-Alarm: Ich habe gerade angefangen, FPGA zu lernen und versuche, mein eigenes Entwicklungsboard von Grund auf neu zu bauen (auf diese Weise lerne ich immer besser). In der Welt der Mikrocontroller musste ich nur MOSI, MISO, SCK, SS an die Anschlussstifte anschließen und den Programmierer ausführen, aber hier sind die Dinge anders! Ich verwende den Waveshare-Programmierer
Wenn Sie erwarten, dass Sie Ihren Programmierer einfach verwenden können, um einen Konfigurations-Bitstream direkt in das FPGA zu laden, das diesen nur in einem spezialisierten SRAM speichert, werden Sie überrascht sein, wenn es jedes Mal alles vergisst, wenn Sie es ausschalten.
Im Gegensatz zu Mikrocontrollern hat die überwiegende Mehrheit der FPGAs keinen integrierten nichtflüchtigen Speicher. Das SPI soll in einen externen SPI-Flash-Speicher schreiben. Das FPGA erwartet ein bestimmtes Protokoll für den SPI-Flash-Speicher und ein bestimmtes Verdrahtungsschema dazu.
Jedes Mal, wenn beim Einschalten die richtigen Jumper vorhanden sind, durchläuft das FPGA automatisch eine Sequenz, um seinen Konfigurations-Bitstream aus dem SPI-Flash zu lesen und sich selbst zu konfigurieren. Daher sollten Sie das Handbuch sorgfältig lesen, um den akzeptablen Flash-Speicher sowie das Verdrahtungsschema zu ermitteln, da dies Ihr Board ähnlich wie eine falsche JTAG-Programmierverdrahtung auf einem Mikrocontroller beschädigen oder beschädigen wird.
Wenn Sie diesen grundlegenden Unterschied übersehen haben, haben Sie wahrscheinlich einige andere wichtige Fallstricke übersehen, die sich von Mikrocontrollern unterscheiden. Lesen Sie das Handbuch sorgfältig durch oder überfliegen Sie zumindest jeden Abschnitt mehrmals, um eklatante Unterschiede zu erkennen. Es gibt andere Unterschiede (wie Taktung und Stromversorgung). Es gibt einen Grund, warum die Implementierung eines FPGA auf einer Leiterplatte schwieriger (manchmal viel schwieriger) ist als auf einer MCU. Gehen Sie nicht davon aus, dass die Dinge auf einem FPGA bereits wie auf einer MCU erledigt sind. Das eine ist wie manuelles Fahren und das andere wie Automatik fahren.
Ich schlage vor, Sie besorgen sich zuerst ein Entwicklungsmodul, das wie ein winziges abgespecktes Entwicklungsboard ohne fast nichts darauf ist (normalerweise nur das FPGA, Netzteile, Uhr, Konfigurations-ROM, manchmal ein nichtflüchtiges ROM, manchmal RAM, vielleicht ein ADC, und manchmal ein USB-Programmierer), den Sie an Ihr eigenes Board (oder sogar ein Steckbrett) anschließen können. Auf diese Weise haben Sie eine Referenz dafür, ob Ihr Code für Ihr eigenes Devboard funktioniert oder nicht. Andernfalls debuggen Sie gleichzeitig von zwei Enden aus. Ganz zu schweigen davon, dass Sie sich das Schema des Entwicklungsmoduls ansehen können, das viel kleiner und einfacher zu verstehen ist. Es könnte sich lohnen, den Schaltplan zu untersuchen, auch wenn es nicht dasselbe FPGA ist. Ich empfehle Micronova, Trenz (die eigentlich von Trenz hergestellten Module, da sie auch andere verkaufen) und Alchitry.
Für das Gerät XC3S50A-4VQG100C verwenden Sie die JTAG-Schnittstelle, nicht SPI. Es hat dedizierte Pins.
JTAG ist eine etwas ähnliche Schnittstelle wie SPI, aber standardisiert für FPGAs, Debug-Schnittstellen auf vielen Mikroprozessoren und für Testzwecke.
Es gibt XC3S50AN-Bausteine, die einen nichtflüchtigen Speicher im selben Paket haben, sodass Sie keinen separaten Flash-Speicher auf der Platine einbauen müssen. Xilinx kennzeichnet diese Geräte mit dem Suffix „N“ in der Teilenummer.
Die JTAG-Signale befinden sich an diesen Pins für dieses Gerät und Paket:
jsotola
Elliot Alderson
DKNguyen