www.mikrocontroller.net

Forum: FPGA, VHDL & Co. verständnisfrage i2c bzw generell sequenzieller ablauf mit


Autor: Sssssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich arbeite mich jetzt seit 2 Wochen in vdhl und FPGAs (spartan3) ein
und hab noch nicht wirklich viel Ahnung von vhdl.
Hab zwar mal ne VL gehört wo das grob angerissen wurde,
fand es damals aber stinklangweilig und hab mich gefragt wozu man das
jemals braucht g

Jetzt wo ich das ganze praktisch anwende finde ich das schlichtweg
genial :)

Mein Testaufbau funktioniert bis jetzt wunderbar:
- externes sram zeitmultiplex (verhält sich wie ein dual port asram)
- vga output liest mit 25mhz aus sram und zeigt es auf vga monitor
- simulierte cmos Kamera schreibt mit 25mhz ins sram

Meine simulierte Kamera besteht aus einer vhdl Komponente
die sich genauso verhält wie nachher die kamera, sie schreibt
zum testen einfach animierte bunte streifenmuster ins sram.

Jetzt möchte ich die Cam dranhängen, stehe aber vor dem Problem dass
ich sie beim einschalten per i2c Konfigurieren muss/will.
Eine Statemachine für einen i2c master sollte kein Problem sein.

Ich frag mich nun aber wie ich in vhdl etwas wie:
i2c_write_address(0x00, 0xAB);
i2c_write_address(0x00, 0x12);
i2c_write_address(0x00, 0x34);
...
nacheinander aufrufe.

Meine Idee wäre jetzt der i2c statemachine einen 8bit daten und adress
input
und ein start_write input sowie ein write_done output zu verpassen.

Und dann ein grosses switch/case gebilde was nach und nach alle daten
setzt.
Zum beispiel was wie
process(write_done)
begin
if rising_edge(write_done) then
  if (not_finished) then


Wenn ich jetzt die oben genannte Reihenfolge
schreiben will sieht das aber sehr unelegant bzw groß
aus (sind bis zu 20/30 register).

Gibt es da eine elegante Möglichkeit ? Hat evtl jemand nen
Codeschnipsel wo ich mal gucken kann wie man sowas sequentielles
generell macht ?

Autor: Sssssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
yeah mein erster doppelpost ...
bzw ausversehen auf strg+enter gekommen beim tippen :-X

Diesen thread nicht beachten!

hier ist der richtige:
http://www.mikrocontroller.net/forum/read-9-258131...

sorry ;)

Autor: Sssssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm ok da hat jmd den anderen thread gelöscht g
Also bitte doch hier posten 8)

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.