Forum: Mikrocontroller und Digitale Elektronik FTDI 245BM USB-Projekt Visual-WATCH-DOG


von Holger H. (holger-h-hennef) Benutzerseite


Lesenswert?

Ich habe an meinem neuen Laptop keine LPT mehr.
Nur noch ETHER-Net u. USB.
Ich habe schon so einige Teile nach Holger Klabunde u.
Ulrich Radig nachgebaut. Mir geht es nicht darum etwas
von der Stange zu kaufen, wegen Basteltrieb und induvidueller
Modifikation u. Gestaltung usw.

Ich lese hier einiges über FTDI und deren Probleme hier im Forum.

Die Nummer mit dem Low-Cost USB-ATMEGA32 aus dem März Elektor-Heft
habe ich schon hinter mir. ( Mal noch mal mit den 2 Z-Dioden probieren 
???? ).
Da ging die Enummeration in die Hose. Nur alles Nuller drin.
Ich habe das den erst mal für später ins Regal abgelegt.
Ob das auch mit den unterschiedlichsten Bus-Therminierung zusammenhängt 
????.

Eigentlich sollte ich die Zeit besser gleich für einen
I/O ETERNET-Brenner nutzen ????, Power over Ether-Net mit Gold-Cap 
puffern ??? .

Aber zurück zur Frage:
Wie zapfe ich ein USB Data Kanal am sichersten u. besten an ???.
----------------------------------------------------------------
Hintergrund ist: Wie bei den USB-Kartenlesern ist
eine rote LED,u. eine grüne LED die den Link-Status bzw.
Data-Transport-Satus auf dem USB-Bus anzeigt.
Ich möchte für meine USB-Kontroller-Karte Typ FTDI 245BM ein 
Status-LED-Interface
noch dazu anbauen und modifizieren , wobei eine LED anzeigt ob
die Datenkopplung aktiv ist. Mit einem Atmega will ich die
Busskopplung mittels einer IRQ_Kanal-Trigger Software visualisieren.

Für später habe ich mir noch einen USB-Watchdog überlegt.

Der USB-Buss-Controller soll damit einen Reset verpasst bekommen.
Hntergrund ist dazu: Ich habe das FTDI 245BM
an einem Dell-Inspirion Laptop auf Win-Vista am laufen.
Gelegentlich kommt aber beim Hochfahren des Systems die Kopplung nicht 
zustande.
Besonders bei ca. 3m Kupplungskabelverlängerung.
Ich habe am D+,D- Kanal keine ganz sauberen Nadel-Impulse mehr.
Bei anderen PC's mit alten USB-Host-Chips ist das alles kein
Problem u kein Thema.
FTDI schreibt selbt in der App.Note das moderne 
USB-Typ-"2"-Host-Kontroller
sehr empfindlich sind ( Spikes ect. ), und mit ca. 47pF gegen GND u. 
Data-Kanal,
halt son  27 Ohm RC Tiefpass besser zusätzlich zu beschalten sind.
Ich habe die dan auch eingebaut, und es hat sich erheblich gebessert.
Hatte leider nur nur 100pF da.
In diesem  Thread von Stefan Salevki steht noch mehr dazu,
was auch die Kabellängen betrift,
und die Problematik mit den jeweiligen Host-Chips
mit der Host-Bussterminierung darstellt.

Zweck der Übung ist es, das ich nicht immer das Skope am Bus haben muss,
und den Link-Status wie bei Ethernetzwerkkarten sofort visualisieren 
kan.

Weiterhin habe ich festgestellt das das USB-Viev Tool noch kein Beweis
darüber erbringt das die Kopplung im Transfere-Mode auf der C++ 
API,USB-Lib
von FTDI geht. Der FTDI_Open ist ok,
aber der Data-Transfere muss noch duch eine andere Layer-Schicht gehen.

Unter dem Treiber FTDI-245BM für Win-Vista kommt sogar nach dem Booten
ein Data-Burst raus.

(Den kan man auch noch geschickt nutzen, zur Ersterfassung ).

Weiterhin habe ich duch Einschalten mittels einer simplen 
Halogen-Trafo-Lampe
das Busprotokoll abewürgt, dieses ist aber duch einen einfachen Reset
sofort wieder Betreibsbereit.

Und so ein USB-Watchdog könnte da doch ganz nützlich sein, und vom Preis
ist das ja kein Thema.
Ich will das USB-245BM als AT-MEGA HV-Progger,JTAG,u. Gal-Progger ect. 
verwenden.
Dabei will ich aber sofort sehen ob das Teil an unterschiedlichen PC-s
zuverlässig geht.
Holger Klabunde hat den 245BM wie ich meine nur im
langsamen Bit-Bang Mode zum Proggen genutzt.
Aber mit dem 64 bzw ca 300 Byte internen Fifo-Buffer-Mode ist da
noch viel mehr rauszuholen ???.

Über Erfahrungsaustausch würde ich mich freuen.

Viel Spass beim basteln.

Gruss Holger.

von Alexander L. (lippi2000)


Lesenswert?

Also ein Hardware-Protokollanalyser ware absolut genial....

Wichtig ist, das die Kabellängen nicht überschritten werden und eine 
ordentlich Leitungsanpassung vorgenommen ist (wird schwierig, da immer 
nur 1 Gerät die Leitung terminieren kann. Des weiteren nützt alles ohne 
Phasenanpassung nichts.

Nun ja, ich stell mir das wie folgt vor:

Differenzverstärker nahe am Endgerät mit entsprechender Anpassung. Somit 
können schon mal die Differenziellen Signale, ohne den Bus selbst zu 
beeinflussen, gemessen werden. Da aber alle Signale Kanalkodiert sind, 
nützt einem ein Bild auf dem Oszi recht wenig. Von Hand dekodieren geht 
zwar, ist allerding sehr umständlich, vorallem bei mehreren Frames 
hintereinander. Ich würde anschließend einen PLL oder gut abgestimmten 
Schwingkreis einsetzen für die Taktrückgewinnung. Mit der 
Taktrückgewinnung könnt man nen AVR - Int. ansteuern um den aktuellen 
Wert vom Differenzverstärker zu lesen. Gleichzeitig muss dieser dann mit 
durch software mit nem "Destuffer" (NRZI dekodieren) versehen werden. 
Anschließend gleich alles außer dem SYNC-Signal (0x80) in Speicher 
legen. Dieser wird dann irgendwann an den PC übertragen oder noch viel 
besser an ein LCD-Display (reichen ja 2x16 charakter und man mit nem 
Taster den Mitschnitt scrollen kann). An der Stelle kann man dann 
genügend Programmieraufwand betreiben um die Protokolle zu verarbeiten.

So etwas wäre doch sehr praktisch. Warum hat man immer nur so wenig Zeit 
übrig :-)

von Klaus (Gast)


Lesenswert?

>Hatte leider nur nur 100pF da.

Du kannst (je) 3 von denen in Reihe zusammen ranhängen... (fast) 
perfekt.

von Holger (Gast)


Lesenswert?

Super Gute Tips. Danke !!!
LCD-Display u. dynamische Analoge-Anpassung
das ist schon eine feine Idee.
Bei meinem neuen Dell-Inspirion ist die Idle-Freuenz
mit ca. 1 KHz  nicht constant u. stabil wie bei den anderen 
PC-Derivaten.
Die scrollt so mystisch durch,was bei dem alten PC auf
ca 1,5 KHz stocke steif stehen bleibt.

Bei dem uralt-PC habe jetzt ganz steile Nadel-Pulse.

Im Idle-Mode. ( bei ca. 1KHz) und
absichtlich ca. 4 Meter gekuppeltes Kabel.
( Da ist auf der Hilfs-Platine die danach zum
Mother-Board verbindet auch noch mit Fe-Filter + R-C Kombi.
Beschaltung verbaut.
Ich vermute das macht so mancher Hersteller qualitativ
und retundant was er so meint.

Zusätzlich habe ich ein Treiber mit LED an
den EEPROM-SCK Ausgang des FTDI 245BM gemacht.
Beim Power-Up greift nach der Enumeration der USB-Treiber erstmals 
darauf zu,
und die Kopplung ist damit wie ich meine akzeptiert.

Ich habe da noch einiges in Planung.
Was man da noch mit dem FTDI-CHIP-Test Pin so anstellen soll ????.

Später kommt noch mehr dazu ...bis zum  EMV-Gehäuse.

Ich hoffe speziell das mir das auch bei meinem Elektor-Projekt wo der
ATMEGA den USB-BUS_LOW_SPEED emuliert noch weiterhilft.
Und ich habe da nur die Anpassung zufällig schlecht
auf dem jeweiligen PC-Chip-Set gehabt ???? und deshalb klappte
das sehr exakte Trigger-Timing schon mit der Enumeration nicht so wie 
sie sollte,
aber ich habe auch von anderen hier Forum gelesen,
das mit diesem Projekt bei einigen Schiffbruch angesagt war.
Aber dazu ist son Forum ja glücklicherweise da.

Die Asbach Canon Bubble-Jet USB-Port-Platine habe ich auch
mit der Ferrit-Doppel-Spule schon in Inspektion genommen.

Frohes Basteln.

Gruss Holger.

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.