Forum: FPGA, VHDL & Co. EFB für "Primary I2C Configuration" einbinden


von Michel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe eine Frage an euch Experten.

Ich möchte beim MACHXO3 im 256-pinnigen Package die Hardened 
I2C-Schnittstelle an den Pins A9 und C9 als "Primary I2C Configuration" 
für eine Updatefunktionalität des FPGAs durch einen µC nutzen.

Den Technical Notes TN1279  TN1293  TN1294 zufolge ist hierfür der EFB 
als IP-Core zu generieren und einzubinden. Im IPexpress habe ich "nur" 
die I2C-Schnittstelle als "Primary Configuration" sowie unter dem Reiter 
I2C die entsprechenden Optionen gewählt - siehe Screenshots.
Nach dem Generieren wird folgendes COMPONENT ausgegeben, das ich im 
Toplevel meines Projekts inklusive Instanziierung eingebunden habe.
1
COMPONENT EFB_I2C
2
PORT (
3
  i2c1_scl   : inout std_logic;
4
  i2c1_sda   : inout std_logic;
5
  i2c1_irqo  : out   std_logic
6
);
7
END COMPONENT;
8
9
inst_EFB : EFB_I2C
10
PORT MAP (
11
  i2c1_scl  => i2c1_scl,  -- Direkt auf Pin A9 des MACHXO3 herausgeführt
12
  i2c1_sda  => i2c1_sda,  -- Direkt auf Pin C9 des MACHXO3 herausgeführt
13
  i2c1_irqo => i2c1_irqo  -- Direkt auf Pin xx des MACHXO3 herausgeführt 
14
);
Im LPF-File habe ich den I2C-Port enabled:
1
    SYSCONFIG SDM_PORT= ... I2C_PORT=ENABLE ...;
Kontrolle mit dem Spreadsheet, dort ist I2C_PORT auch enabled.

Beim Synthetisieren laufen die beiden Vorgänge "Synthesize Design" und 
"Translate Design" in Lattice Diamond durch, der Mapper schlägt jedoch 
mit folgender Fehlermeldung fehl:
1
ERROR - To support I2C port use, the EFB must be instantiated and the WISHBONE clock port 'WBCLKI' must be connected to an active clock source. The clock source should be 3.0 MHz or greater.

Nun stellt sich für mich die Frage, wo soll ich denn den Wishbone Clock 
Port "WBCLKI" anschließen, da der durch IPexpress generierte Core für 
"Primary Configuration über I2C" nur die oben angegebenen 3 Signale 
generiert?
Habt ihr schon einmal "nur" die I2C-Schnittstelle zum Ansprechen für die 
"Primary I2C Configuration" verwendet? Falls ja, was mache ich falsch 
oder wie habt ihr dies gemacht?

Ich freue mich über eure Rückmeldungen :-)

von Duke Scarring (Gast)


Angehängte Dateien:

Lesenswert?

Ich weiß nicht ob es was bringt, aber versuch mal, ob es klappt, wenn Du 
'Primary User' mit aktivierst und einen Takt anlegst (wb_clk_i).

Duke

von Michel (Gast)


Lesenswert?

Deine Idee Duke ist gut, ich habe etwas ähnliches in dieser Richtung 
ausprobiert ;-)

"Primary Configuration" UND "Primary User" gleichzeitig aktiviert lassen 
sich bei mir nicht generieren, dafür aber "Primary Configuration" UND 
"Secondary User" was auf anderen Pins herausgeführt wird.

Ein schneller Test mit manuellem Ergänzen der COMPONENT und der Instanz 
im Toplevel sowie der VHDL-Datei aus dem IPexpress um das Signal 
"WBCLKI" hat geholfen und das FPGA ist dann auch im geladenen Zustand 
über den I2C-Bus ansprechbar.

Danke für deine Hilfe Duke.
-> Seltsam ist, dass der IPexpress beim Generieren von nur "Primary 
Configuration" alles OK meldet und der Mapper mit einem Error fehlt 
schlägt...
-> Werden mal schauen ob ich die "eine" Zeile an Erweiterung mit 
"WBCLKI" drinnen lasse oder es mit dem zusätzlich aktivierten "Secondary 
User" teste.

von Holger (Gast)


Angehängte Dateien:

Lesenswert?

Michel schrieb:
> Ich möchte beim MACHXO3 im 256-pinnigen Package die Hardened
> I2C-Schnittstelle an den Pins A9 und C9 als "Primary I2C Configuration"

http://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/MachXO2PicoDevelopmentKit.aspx
Da ist für den Machxo2 Pico Board ein RefDesign drin.

Gruss Holger.

von Holger (Gast)


Lesenswert?

So habe ich damals das Machxo2 Pico Board mit Ref.Design angegangen.

I2C Bus mit Temp.Sensor u. SPI ROM, LCD Dispay. RS232 Port.

Link:
Beitrag "Lattice MachXo2 Bat.Powerd Stand Alone Soc"

Gruss Holger.

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.