Forum: FPGA, VHDL & Co. ICE40, PWM, SPI, Timer und Frequenz


von Stefan C. (Gast)


Angehängte Dateien:

Lesenswert?

Einen schönen guten Morgen an alle Elektronikfreunde,

Ich bin noch ein FPGA-Anfänger.

Für ein kleines privates Projekt (Steuerung) möchte ich bei meiner jetzt 
anstehenden Verkleinerung von einem Arty A7-35T auf einen ICE40 von 
Lattice Semiconductor wechseln.

Ich habe unter anderem 4 ADCs und 2 Temperatursensoren verbaut.
Meine Leistungsschalter steuere ich aktuell mit 100 bis 400 kHz an.

Die ADCs werte ich aktuell mit einem SPI-Takt von (100/12) MHz aus, also 
etwa 520kSamples.

Zur relativ genauen Einstellung des PWM hätte ich gerne weiterhin eines 
Mindesttakt von 100 MHz. Daher dachte ich zuerst an ein ICE40LP oder 
ICE40HX. Die ICE40Ultra-Serie läuft soviel ich weiß nur mit maximal 48 
Mhz.



Beim genaueren Durchlesen des Productselection-Guide kriege ich jedoch 
Zweifel an meiner Wahl.

Ich brauche mindestens 6 SPI Verbindungen zur Erfassung aller 
notwendigen Daten. Beim Arty A7 habe ich mir einfach 6 passende SPI mit 
Zustandsautomaten und Zähler erzeugt, jetzt sehe ich, dass die Lattice 
ICE40 keine Timer-Module haben.


Die Fragen klingen eventuell blöd.

Funktioniert das unabhängige Hochzählen von beispielsweise 10 Counter, 
trotzdem?

Das PWM-Modul der Ultra-Serie wird in einer der Application-Notes mit 12 
Mhz betrieben, kann man dieses nicht auch über eine der PLL 
beschleunigen?


Viele Grüße
Stefan

von Klakx -. (klakx)


Lesenswert?

Stefan C. schrieb:
> Beim Arty A7 habe ich mir einfach 6 passende SPI mit
> Zustandsautomaten und Zähler erzeugt, jetzt sehe ich, dass die Lattice
> ICE40 keine Timer-Module haben.

Hier blick ich nicht durch. Welches davon wurde erzeugt und welches hast 
du selber geschrieben? Ein Zustandsautomat wirst du sicherlich selber 
geschrieben haben, beim Timer klingts jedoch hier anders.

In HDL ist es eigentlich relativ einfach einen Counter/Timer zu 
schreiben.

Du solltest auch prüfen, ob die ganze Logik von Artix in den ICE passt.

von Stefan C. (Gast)


Lesenswert?

Hallo,

da habe ich mich etwas undeutlich ausgedrückt.
Die Zustandsautomaten, die mir den SPI ansteuern, habe ich selber 
programmiert.

ich habe mein Programm etwas vereinfacht und es könnte mit dem 
ICE5LP4K-SG48ITR klappen.

Ich verstehe allerdings das Datenblatt bezogen auf die Taktfrequenz und 
deren Application-Note mit den PLL nicht so richtig.

Das Modell ICE5LP4K-SG48ITR verfügt über einen internen Oszillator, der 
mit 48 MHz taktet, jedoch für mich eine zu große Schwankung aufweist.
Intern besitzt dieser auch PLLs.

Bei den Registern stehen Werte von 100 MHz, mit denen diese betrieben 
werden können.

Kann ich tatsächlich die Haupttaktfrequenz, die ich im VHDL-Code mit 
"rising_edge" abfrage, mit einem externen Oszillator auf 100 Mhz 
stellen?


Viele Grüße
Stefan

von FPGua (Gast)


Lesenswert?

Dein Baustein hat nur eine PLL.
Ob dein Design 100MHz schafft, das wirst du wohl ausprobieren müssen.
Schmeiß doch mal eine Synthese mit icecube2 an.

Die PLL kann dir noch viel höhere Takte als 100MHz erzeugen, die Frage 
ist eher, ob deine Logik mit dem Takt zuverlässig läuft.

Beitrag #6640105 wurde vom Autor gelöscht.
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.