www.mikrocontroller.net

Forum: FPGA, VHDL & Co. VDHL register konfigurieren


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Franz (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo,

ich habe ein kleines Problem. Ich bastel gerade an einem FPGA rum und 
muss den Output von 1.5V auf 3.3V hochsetzen. Laut Anleitung muss ich 
einfach nur zwei Register setzen. Ich sehe spontan keine andere 
Möglichkeit, als das mit VHDL zu lösen (glaube ich zumindest). Ich habe 
aber überhaupt keine Ahnung von VHDL.

Ich habe mir ein paar Tutorials und Beispiele im Netz angeschaut, werde 
aber irgendwie nicht daraus schlau, möchte jetzt allerdings auch nicht 
Stunden investieren, um die Sprache zu lernen, wegen einer Kleinigkeit.

Also, ich will nur die Register 0x8 auf den Wert 0x80 setzen und das 
Register 0x0 auf den Wert 0x00.

Kann mir da jemand helfen? :)

Autor: Klaus (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Bahnhof?

Autor: Gustl Buheitel (-gb-)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wie wäre es mit ein paar mehr Informationen?

Das hier ist vielleicht auch sinnvoll:

http://www.mikrocontroller.net/articles/FPGA

Viele FPGAs haben aber schon 3,3V CMOS an den Pins.

Autor: Christian R. (supachris)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ein FPGA mit Registern um eine Spannung einzustellen? Wohl kaum. Da ist 
wohl ein externer ADC dran? Meine Glaskugel sagt, dass der per SPI 
angeschlossen ist und eben entsprechend einzustellen ist. Aber die 
Glaskugel ist sehr trüb heute, schwer zu erkennen....

Autor: Ingenieur (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Da möchte jemand die Bankspannung ändern, denke ich.

Autor: Christian R. (supachris)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
KAnn auch sein, wobei 1,5V schon recht unüblich sind. Und über welches 
Register bitte soll das gehen? Da müsste ja ein programmierbarer 
Spannungsregler die VCCIO speisen.

Autor: Franz (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Oje, ich hatte schon befürchtet, dass meine Erklärung voll Unwissenheit 
hinten und vorne nicht reicht.

Der Ingenieur hat schon Recht, ich möchte die Bankspannung ändern.
Ich benutze ein Spartan-3A DSP von Xilinx.
An die Pins der Bank komme ich nicht ran, sonst könnte ich einfach die 
3.3V Ausgänge benutzen. Zur Zeit ist der Augang auf einem justierbaren 
Voltage Rail: FMC expansion connector (ich weiß nichtmal genau was das 
bedeutet).

Hier mal der Auszug aus dem Handbuch, der mich zu meiner Frage getrieben 
hat:

To set the appropriate voltage on the FMC connector, an I²C digital pot 
must be set to a specific value. The value should be written to the 
volatile register of the digital pot. This register is located at 
address 0x00. To write to the volatile section of the digital pot make 
sure that address 0x08
is set to 0x80.

Aus dem Rest des Buches habe ich mir zusammengereimt, dass ich dies in 
VHDL machen müsste, aber wie gesagt, vielleicht habe ich das Ganze auch 
falsch verstanden.

Autor: Christian R. (supachris)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Oha, da hast du dir ja was vorgenommen. Dazu musst du einen I2C 
Controller in dein System implementieren, das ist ohne Vorkenntnisse 
gelinde gesagt, schwierig. Was genau ist denn das für ein Board? FMC ist 
der "FPGA Mezznine Card" Verbinder, der ist üblicherweise auf neueren 
Xilinx Demo-Boards zu finden. Aber Spartan 3 und FMC hab ich noch nicht 
gesehen. Poste doch mal den Link zu dem Board, und erklär, wieso du die 
Boardspannung ändern willst/musst. 1.5V klingt für mich nicht nach 
ungefähr, kann es sein, dass da ein Mobile DDR RAM dran hängt?

Edit: Hab das Board gefunden, ist das XtremeDSP™ Development Platform 
Spartan-3A DSP 3400A, oder?

Da geht die Spannung offenbar wirklich nur zu den FMC Steckern. Naja, 
dann siehe oben. Ein I2C Controller muss dran. Was läuft denn auf dem 
FPGA? VIelleicht sogar ein MicroBlaze Prozessor?

Autor: Drill-Tutor (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Christian R. schrieb:
> Oha, da hast du dir ja was vorgenommen. Dazu musst du einen I2C
> Controller in dein System implementieren, das ist ohne Vorkenntnisse
> gelinde gesagt, schwierig.

Falls es der einzige IC an diesem I2C ist und du nur diese beiden 
Register setzen willst, brauchst du keinen kompletten I2C Controller, da 
genügt es per FSM einen paar bits im richtigen timing rauszushiften.

Gruß

Autor: Christian R. (supachris)
Datum:
Angehängte Dateien:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Richtig. Ich häng mal den Simpel-I2C Core an, der in der FPGA 
Implementierung des Apple II verwendet wird, um den Sound-Controller 
beim Start einzustellen. Du könnte man simpel anpssen. Da werden auch 
bloß einmalig ein paar Register beschrieben...

Autor: Franz (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Christian R. schrieb:

> Edit: Hab das Board gefunden, ist das XtremeDSP™ Development Platform
> Spartan-3A DSP 3400A, oder?
>
> Da geht die Spannung offenbar wirklich nur zu den FMC Steckern. Naja,
> dann siehe oben. Ein I2C Controller muss dran. Was läuft denn auf dem
> FPGA? VIelleicht sogar ein MicroBlaze Prozessor?

Genau dieses Board ist es.
Micro- oder PicoBlaze, gute Frage. Könnte ich erst am Montag wieder 
nachschauen.

Als ich das Board in die Hand gedrückt bekam, war es schon auf 1.5V 
eingestellt, ich weiß nicht, was damit vorher gemacht wurde. Ich muss 
eigentlich nur einen Bitstrom aus einem Gerät auslesen, protokollieren 
und weitergeben. Das weiterverarbeitende Gerät kann aber nur mit 3.3V 
arbeiten.

Wie mir das aussieht, bin ich wohl doch schneller, wenn ich den Kasten, 
wo das Board drin ist aufschraube, die Bank manuel auf 3.3V ändere und 
dann das Ganze wieder zusammenbastel.

Trotzdem vielen Dank für die Hilfe, ich werde mich mal ein wenig in den 
Code vom I2C Controller einlesen, vielleicht komm ich damit noch ein 
wenig weiter.

Autor: Christian R. (supachris)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hm, das sind ja wieder tolle Aufgabenbeschreibungen. Also die 
Bank-Spannung an diesem Board kannst du niht manuell ändern. Dazu muss 
man das Digital-Poti einstellen. Wenn da ein *blaze drauf ist, ist 
sicherlich schon irgendwo eine I2C Funktion implementiert, das machts 
dann einfacher.

Autor: Fritz Jaeger (fritzjaeger)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Christian R. schrieb:
> Richtig. Ich häng mal den Simpel-I2C Core an, der in der FPGA
> Implementierung des Apple II verwendet wird, um den Sound-Controller
> beim Start einzustellen. Du könnte man simpel anpssen. Da werden auch
> bloß einmalig ein paar Register beschrieben...

Ist ein bißchen komplizierter als nötig.
Picoblaze odergar Microblaze ist IMHO auch zu viel des Guten.

Im wesentlichen braucht es ein schieberegister das seriell ca. 2x27 bit 
auf SDA rausschiebt (Address&rw&ACK&data&ACK&DATA&ACK) (siehe Philips 
I2C specification S. 13), dazu um eine viertel  periode versetzt SCL 
klappern lassen (S.9) . Dazu eine kleine Statemachine die die Start/Stop 
condition (SDA wechsel während SCL High) realisiert und abschliessend 
auf Tristate schaltet.


Idealerweise nimmst du für Xilinx ein paar vorinitialisierte SRL16 
Macros für ROM und schieben, dann sollteset du mit wenigen Slices (10 
-25? (grobe Schätzung)) auskommen.

MfG

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net