Forum: Mikrocontroller und Digitale Elektronik FT245BM


von michi (Gast)


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

von Matthias (Gast)


Lesenswert?

Hi

µC dazwischen. Alles andere eignet sich nicht für ordentliches Timing.

Matthias

von Martin (Gast)


Lesenswert?

Hallo,

ist es überhaupt möglich D0..D7 des FT245 direkt anzusteuern oder muss
man das timing mit RD und WR einhalten?


Martin

von Matthias (Gast)


Lesenswert?

Hi

kann man im BitBang Modus. Ist aber grauenhaft langsam und das Timing
der Signale eher Glücksache.

Matthias

von Martin (Gast)


Lesenswert?

Hallo Matthias,

kannst du das mit dem bitbang mal genauer erklären?
Im Datenblatt finde ich nichts genaues.

Martin

von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

Ist zwar nicht genau das was gesucht wird, aber kann vielleicht
weiterhelfen.

von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

und hier der Text dazu...

von Matthias (Gast)


Lesenswert?


von Matthias (Gast)


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

von Matthias (Gast)


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

von Matthias (Gast)


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

von Matthias (Gast)


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

von Matthias (Gast)


Lesenswert?

Hi

das sieht für mich eigentlich alles OK aus. Kann mir das Verhalten auch
nicht erklären.

Matthias

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.