USB/Seriell Konverter ohne FTDI Chip [geschlossen]

Zunächst möchte ich erwähnen, dass diese Frage mit meiner letzten Frage zur USB-Verbindung zusammenhängt. (Bitte beachten Sie, dass es bei dieser Frage um ein bestimmtes Thema geht, das meine letzte Frage nicht betrifft, aber dazu gehört.)

Ich suche nach einer Möglichkeit, eine USB / Seriell-Konvertierung ohne einen FTDI-Chip oder so durchzuführen.

Ist es also möglich, eine einfache Schaltung zu bauen, die das tut, was der FTDI tut? Und wenn ja, wie kann ich es machen und zahlt es sich für die Arbeit aus? Und zu guter Letzt, was genau macht der FTDI-Chip?

Wie konvertiert es das Signal von seriell zu USB und was sind die Unterschiede zwischen diesen?

(Weitere Informationen zu dem Projekt, das diesen "selbstgemachten" USB / Serial Converter verwenden wird , finden Sie in meiner oben verlinkten Frage.)

Danke für all eure Antworten.

Warum nicht einfach einen AVR mit U(S)ART verwenden?
Es ist möglich, ein Board zu bauen, das das tut, was der FTDI tut, aber nicht billiger, es sei denn, Sie sind bereit, auf Geschwindigkeit zu verzichten.
@IgnacioVazquez-Abrams für dieses Projekt muss ich einen ATtiny45 verwenden. Es hat keinen eingebauten USB (Hardware).
Müssen Sie es auch für den Konverter verwenden?
@GustavoLitovsky was genau macht der FTDI? Wie ist das serielle Signal und wie wird es in ein USB-Signal umgewandelt? und warum kann ich die Konvertierung nicht einfach mit zB dem Arduino-Code mit Arduino-Software emulieren (Arduino als ISP ... bitte überprüfen Sie die verknüpfte Frage)
@IgnacioVazquez-Abrams Nein nein.. hast du das Bild auf dem verlinkten Beitrag gesehen? Zuerst suchte ich nach einer Software-basierten Lösung für das Problem (erwähnt im anderen Beitrag), aber jetzt suche ich nach einer Hardware-Lösung, die es mir ermöglicht, alle Komponenten, die ich brauche, auf ein einziges Prefboard (4 x 20) zu setzen, das hat ein USB-A-Header darauf und ein 8-Pin-Header für den Tiny (wie im Bild gezeigt). Auf diese Weise kann ich das Projekt auf USB-Stick-Größe verkleinern
Sie können einen USB-Seriell-Konverter ohne FTDI-Chip herstellen: Verwenden Sie stattdessen einen PL2303-Chip der taiwanesischen Firma Prolific.

Antworten (2)

Ja, Sie können ein natives USB-Gerät ohne den FTDI-IC erstellen.

Einige ICs von Atmel ( ATtiny2313 ) und Microchip ( PIC18F2550 ) haben die USB-Anschlüsse nativ. Es ist also nur Plug and Play.

Diese Seite hat einige gute Beispiele für die Verwendung von ATtiny, und diese mit PICs.

Alle verwenden den V USB, um mit dem Computer zu kommunizieren, indem sie einen seriellen Anschluss emulieren.

danke für diese antwort. Hast du dir meine Frage angesehen, die ich verlinkt habe? Ich verwende attiny45 mit VUSB, bin mir aber nicht sicher, wie ich es verkabeln soll. Wenn Sie können, könnten Sie meine letzte Frage beantworten?
Plug and Play würde ich es nicht nennen. Wenn Sie nicht genau mit den Beispieldeskriptoren zufrieden sind, schreiben Sie Deskriptoren und definieren Endpunkte. Es ist nicht besonders schwierig, aber das Debuggen dieser Dinge, insbesondere ohne Profi-Tools, kann ausgesprochen mühsam werden.
@ScottSeidman: Kennen Sie Open-Source- oder kostengünstige vorgefertigte Lösungen zum Anschließen eines beliebigen seriellen Geräts mit HID anstelle der Kommunikationsklasse (vorausgesetzt, es handelt sich um speziell geschriebene Software auf der PC-Seite)? HID kann Geschwindigkeiten nicht ganz so gut verwalten wie die Kommunikationsklasse, aber seine Treiber werden automatisch mit jeder Windows-Version installiert und sind weniger lästig als alle Treiber der Kommunikationsklasse, die ich je verwendet habe.
Die alten USB-Seriell-Dongles USA-19HS von Keyspan verfolgen diesen Ansatz: Sie sind um einen Mikrocontroller der Variante 8081 statt um einen dedizierten USB-Seriell-Chip herum aufgebaut. (Sie sind auch nervig und erfordern Betriebssystemtreiber, die proprietäre Firmware hochladen).
@supercat, nicht für generische Serien, aber viele kleine Doohickeys können es fast tun. u-hid.com/home/uhid_nano.php zum Beispiel
@Ace Sehen Sie sich Ihre erste Frage noch einmal an und sehen Sie, ob ich helfen kann.

Ist es also möglich, eine einfache Schaltung zu bauen, die das tut, was der FTDI tut?

Kurz gesagt: Es ist nicht möglich , dafür eine einfache Schaltung zu bauen .

Sie könnten eine nicht so einfache Schaltung bauen, die entweder eine anwendungsspezifische integrierte Schaltung wie den FT232 oder seine Cousins ​​​​(MCP2200, PL2303, CH341 usw.) oder einen Mikrocontroller mit integrierter Hardware-USB-Schnittstelle beinhalten würde. Diese beiden sind ziemlich gleich, in einem FT232 finden Sie höchstwahrscheinlich einen Mikrocontroller mit einer Hardware-USB-Schnittstelle. Durch die Verwendung eines anwendungsspezifischen ICs gewinnen Sie, dass Sie die Firmware für das IC nicht selbst schreiben müssen. Was Sie durch die Verwendung eines Mikrocontrollers gewinnen, ist, dass Sie viel mehr Freiheit haben, da Sie nicht an die Einschränkungen der fest codierten Firmware gebunden sind. Angesichts des großen Angebots an Mikrocontrollern auf dem Markt finden Sie wahrscheinlich auch eine Lösung mit einem Mikrocontroller mit einem niedrigeren Preisschild.

In den meisten Fällen gibt es jedoch normalerweise keinen vernünftigen Grund, einen dummen Mikrocontroller für Ihre Computeranforderungen zu verwenden (z. B. einen Attiny45) und einen anderen (besser ausgestatteten) Mikrocontroller vor den anderen zu stellen, um die USB-Schnittstelle bereitzustellen. Sie könnten die beiden zusammenführen und eine Art Mikrocontroller für Ihre Bedürfnisse auswählen, der auch die USB-Schnittstelle beherrscht, es gibt viele solcher Mikrocontroller.

Natürlich gibt es manchmal berechtigte Gründe, die beiden Funktionen zu trennen. Normalerweise ist ein legitimer Grund die galvanische Trennung: Ein Paar Optokoppler anzubringen ist einfach, wenn Sie ein Paar serieller Leitungen haben, und viel schwieriger, wenn Sie eine USB-Leitung haben.

Im Fall des MCP2200 ist es genau das gleiche. Es ist buchstäblich nur ein umbenannter PIC18F14K50.
Exakt. Und der Preis ist auch ungefähr gleich.
Tatsächlich gibt es noch einen weiteren sehr guten Grund für die Verwendung von zwei Chips: die Isolierung der Softwareaufgaben. Wenn die USB-Schnittstelle mit dem Anwendungscode zeitgeteilt werden muss, kann jeder Fehler im Anwendungscode – oder die Verwendung eines Debuggers – die USB-Sitzung unterbrechen. Man lernt schnell, dass jedes integrierte USB-Projekt auch Testpunkte oder Header für einen seriellen Kanal haben sollte, der in anfänglichen oder schwierigen Phasen der Entwicklung mit einem externen Konverter verwendet werden kann.