mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FTDI MPSSE - USB to I2C - ACK zu spät?


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe es nun geschafft meinen AD7147 über das FTDI Kabel, das einen 
FT232H enthält, zu verbinden und es werden zumindest bereits schon mal 
Daten übertragen.

Beim Schreiben sieht das Signal auf dem Oszi richtig aus und beim Lesen 
bis nach dem 1. Byte auch.
Dann kommt aber das ACK Signal genau gleichzeitig mit einer steigenden 
Taktflanke. Anschließend bleibt SDA immer auf high, da vermutlich der 
AD7147 keine Daten mehr schickt, weil er das ACK nicht richtig erkannt 
hat.

Wie kann ich dies beheben? Hat jemand eine Idee?
Ich verwende die libMPSSE.dll aus der original LibMPSSE-I2C. Hier gibt 
es noch eine weitere Version im File mit dem Source-Code, aber das 
Problem bleibt gleich.

Grüße,
Martin

Autor: Jim Meba (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:
> Beim Schreiben sieht das Signal auf dem Oszi richtig aus und beim Lesen
> bis nach dem 1. Byte auch.
> Dann kommt aber das ACK Signal genau gleichzeitig mit einer steigenden
> Taktflanke.

Vergessen, das auch SCL nur als Open-Drain betrieben werden muss?
Schau Dir SCL auf dem Oszi sehr genau an, der Slave darf das auf Low 
ziehen für Clock-Stretching. Das müsste man eigentlich auch dann sehen, 
wenn der FTDI dort irrtümlich nicht auf Open Drain steht.

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe deine Antwort nicht 100%ig verstanden, aber sie hat mich 
zumindest so weit gebracht, dass ich folgendes festgestellt habe:

Es scheint so zu sein, dass der AD7147 versucht, den Clock noch etwas 
hinauszuzögern, was aber nicht richtig klappt, oder? An der markierten 
Stelle auf dem Bild erscheint ein Glitch der vielleicht schon als High 
durchgeht.
Wie kann ich das lösen? Ein Kondensator möglicherweise?

Grüße,
Martin

Autor: Jim Meba (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:
> Wie kann ich das lösen? Ein Kondensator möglicherweise?

Nö. SCL darf nur durch den Widerstand nach high gezogen werden, bei Dir 
ist aber offensichtlich der FTDI aktiv ("scharfe" Ecke bei 0->1, das 
muss genau so rund wie bei SDA aussehen).

Ich sehe grade das SDA dasselbe Problem hat. Kennt der FTDI keinen 
vernünftigen Open Drain Mode in der Pin Konfiguration?

Clock Streching kann MPSSE übrigens gar nicht. Versuche es mal einfach 
deutlich langsamer.

Autor: Kommunikator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jim M. schrieb:
> Clock Streching kann MPSSE übrigens gar nicht. Versuche es mal einfach
> deutlich langsamer.
Das ist aber schlecht! Wie soll der denn dann das ACK vernüftig handeln? 
Immerhin entsteht ja ein Delay durch die Wandlung auf USB!

Oder macht das der ACK selber und legt die Daten in einen Buffer?

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte auch mal das 'Vergnügen' mit der MPSSE I²C zu machen und hab 
es am ende vom Tag sein gelassen bzw. Bitbanging mit der MPSSE gemacht. 
Effektiv ist die MPSSE nur ein Schieberegister, mit dem man prima SPI 
und wohl auch JTAG machen kann. I²C wird mangels Open-Drain-Ausgängen 
und mehr oder minder manueller Erzeugung von Start- und Stop-Bedingung 
doch sehr wackelig.

Wenn du nicht auf den FT232H festgenagelt bist, nimm den FT4222H, der 
kann anständiges I²C und in der Revision B auch Repeated Start.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mir leider gleich das ganze Kabel C232HM-DDHSL-0 bestellt, wo 
dieser Chip verbaut ist und ja eigentlich im Datenblatt steht, dass 
dieses I2C kann. Daher wäre es schon toll, es damit zum laufen zu 
bekommen.
Es läuft ja nahezu alles, bis auf das ACK.
Im Source Code der MPSSE Lib gibt es mehrere Vorschläge 'to solve the 
glitch issue'. Es ist nur leider nicht ganz klar, ob damit dieser Glitch 
gemeint ist


Beste Grüße,
Martin

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

es funktioniert nun. Danke euch allen.

Ich habe eben direkt von FTDI eine Antwort erhalten mit einem Link zu 
einer Beta-Version (LibMPSSE-I2C_v0.6_BetaRelease _WindowsOnly.zip), die 
wohl diesen Fehler behebt und mit der auch weitere Bytes empfangen 
werden können.

Ich glaube nicht, dass ich das hier hochladen darf, daher schreibt 
einfach an den Support von FTDI und fragt nach dieser Version, falls ihr 
mal ähnliche Probleme habt.

Beste Grüße,
Martin

Autor: Jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin,

Ich habe dieses Problem auch bekommen. Könnten Sie bitte die 
Beta-Version verschicken
(LibMPSSE-I2C_v0.6_BetaRelease _WindowsOnly.zip) für mich, das würde mir 
viel helfen.
Meine E-Mail ist jackpeng20060531@gmail.com

Freundliche Grüße,
Jack

Autor: Patrick J. (ho-bit-hun-ter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Martin schrieb:
> Ich glaube nicht, dass ich das hier hochladen darf, daher schreibt
> einfach an den Support von FTDI und fragt nach dieser Version, falls ihr
> mal ähnliche Probleme habt.

@Jack
Was meinst Du, was Martin oben dazu geschrieben hat?
Genau: Er ist sich nicht sicher, ob er die FW weiter geben darf und Er 
möchte, daß Du Dich selber an den Support wendest, um dort die FW zu 
bekommen, da Er keinen Ärger haben möchte.

Aber ja, Deutsch ist gar nicht so einfach, obwohl Da Großbuchstaben und 
Satzzeichen, meiner Meinung nach in ausreichender Menge und an passender 
Stelle, verbastelt wurden.

Dann noch viel Erfolg hier beim Warten, kannst Es gebrauchen.

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]
  • [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.