Delphi-Loesung fuer CP210x USB-UART-Bridge?

Hallo zusammen,

hat von euch schon einmal jemand für die USB-UART-Bridge-Familie CP210x von Silicon Laboratories eine Anwendung in Delphi Pascal programmiert? Für ANSI C/C++ gibt es ja auf der Seite des Herstellers Beispiele, leider aber nicht für Delphi. Ich bin daran, die C Programme auf Delphi7 umzuschreiben, habe aber bei einigen Teilen noch Schwierigkeiten. Vielleicht kennt ja auch jemand links, welche mir weiterhelfen könnten.

Gruss Stefan

Reply to
Stefan Raeder
Loading thread data ...

hi,

würde ich auch gerne wissen wollen!!!

Es stellt sich die Frage in wie weit du mit der Brigde arbeiten willst. Willst du nur Daten über die Bridge schicken oder willst du einzelne Bits in dieser verändern? Sprich die IDStrings oder verändern?

Wenn nur Daten rüber sollen, nimm doch einfach den dazu gehörigen Comport (Treiber installiert!) Diese verhält sich zumindest wie eine "normale" Com Schnittstelle. Als Delphi Komponente könnstest du die "Apro" Pakete nehmen (gpl-"frei" verfügbar, oder so).

-> z.B: TApdComPort1.open.... siehe Beispiele von Apro.

vieleicht solltest du auch in "de.comp.lang.delphi.misc" mal nachfragen.

bis denn.

Sag mir bitte wie es ausgeht!! Und ob du damit Erfolg hast!!

Reply to
Stefan "Hänky"

Hallo,

Du kannst auch auf

formatting link

die Komponente TComport runterladen. Hat Beispielprogramme dabei.

Weiterhin kanst Du natürlich bei den folgenen Seiten vorbeigehen und schauen ob Du Komponenten für die Serielle Kommunikation oder Beispielprogramme findest:

-Torry.net

-Delphi Super Page

-Swiss Delphi Center

Hoffe konnte Dir helfen Ruedi

Reply to
Rudolf Wiesendanger

Hi,

ich habe heute mal "meinen" Vorschlag in D7e ausprobiert.

Habe dabei eine ApdComPort und ein AdTerminal von der AsyncPro 4 - Komponente von TurboPower benutzt. (steht unter Mozilla Public License 1.1

formatting link

..hab gerade gesehen, die gibt es jetzt auch für D2005/6, Krass!!!

Meine Testdaten über den CP2102 kamen wunderbar auf den virtuellen COM3 an.

Das versenden über...

procedure TForm1.OK1Click(Sender: TObject); begin ApdComport1.Output := edit1.Text; end;

...hat auch wunderbar funktioniert.

(Das ganze zu erstellen hat nicht mal 5min gedauert)

Also! Wie sieht es beim OP (Operator! oder OberPoster!) aus?

MfG Stefan.

Reply to
Stefan "Hänky"

"Stefan "Hänky" schrieb ...

Hi Stefan,

ich hatte bis jetzt noch keine richtige Zeit mich damit auseinanderzusetzen, das werde ich dann morgen machen.

Ich nutze auch den CP2102 und wollte den nicht über den virtuellen COM-Port, sondern über die USBXPress DLL direkt ansteuern. Es hat bis jetzt auch alles soweit funktioniert, ich hatte aber, nachdem ich eine neue .dll mit neuer Version verwendet habe, ein exception beim CloseUSB, warum, weiss ich noch nicht.

Hmmm, vielleicht sollte ich das doch lieber über COM machen. Ich hatte immer die TSerial (4.11) Komponente von der Fachzeitschrift Toolbox genutzt, um auf die serielle Schnittstelle zugreifen zu können (bekommt man mit Zeitschrift, glaube die hatte so um die 10Euro gekostet).

Ich werde mir aber auch mal die AsyncPro4-Komponente ansehen, vielleicht geht es damit noch etwas einfacher.

Das einzigste, was ich im CP2102-EEPROM ändern möchte ist entweder die Seriennummer (oder den ProductDescriptionString), die soll dann bei allen CP2102 immer die selbe sein, ich nutze die also für eindeutige Kennzeichnung meines Gerätes, aber nicht für Unterscheidung mehrerer Geräte. Das kann ich dann eigentlich auch mit dem verfügbaren CP210xSetID.exe machen. USB-Schnittstelle will ich nutzen für Firmwareupdate und Test bei Produktion und Service.

Vielleicht sehe ich mir die AsyncPro4-Komponente heute noch an, wenn mich mein Kleiner nicht so in Beschlag nimmt ;-)

Gruss Stefan

Reply to
Stefan Raeder

Hallo Rudolf,

danke für Deinen Tipp, ich wollte eigentlich den CP2102 direkt über USBXpress ansteuern, da es aber hier keine Delphi- Unterstützung gibt, mache ich das nun doch lieber über den virtuellen COM-Port.

Gruss Stefan

Reply to
Stefan Raeder

"Stefan Raeder" wrote in news:dnh0nj$9dn$1 @online.de:

Gleiche Seriennummern zu vergeben, ist keine gute Idee! Wenn da mal versehentlich 2 Geräte an einen PC angesteckt werden - verhedert sich Windows. Dafür ist eigentlich die Produkt-ID da. Ne Idee wäre der ProductDescriptionString. Stellt sich nur die Frage, wie du den rauskriegst, wenn sich das Teil als serielle Schnittstelle anmeldet. Ich würde die Erkennung anhand bestimmter Sequenzen machen, die du über den Comport schiebst (da musst du ja sowieso ein gewisses Mindestprotokoll fahren).

Ich kann noch synaser für Delphi empfehlen.

formatting link
formatting link
Das ist keine Komponente, sondern ganz einfach nur ein Objekt und es macht "blocking transfers" - damit programmiert es sich viel übersichtlicher als mit Events.

M.

--
Bitte auf mwnews2@pentax.boerde.de antworten.
Reply to
Matthias Weingart

"Matthias Weingart" schrieb ...

Hallo Matthias,

also wenn sich dabei Windows verhedert, das ist natürlich nicht so gut. Soweit mir bekannt ist, möchte Windows jedesmal, wenn man ein Gerät mit unterschiedlicher Seriennummer anschließt, den Treiber neu installieren. Dieses wäre bei Endkontrolle in der Produktion oder bei Test im Service nicht so schön, blöd ist auch, dass jedesmal ein neuer Eintrag in der Registry erfolgt.

Deshalb wollte ich die Seriennummer für alle Geräte nur einmal vergeben. Diese Info habe ich aus dem Herstellerforum, es kann aber sein, dass es nur den Treiber USBXpress betrifft, nicht den COMTreiber, da muss ich nochmal nachforschen.

Normalerweise ist nie mehr als ein Gerät am USB angeschlossen. Wenn das doch mal passiert, hätte ich das mit meiner Software nicht zugelassen, das heisst, einen Hinweis ausgegeben, dass nur ein Gerät angeschlossen werden darf. Das funktioniert natürlich nicht, wenn sich Windows zuvor schon verhedert.

Ich werde mir synaser für Delphi auch einmal ansehen, danke für den Tipp!

Gruss Stefan

Reply to
Stefan Raeder

Hallo zusammen,

ich kommuniziere jetzt mit dem CP2102 über den virtuellen COM-Port und nutze für die Ansteuerung der seriellen Schnittstelle synaser ...

formatting link
formatting link

Es läßt sich gut und übersichtlich programmieren. In meinem Fall schicke ich 256Byte Datenblöcke mit 250kBaud zwischen PC und Mikrocontrollersystem hin und her.

Danke nochmal für die Tipps von euch !

Gruss Stefan

Reply to
Stefan Raeder

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.