Seite 1 von 1

USB D/A Wandler

Verfasst: Mi 13 Feb, 2008 5:33 pm
von hubert
Hi, ich hab jetzt mal nen D/A Wandler gebastelt, voers auf Lochrasterplatine.

Die Daten werden per USB als Virtueller COM Port übertragen.
Auflösung derzeit 2*12bit, ist aber erweiterbar.
Die Daten werden einfach in folgendem Format an den Virtuellen Com übertragen: Erst ein ASCII "C" dann die Kanalnummer, dann 2 Byte (8+4bit) Wert.
Ausgabe erfolgt bisher auf dem Oszilloskop im X/Y Betrieb.
Jetzt meine Frage: gibt es ein Programm mit dem ich komplexere Formen erzeugen kann, bei dem ich evtl. die Datenübergabe anpassen kann, damit es bei meinem Wandler klappt???
Alternativ wäre ein Programm das die Daten auf dem virtuellen Com Port übergibt, bei dem ich in Erfahrung bringen kann, in welchem Format die Daten übertragen werden, sodass ich die Programmierung des Controllers anpassen kann.
Für Tipps ohne doofe Sprüche wäre ich dankbar.

Verfasst: Mi 13 Feb, 2008 5:55 pm
von laserlover
Hi,

du könntest dir Popelscan runterladen (ist in Delphi) und es so umschreiben, dass es die Daten so versendet, wie du möchtest.

Laserlover

Verfasst: Mi 13 Feb, 2008 6:44 pm
von thomasf
Hi,

ich glaube die serielle schnittstelle, auch wenn sie nur virtuell ist, wird für dein vorhaben nicht ausreichen. ICh denke mal du greifst auf einen ftdi zurück, nimm doch am besten gleichen einen "richtigen" ftdi den du mit hilfe einer dll, gibt es von ftdi selbst, ansteuern kannst. Damit hast du wesentlich mehr bandbreite und kannst den usb port voll ausnutzen.

Die Serielle schnittstelle ist für diese art von aufgaben einfach zu langsam. am besten ist es ein gesamtes frame zu übertragen und mit hilfe eines µc dieses auszugeben. somit ist der ps nicht mit dem timing beschäftigt sondern der µC.

Weiterhin viel spass

Thomas

Verfasst: Do 14 Feb, 2008 8:28 am
von jan
Habe da auch Bedenken bezgl. der Geschwindigkeit. Mit welcher Baudrate läuft die virtuelle COM? Beim Format 8N1 sind das ja schon 80 bit pro (X/Y) Koordinate. Bei 115k2 ergibt das gerade mal 1,44kpps.

Verfasst: Mi 20 Feb, 2008 3:56 pm
von hubert
Hi,
ich benutze keinen FTDI. Ich benutze einen PIC18F2550 mit integrierter USB2.0 Schnittstelle.
Als DA Wandler nehme ich den MCP4822 2*12bit DA mit SPInterface
Der kann die emulierte Serielle oder auch HID(mit den DLLs von Microchip),
Da die Programmierung für die serielle einfacher ist, hab ich erstmal die benutzt. Auch wenn es eine emulierte serielle Schnittstelle ist, kein USB zu seriell Wandler, kann ich Daten mit voller USB 2.0 Geschwindigkeit (12Mbit/sek)übertragen. Mit Weiterverarbeitung und Weitergabe an die D/A Wandler komme ich auf ca. 40kByte/sek für jeden Wandler. Es wäre bestimmt mehr drin, wenn ich statt in C in assembler programmieren würde.
der Prozessor ist mit 12 MIPS auch schnell genug.
Also ist die Geschwindigkeit kein Problem.

Aber wieso 80 bit pro X/Y Koordinate???
1 * Ascii + 12bit X + 12bit Y
macht wenn die 12 bit in 2*8 bit übertragen werden 40 bit + start und stopbits sind es dann 50 bit.

Verfasst: Mi 20 Feb, 2008 5:55 pm
von laserlover
Hallo,

da sollten noch 8 Bit pro Farbe dazukommen.

Laserlover

Verfasst: Mi 20 Feb, 2008 8:27 pm
von gento
Der Chip kann zwar USB 2 ist aber selbst mit ASM bei 10 K Scannspeed am Ende.

Gento

Verfasst: Mi 20 Feb, 2008 9:04 pm
von hubert
1o k Scanspeed ist zwar nicht grad das meiste, aber für meine Basteleien sollte es erstmal reichen.
Meine Selbstbauscanner packen sowieso nicht so viel, aber ich möchte Sie jetzt mal mit was anderem als einem Funktionsgenerator testen.
Ich erhebe keinen Anspruch auf Perfektion und mache das alles nur weil es mir Spaß macht.