Hallo Besucher, der Thread wurde 628 mal aufgerufen und enthält 0 Antworten

letzter Beitrag von DocRaptor am

FPGA-Soundcard Projekt

  • Hallo euch allen,
    da Corona noch anhält und sehr vieles nicht stattfindet, bin ich an paar Projekten dran. Mitunter möchte ich ein bischen mit FPGAs machen. Eigentlich habe ich dafür ein TinyFPGA BX bestellt, aber der ist noch immer nicht angekommen. Deswegen wollte ich selber Boards mit den ICE40 FPGAs machen und die Platinen sind auch schon gemacht(https://github.com/Doc-Raptor/ICE40HX4K-Breakour-Board), aber das Problem ist, das der ICE40HX4K in der 144 Pin Form weltweit nicht lieferbar ist. Ich habe nun paar ICE40HX1K in der 144 Pin Variante bestellt, leider haben die ein anderes Pinout. Deswegen habe ich mir gedacht, das ich damit und dem STM32F103 ein Board mache, das man in ein ISA-Bus stecken kann und dann mit einem (oder mehreren) Core als Soundkarte nutzen kann, da immer noch viele alte Soundkarten verschrotten werden (https://www.ebay-kleinanzeigen…hrott/1716286065-228-9245 hab hier meine ich eine Soundblaster 32 gesehen) (und das gleiche gilt auch für anderes wie VGA-Karten z.B.), wodurch die derzeitigen immer teurer werden. Zudem hören sich Soundkarten aus diesen Zeiten von Modell zu Modell anders an und manche wie die Roland LAPC sind ja fast kaum zu bekommen.
    Manche werden Fragen: Warum der ICE40HX1K und der STM32F103 und nicht z.B. etwas von Altera/Intel wie man es bei dem MiSTer zu finden ist? Für die ICE40 Familie gibt es eine Open Source Toolchain anders als für die anderen FPGAs. Desweiteren gibt es den ICE40HX1K und ICE40HX4K in 144-LQFP, was das verlöten einfacher macht, und der 1K ist anders als der 4K verfügbar. Und zum STM32F103: er ist günstig, wird von der Arduino IDE und PlatformIO unterstützt, und ich habe in der Vergangenheit paar Erfarungen mit dem gesammelt.
    Zum Design: Da der ICE40HX1K maximal 3.3V verträgt, der ISA-Bus aber mit 5V arbeitet, dienen 74HC245 dazu, diese Signale auf 3.3V zu senken. Als Pinout für den ISA-BUS habe ich die Orpheus-Soundkarte genommen, habe aber aber noch zusätzlich schon einmal die Pinne am Bus, die bei einer SoundBlaster 16 genutzt werden, an den Bus-Pinne des Busses gelegt, aber ich habe noch keine 74HC245 für diese angelegt.
    Es gibt ein Quarzoszilator, der gesockelt wird.
    SPI-Config-Flash für den ICE40HX1K ist auch gesockelt und kann (wenn es klapt) mit dem STM32F103 programmiert werden.
    Es gibt ein Gameport-Anschluss, denn ich derzeitig mit 3.3V versehen habe. Für die Pinne, die ein analoges Signal wiedergeben, würde ich an den STM32F103 legen, der dann als ADC dient. Die anderen Pinne für die Buttons würde ich auch so machen, da bin ich mir aber nicht sicher. Mit dem beiden Pinnen für Midi weiss ich noch garnicht, ob der an den MCU oder FPGA kommt. Der Vorteil des MCU ist, das er einige Pinne hat, die 5V tollerant sind.
    Es gibt ein Wavetable Port, aber der fürt derzeitig noch nirgendwo hin. Wo der dran kommt, weiss ich auch noch nicht.
    Speicher in Form von RAM und ROM für Samples und Co wird es warscheinlich einen 8 oder 16 Bit Speicherbus geben, wo die RAM- und ROM-Chips dranhängen. Alternativ könnte es aber auch über SPI laufen
    DAC ist auch noch nicht entschieden. Folgende Möglichkeiten habe ich derzeitig in betracht gezogen: 1. Ein I2S DAC. 2. 74HC595 mit R2R DAC 3. FlipFlops mit R2R dahinter an einem Speicherbus, wenn es einen geben sollte.
    Für die komunikation zwischen MCU und FPGA gibt es einmal Serial. Dann wird es über den 8/16 Bit Speicherbus und/oder SPI eine weitere Komunikationsmöglichkeit geben.
    AMP/FrontEnd ist noch garnichts da. Da weis ich noch nicht, was ich da mache.
    Mikrophon-Eingang weis ich nicht, ob überhaupt einer draufkommt. Dann wäre ein DAC von nöten.

    Mein Ziel ist es, das die Karte unter 50€ kostet am Ende.

    Habt ihr Vorschläge, Tipps, Anregungen?

    Denn bisscherigen Stand findet ihr unter:https://github.com/Doc-Raptor/FPGA_Soundcard_ICE40_1K