Hallo,
ich habe ein Platine mit FT245BM, der von einem AVR ATMega128 angesteuert wird.
Der Baustein ist als "VCOM" konfiguriert und steuere die Daten- und Steuerleitungen per Portpins an, also nicht memory-mapped.
Die PC-Seite des USB ist an einen W2000-Rechner angeschlossen wo ein "HyperTerminal" auf COM4 auf Daten wartet.
Wenn ich auf dem PC eine Taste drücke, dann geht RXF am FT245BM von High auf Low. Rein prinzipiell scheint also eine Kommunikation da zu sein.
Auf dem AVR gehe ich folgendermassen vor:
- Read-Ltg ist High, Write-Ltg ist Low (gehört laut Datenblatt auch so).
- sobald RXF auf Masse geht:
- Port D auf Eingang schalten
- Read-Leitung auf Masse ziehen
- Daten von Port D übernehmen
- Read-Leitung wieder auf High setzen.
=> auch wenn ich vom PC nur ein einziges Byte übertrage wiederholt sich dieser Ablauf unendlich lange, RXF geht immer wieder auf Masse, trotzdem ich das empfangene Byte abgeholt habe.
Das kann ich mir nicht erklären.
Wenn ich Daten vom AVR aus sende, dann kommen die auf dem PC nicht an.
- Port D auf Ausgang schalten
- Byte auf Port D ausgeben
- Write-Leitung auf High
- Write-Leitung auf Low
Zwischen jedem einzelnen Schritt rufe ich eine Warteroutine auf, die von
1 bis 100 zählt.
Wo die Daten bleiben kann ich mir auch nicht erklären.
Hat jemand hier vielleicht einen grundsätzlichen Tipp?
Grüße, Torsten.