Hallo Forum, ich habe folgendes Problem: Ich möchte mit einem CPLD oder einem FPGA ein Kontaktfeld (endgültige Größe 10x15 Kontakte.. zu Testzwecken vorerst 5x7 Kontakte) ansteuern. Jeder dieser Kontakte liegt direkt an einem Pin des Chips. Ich möchte auf diesem Feld unterschiedlich große, viereckige, vierpolige Stecker anschließen die alle I2C-Schnittstellen bilden. Wenn der erste Stecker gesteckt wird, liegt also an einem Pin ein High-Pegel und an einem ein Low-Pegel (Vcc bzw. GND der I2C-Schnittstelle). Ausgehend davon soll der FPGA selbstständig den Data- und Clock-Pin lokalisieren. Dafür möchte ich allen Pins eine x- und eine y-Koordinate zuordnen damit der FPGA diese Koordinaten vergleichen kann und dann die Koordinaten des Data- und des Clock-Pins "berechnet". Ist es möglich jedem Pin einem Platz in diesem "virtuellen" Koordinatensystem zuzuordnen? Und wenn ja, wie (VHDL, Verilog,...)? vielen Dank für jede Hilfe :) LG Flo
Florian Schäffler schrieb: > Ist es möglich jedem Pin einem Platz in diesem "virtuellen" > Koordinatensystem zuzuordnen? Klar. Du kannst Dir einfach ein zweidimensionales Array anlegen: http://www.lothar-miller.de/s9y/archives/39-Mehrdimensionale-Arrays.html Duke
Ich bin nicht sicher, ob das das ist, was der TE sucht. Ich hätte da jetzt was anderes drunter verstanden ,,,
Hallo, erst mal danke für die Antwort, aber es ist leider wirklich nicht so richtig das was ich gesucht habe. Es geht wie gesagt darum, dass ich jedem Pin eine x- und eine y-Koordinate zuordne.
Richtig, 2D Array und dann jedem Pin einen Array-Eintrag zuordnen.
Florian Schäffler schrieb: > Ausgehend davon soll der FPGA selbstständig den Data- und Clock-Pin > lokalisieren. Und dann WAS damit machen? Sollen dann alle gesteckten I2C Teilnehmer parallel geschaltet werden? Ich stelle mir das ohne zusätzliche Hardware sehr spannend vor, weil es schon nicht einfach ist, nur mal zwei I2C Komponenten an definierten FPGA Pins miteinander zu verbinden. Und weil es keinen Tristate Bus in einem FPGA gibt müssten alle diese Verbindungen mit ein paar Riesenmultiplexern erledigt werden. Was allerdings recht einfach ginge, wären zwei CMOS Schalterebenen mit jeweils 150 Schaltern (SDA und SCL), die vom FPGA angesteuert werden. Allerdings ist leicht erkennbar: der Aufwand ist immens...
:
Bearbeitet durch Moderator
Die I2C-Teilnehmer kommunizieren nicht untereinander, das Interface wird nur beim ersten anstecken genutzt um ein EEPROM auszulesen auf dem jeweils Pinbelegung, Funktion, usw. der angestecken Baugruppen gespeichert ist.
Florian Schäffler schrieb: > das Interface wird nur beim ersten anstecken genutzt um ein EEPROM > auszulesen Und das zugehörige I2C Interface ist auf dem FPGA implementiert? Dann ginge das mit 2 Stück 150-zu-1 Multiplexern (Eingangsrichtung) und 2 Stück 1-aus-150-Decodern (zum Schalten der Ausgangstreiber) ...
Florian Schäffler schrieb: > Die I2C-Teilnehmer kommunizieren nicht untereinander, das Interface wird > nur beim ersten anstecken genutzt um ein EEPROM auszulesen auf dem > jeweils Pinbelegung, Funktion, usw. der angestecken Baugruppen > gespeichert ist. Wenn ich Dich jetzt richtig verstanden habe, willst Du die Pinzuordnung im FPGA dynamisch (wenn auch nur beim Start) gestalten. Ja, das geht. Ob die Tabelle für den/die Multiplexer eindimensional oder zweidimensional ist, spielt dabei eine untergeordnete Rolle. Duke
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.