Delphi-Loesung fuer CP210x USB-UART-Bridge?

S

Stefan Raeder

Guest
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
 
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!!
 
Stefan Raeder wrote:
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
Hallo,

Du kannst auch auf
http://sourceforge.net/projects/comport/

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
 
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
http://sourceforge.net/projects/tpapro/)

...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.
 
"Stefan "Hänky" schrieb ...
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
http://sourceforge.net/projects/tpapro/)

..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?

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
 
"Rudolf Wiesendanger" schrieb ...> Stefan Raeder wrote:
Hallo,

Du kannst auch auf
http://sourceforge.net/projects/comport/

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
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
 
"Stefan Raeder" <StefanRaeder@gmx.de> wrote in news:dnh0nj$9dn$1
@online.de:

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
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.
www.ararat.cz/synapse/docs/help/synaser.html
http://www.ararat.cz/synapse/files/synaser.zip
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.
 
"Matthias Weingart" schrieb ...
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.
www.ararat.cz/synapse/docs/help/synaser.html
http://www.ararat.cz/synapse/files/synaser.zip
Das ist keine Komponente, sondern ganz einfach nur ein Objekt und es
macht "blocking transfers" - damit programmiert es sich viel
übersichtlicher als mit Events.
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
 
Hallo zusammen,

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

www.ararat.cz/synapse/docs/help/synaser.html
http://www.ararat.cz/synapse/files/synaser.zip

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
 

Welcome to EDABoard.com

Sponsor

Back
Top