I2C an ICE40UP5K, ACK-Bit wird nicht erkannt, Fehler bei der Hardware?

Gast #6949209
Lesenswert?
• ▲
▼
Hallo,

ich habe mir ein ICE40UP5K-Evalboard gekauft und versucht ein EEPROM 
damit zu beschreiben.

Den Schaltplan der kleinen EEPROM-Platine habe ich im Bild oben 
angehängt.
Verbunden ist die über Litzen, die Geschwindigkeit beträgt 100 kHz.

Den VHDL-Core für den I2C (FPGA-RD-02201) habe ich von der 
Lattice-Webseite bezogen.

Dieser sendet soweit auch I2C-Signale, jedoch wird das Acknowledge-Bit 
nicht runtergezogen. Bei einem alten Temperatursensor-Board passiert mir 
das selbe.

Die internen Pullups sind aktiviert.
Liegt das daran, dass die FPGA-Pins im Grundegenommen keine richtigen 
Open-Drain sind?

Grüße
Urs
Angehängte Dateien:
Gast #6949231
Lesenswert?
• ▲
▼
Urs schrieb:
> Die internen Pullups sind aktiviert.
> Liegt das daran, dass die FPGA-Pins im Grundegenommen keine richtigen
> Open-Drain sind?
Gut möglich. Aber da mal zwei 'echte' Widerstände mit 3 kOhm bis 10 kOhm 
ranzumachen, sollte doch kein Problem sein.
Außerdem würde ich mit einem Oszilloskop prüfen, ob die Leitungen vom 
Master auch wirklich freigegeben werden.

Duke
Gast #6949350
Lesenswert?
• ▲
▼
Hallo,

jap, es sah gut aus, leider habe ich aktuell kein Oszillogramm 
verfügbar, da ich in der Arbeit bin.

Die Flanken waren nicht verschliffen, etc.
Auch die Timings mit den "vierteln" vom Takt wo es wechselt hat gepasst.


Kann man prinzipiell an jeden Pin den I2C anbringen?
Die OpenCollector-Struktur stellt ja der Slave zur Verfügung.

Grüße
Urs
#6949381
Lesenswert?
• ▲
▼
Moin,

Urs schrieb:
> Kann man prinzipiell an jeden Pin den I2C anbringen?
An jedem Pin, der Tristate unterstuetzt.

> Die OpenCollector-Struktur stellt ja der Slave zur Verfügung.
Am Master brauchts auch OpenCollector. Oder was, was sich so verhaelt.
Also nur low aktiv treibt, und niemals high. Sondern statt high eben den 
Ausgangstreiber abschaltet (tristate).

Gruss
WK
Gast #6953391
Lesenswert?
• ▲
▼
Duke Scarring schrieb:
> Urs schrieb:
>> Die internen Pullups sind aktiviert.
>> Liegt das daran, dass die FPGA-Pins im Grundegenommen keine richtigen
>> Open-Drain sind?

Doch FPGA-Pins sind i.d.R Tristate-fähige Pins, da hilft ein Datenblatt 
um das zu klären. Und dann ist es auch eine Frage wie man die Ausgänge 
des I2C Controllers mit den IO-Pads des FPGA verbindet.


> Gut möglich. Aber da mal zwei 'echte' Widerstände mit 3 kOhm bis 10 kOhm
> ranzumachen, sollte doch kein Problem sein.


Die 2k sind schon 'echt' genug, 10k geht schon in die Richtung zu groß.

Aus dem zerstückelten Schaltbild wird nicht klar, ob beide IC am selben 
Ground liegen. Und die Funktion des Pins 'DAP' ist auch unklar. 
Vielleicht hängt ja der Speicher im Reset/Programming fest?

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.