FT245BM

Gast #149104
Lesenswert?

hallo,

kennt sich jemand etwas besser mit dem Baustein FT245BM von FTDI aus.

habe ein parallesles 8 bit Signal von meinem ADC0804 und möchte dieses
Signal via FT245 mittels USB an einen PC schicken.

Ebenfalls soll vom PC ein Signal kommen, um am /WR eingang des ADC0804
eine Wandlung zu starten.
Nach ca. 100 ys sollen die am ADC anliegenden signale dann ausgelesen
und richtung PC übertragen werden.

bräuchte einen kleinen anstoß wie das realisiert werden könnte, also
wenn sich da einer besonders gut auskennt oder mir ein tipp geben kann,
bitte schreiben.

mfg michi
Gast #149112
Lesenswert?

Hallo,

ich habe Probleme mit meinem FT245BM.
Das Senden vom PC aus scheint jedenfalls zu gehen. Der 8051 liest die
Daten im Interrupt. Alles noch kein Problem. Wenn ich dann die Antwort
zurücksende vom 8051 an den PC kommt bei einem Byte Rücksenden der
Empfangsinterrupt wieder, als ob vom PC Daten kommen würden. Da ich
aber nichts sende, muß der Interrupt direkt vom FT245BM erzeugt
werden.
Das andere Problem ist, daß ich nur wenige Zeichen zurück an den PC
gebe. Vom Rechner wird dann aber meistens nicht alles erkannt.
Ich nutze das Ganze, um von Linux aus vom µC Daten zu bekommen oder
Daten zu schreiben. Hat jemand eine Idee warum?
In einem anderen Thread sollte WR mit 10k an Masse gehängt werden und
RD mit 10k an +5V. Das habe ich getan, aber es geht immer noch nich.
Ich bin am verzweifeln, da ich schon 14 Tage damit zu keinem Ergebnis
komme.

mfG

Matthias
Gast #149113
Lesenswert?

Hi

ich hatte keinerlei solche Probleme. Allerdings nutze ich die
VCP-Treiber unter Windows. Allerdings hab ich den Chip auch schonmal
unter Linux (/dev/ttyUSBx) getestet und da konnte ich auch keine
solchen Probleme feststellen. Ich nutze den Chip allerdings nicht per
Interrupt sondern per Polling. Da im Chip ein FIFO drin ist und der
Treiber zusätzlich blockiert wenn das FIFO im Chip voll ist sehe ich
darin auch kein großes Problem.

Wie hast du denn den 245er beschaltet? Ein funktionierendes Beispiel
findest du hier:
http://www.matwei.de/ger/index.php?page1=elektronik&page2=usbisp

Matthias
Gast #149114
Lesenswert?

Hallo,

ich nutze ein fertiges Modul (ebay) und habe es an einen AT89C51CC02
geklemmt.
Anschlüsse
D0..D7 = P1
RXF#   = P3.2
TXF#   = P3.4
RD     = P2.0
WR     = P2.1

Empfangsroutine im Int Ext0
void INT0int (void) interrupt{

  do {
    RD_USB = 0;         //wir wollen Daten lesen
    PtrRXbufUSB+=1;
    RXbufUSB[PtrRXbufUSB]=Data_USB;
    RD_USB = 1;
    //printf("USB %x",RXbufUSB[PtrRXbufUSB]);       //
  } while (RXF_USB == 0);  //wenn low, dann sind noch Daten da
}

Das Senden mache ich so:
    RD_USB=1;    //war in einem Beispiel
    WR_USB=0;       //aus Beispiel
    while(TXE_USB);
    Data_USB=chr1;
    WR_USB=1;
    WR_USB=0;

Wenn ich dann diese Routine starte, kommt der obige Interrupt.

Jede Info wird mir hoffentlich helfen.

mfG

Matthias
Gast #149115
Lesenswert?

Hallo,

noch einige Infos zu weiter oben.
Ich habe alles umgebaut, da vielleicht ein Denkfehler drin war, aber es
kommen immer noch Daten zurück bei einem Transfer vom FT245BM --> PC
( immer 2 Bytes, zuerst dezimal 13 und dann 8).
Was kann das sein?
Ist der Bitbang Modus automatisch eingeschaltet? Ich habe das Teil so
genommen, wie es ist, keine Programmierung des Eproms etc. Das Ganze
nutze ich unter Linux (Apache, PHP) als ttyUSB0.

mfG

Matthias

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren