Forum: Mikrocontroller und Digitale Elektronik Basteltip USB / Oszi


von Olaf (Gast)


Lesenswert?

Ich habe mal einen kleinen Basteltip.

Bei Reichelt gibt es derzeit eine USB-Soundkarte fuer
nur 10.95Euro. (Delock 61645)

Im Inneren befindet sich ein CM119 von Cmedia

http://www.cmedia.com.tw/usb_cm119.html

Man kann dort auch das Datenblatt eines CM109 und eines CM109A
runterladen.

Interessant ist das Teil erstmal als kleiner USB-Oszi. Der Stoepsel
wird von WinXP ohne Treiber als Soundkarte erkannt.
Ueberbrueckt man C6 und entfernt R6 auf der Platine so hat man einen
Gleichspannungseingang mit einem Offset von 2.25V.  Diese interne
Referenzspannung von 2.25V wird vom IC auch bereitgestellt.

Es sollte also relativ einfach sein mit einem OP sich einen
Massebezogenen Eingang herzustellen der auch Gleichspannungen
verarbeiten kann. Das IC arbeitet wirklich komplett
Gleichspannungsbezogen ich habe das mit einer Diode am Analogeingang
getestet. (zieht Leitung in einem SoundkartenOsziprogramm dauerhaft
1V runter)

Aber das ist noch nicht alles. Das IC hat auch acht GPIO Pins die man
in eigenen Anwendungen benutzen koennte. Zum Beispiel um Messbereiche
umzuschalten oder aehnliches.

Das beste aber, das IC besitzt auch ein I2C-Slave Interface. Man
koennte dort einen beliebigen Microcontroller anschliessen der dann
das IC programmiert. Es gibt sogar ein Register dessen Inhalt wiederum
vom CM119 an den PC ueber USB ausgegeben wird und das speziell fuer
die Kommunikation mit einem Microcontroller gedacht ist.

Und es ist auch moeglich die ganzen USB Descriptoren zu
aendern. (93C46)

Das Teil ist also wunderbar geeignet eine eigene Schaltung ohne
grossen Aufwand an USB zu bringen, und man hat noch zusaetzlich zwei
Analog-Ausgaenge und einen Analog-Eingang zur Verfuegung.

Olaf

p.s Ich poste das hier in d.s.e und microcontoller.net

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Interessanter Hinweis! Danke,

von Simon K. (simon) Benutzerseite


Lesenswert?

Ja, interessant. Hat zwar nur 48kSPS aber für den Preis. Auch die 
Analogausgänge müssten sich für was interessantes nutzen lassen. 
Arbitrary Function Generator oder sowas :D

von Ch D. (chrisu) Benutzerseite


Lesenswert?

Gibt es irgendwo ein Tutorial für Anfänger wie man so etwas bauen kann? 
also Schritt für Schritt

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Olaf schrieb:
> einen Analog-Eingang zur Verfuegung.
Schade, ich brauche drei (ggf auch nur zwei).

von Alexander S. (esko) Benutzerseite


Lesenswert?

Olaf schrieb:
> Ueberbrueckt man C6 und entfernt R6 auf der Platine so hat man einen
> Gleichspannungseingang mit einem Offset von 2.25V.
>
> Das IC arbeitet wirklich komplett Gleichspannungsbezogen ich habe das mit
> einer Diode am Analogeingang getestet. (zieht Leitung in einem
> SoundkartenOsziprogramm dauerhaft 1V runter)

Wow das wäre echt genial, weil man so eine moderne billige Schnittstelle 
zum PC hätte. Mit etwas Glück kann man die 4 Taster und 2 Leds auch vom 
PC steuern, falls du das nicht schon mit GPIO gemeint hast.
Die Funktionalität als (Software)Oszi macht die Sache natürlich 
besonders interessant.
Könntest du mal einen Screenshot von einem gleichspannungsbehafteten 
Signal machen.

von Sebastian R. (sebr)


Lesenswert?

Solch ein  billig-Oszi gibts auch hier...sogar noch billiger:
http://yveslebrac.blogspot.com/2008/10/cheapest-dual-trace-scope-in-galaxy.html

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Damit könnte ich leben ;-)
...und das Teil auf 3 Kanäle aufbohren.

von Pascal Ziegler (Gast)


Lesenswert?

Hi ich will mir in nächster zeit so ein Oszi zulegen, ich weis die sind 
nicht gerade supper aber ich denke für einfache dinge ganz ausreichend, 
nun meine frage welches von den beiden ist den besser ^^ abgesehen vom 
preis (sind ja beide billig),
tendiere eher zur soundkarte da dort könnte ich mit ner zusatzschaltung 
zwischen Wechsel und Gleichspannung schalten.

von Olaf (Gast)


Lesenswert?

Soooo...Leuts,

Ich habe gerade ein bisschen mit dem USB-Stoepsel rumgespielt.
Hier mal ein paar Ergebnisse:

Schaltplan von der Soundkarte im Originalzustand:

http://www.criseis.ruhr.de/usbsound/sound.gif

Da ist C6 zu entfernen und dann folgendes einzubauen:

http://www.criseis.ruhr.de/usbsound/ampli.gif

Die Widerstaende sind alle 1%. Der OP muss kein TS951 sein, aber er
muss Rail2Rail sein. Also KEIN 741!

Wenn man es klein bauen will damit es noch ins
Gehaeuse passt dann kann das so aussehen:

http://www.criseis.ruhr.de/usbsound/board.jpg

Verdrahtung natuerlich auf der Unterseite.


Und jetzt noch ein paar Messungen:

http://www.criseis.ruhr.de/usbsound/0_5Hz.gif

Man beachte ich habe die Spannung am Sinusgenerator verschoben und
nicht am Rechner! Und es sind nur 0.5Herz. Man kann also wirklich
Gleichspannungen messen.

Hier mal die Grenzen. :-)

http://www.criseis.ruhr.de/usbsound/17kHz.gif


Saegezahn nach unten verschoben. Es ist durchaus moeglich negative
Spannungen zu messen!

criseis.ruhr.de/usbsound/saege.gif

Ein Peak mit 1us:

criseis.ruhr.de/usbsound/peak1us.gif

Auch hier sieht man das der Gleichspannungsanteil erhalten bleibt.

Ein Sweep von meinem Sinusgenerator:

criseis.ruhr.de/usbsound/sweep7-20khz.gif

Von Hand mit Peakhold durchgekurbelt um den Frequenzbereich
komplett durchzubekommen:

criseis.ruhr.de/usbsound/sweep0-20kHz.gif

Erfreulicherweise kein Abfall durch interne Filter zu sehen.


Olaf

von Alexander S. (esko) Benutzerseite


Lesenswert?

Olaf schrieb:
> http://www.criseis.ruhr.de/usbsound/ampli.gif
> Der OP muss kein TS951 sein, aber er muss Rail2Rail sein.

Was hat es mit dem LOBS Kontakt auf sich der am R3 hängt?
Ohne diesen könnte man ja auch R4, R5 & R6 weglassen.

Man sollte noch eine Eingangsschutzbeschaltung in Form einer Z-Diode an 
den Eingangsspannungsteiler hängen.


> Und jetzt noch ein paar Messungen:
> http://www.criseis.ruhr.de/usbsound/0_5Hz.gif

Sieht ja echt ganz ordentlich aus!


> Saegezahn nach unten verschoben. Es ist durchaus moeglich negative
> Spannungen zu messen!

Das ist mir nicht ganz klar, wie man mit der Schaltung von oben negative 
Spannungen messen kann.

von Olaf (Gast)


Lesenswert?

> Was hat es mit dem LOBS Kontakt auf sich der am R3 hängt?

Wie man dem Datenblatt entehmen kann (huestel), kommt da die
Referenzspannung des AD/DA Wandlers raus. Sogar netterweise
bereits ueber einen OP gepuffert. (2.255V)

> Das ist mir nicht ganz klar, wie man mit der Schaltung von oben
> negative Spannungen messen kann.

Ganz einfach, die Nullposition des AD-Wandlers liegt in der
Mitte seines Messbereichs bei 2.255V. Deshalb braucht man ja
den Addierer. Das fuehrst nun dazu das am Eingang des OPs
immer 2.255V anliegen. Davon kann man ja erstmal mit einer
negativen Spannung substrahieren bis man auf 0V kommt.

Man koennte vielleicht dort auch ein Poti anschliessen. (+5V, Masse) So 
muesste man sich die Basislinie des Oszis verschieben koennen. Die 
Widerstaende dort muessen aber bleiben!

Der Eigangswiderstand des Addierers ist im uebrigen 100k, und
ich habe den Vorteiler eigentlich so ausgelegt das man +/- 20V
messen kann. Allerdings waren es in bei meinem Tests weniger.
Ich glaube das ging bis +/-7V. Ich muss nochmal schauen ob ich
mich da irgendwo verrechnet habe oder vielleicht einen Fehler
beim loeten habe.
Hm..mir faellt geraede ein, vielleicht war noch der Microfon-
vorverstaerker im CM119 aktiviert.

Die grosse Anzahl an Widerstaenden ist notwendig weil diese
Schaltung sensibel auf falsche Werte reagiert und man wirklich
sehr krumme Werte braucht.

Eine Z-Diode koennte man vielleicht noch reinmachen, aber
ich weiss nicht ob die Idee so gut ist. Legt man sie zu klein aus
so wird ihre Kennlinie bereits im Grenzbereich die Messung beeinflussen.
Legt man sie groesser aus so koennte es sein das sich der OP
selber schuetzt. Ich vermute mal der hat auch Dioden gegen Masse
und VCC am Eingang. Bin mir aber nicht sicher.

Aber ich meine niemand wird hoffentlich daran denken so eine Schaltung
an 230V oder aehnlichem zu stoepseln. Das ist eher eine kleine
Spielerei auf dem Labortisch. Deshalb hat mir auch ein einziger 
Messbereich bis 20V ausgereicht.

Olaf

von Michael X. (Firma: vyuxc) (der-michl)


Lesenswert?

Olaf schrieb:
> Deshalb hat mir auch ein einziger
> Messbereich bis 20V ausgereicht.

Nett. Kannst du die GPIOs toggeln? Dann wäre eine Meßbereichsumschaltung 
drin. So als Billich-Datenlogger eigentlich ganz gut.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Olaf schrieb:
>> Was hat es mit dem LOBS Kontakt auf sich der am R3 hängt?
> Wie man dem Datenblatt entehmen kann (huestel),
Wie ich ehrlich zugebe, habe ich das nicht gemacht.

Der Rest der OPV Schaltung ist dann auch klar.
R3 ist dann 100k.


> Man koennte vielleicht dort auch ein Poti anschliessen. (+5V, Masse) So
> muesste man sich die Basislinie des Oszis verschieben koennen. Die
> Widerstaende dort muessen aber bleiben!

Ändert sich damit nicht auch die Verstärkung?


> Eine Z-Diode koennte man vielleicht noch reinmachen, aber
> ich weiss nicht ob die Idee so gut ist. Legt man sie zu klein aus
> so wird ihre Kennlinie bereits im Grenzbereich die Messung beeinflussen.

Habe mir gerade mal die Zener von 5,1-8,2V angeschaut und du hast Recht. 
Ab etwa 7V wird der Strom klein genug, aber das dürfte schon zu spät 
sein.


>  Ich vermute mal der hat auch Dioden gegen Masse und VCC am Eingang.

Man kann ja vorsichtshalber zwei einbauen. Der Strom bleibt durch die 
hohen Widerstände auch recht gering.

von Olaf (Gast)


Lesenswert?

> Nett. Kannst du die GPIOs toggeln? Dann wäre eine Meßbereichsumschaltung
> drin. So als Billich-Datenlogger eigentlich ganz gut.

Ja kann ich. Hab ich das nicht schon erwaehnt? Hm...war vielleicht nur 
in d.s.e.

http://www.criseis.ruhr.de/usbsound/cm119.tgz

Und noch eine Anmerkung. In dem Teil ist ein CM119 drin und kein CM119A 
oder CM109. Der Unterschied besteht darin das der CM119 zwar PID und VID 
und auch eine Seriennummer in seinem EEPROM speichern kann, aber keine 
HerstellerID.
Ausserdem habe ich den Verdacht das er eine Macke beim beschreiben des 
EEPROMs hat. Ich kann das problemlos auslesen, wenn ich aber eine 
bestimmte Adresse im EEPROM mit einem Wert beschreiben will so legt er 
dort immer nur Null ab. Wer also damit experementiert, nicht gleich 
probieren die VID zu beschreiben sonst ist loeten angesagt. :-)

> Ändert sich damit nicht auch die Verstärkung?

Nein, das ist doch nur ein Addierer. Allerdings wird man schnell an die 
Grenzen der Betriebsspannung kommen. Ich hab jetzt meine Schaltung in 
das Gehaeuse eingebaut und an den Klinkenstecker einen Tastkopf 
angesteckt. Der ist umschaltbar 1:1 1:10. Ich hab noch nicht genau 
geschaut was man damit fuer Spannungen messen kann. Aber auf jedenfall 
eine ganze Menge weil der Tastkkopf wohl eher 1:100 arbeitet. Das ist 
aber kein Problem. So eine Soundkarte ist zwar in ihrer Bandbreite stark 
beschraenkt, aber die Aufloesung schlaegt jeden echten Oszi um laengen.

Es waere vielleicht klug den Eingangsteiler nochmal neu zu berechnen 
damit da ein Wert rauskommt der sich mit der Anzeige eines Osziprogramms 
deckt.

Olaf

von Herbert (Gast)


Lesenswert?

Ich werfe mal folgenden Chip in die Runde:
http://www.iamnota.net/hw:tp6911

Gibts bei ebay in 3,50-Usb-Soundkarten (steht "econdo.de" drauf) und 
sieht sehr interessant aus:
    *
      Compliance with the Universal Serial Bus specification V2.0 
Full-Speed
    *
      Built-in USB Transceiver and 3.3V regulator
    *
      Isochronous transfer with adaptive synchronization
    *
      High performance 48KHz sampling rate for audio playback
    *
      24KHz sampling rate for voice recording
    *
      Two channel audio Class-D Amplify for speaker driving
    *
      64-level volume control , VR adjustment available
    *
      Embedded 10 bits ADC input
    *
      USB Keyboard interface
    *
      Support USB Suspend function
    *
      12 MHz crystal oscillation
    *
      28 / 48 pin package

von Christian U. (z0m3ie)


Lesenswert?


von Olaf (Gast)


Lesenswert?

> http://www.iamnota.net/hw:tp6911

Das ist doch ein Witz. Der hat nur 10Bit AD-Wandler, der von
C-Media offiziell 16Bit, wovon aber 14-15Bit nutzbar sind.

Und noch schlimmer, er tastet das Eingangssignal nur mit 24kHz ab.
Man kann ihn also bestenfalls so bis 10khz nutzen.

Die einzige Verbessung waere der bereits integrierte Class-D
Verstaerker fuer Kopfhoerer und den braucht man fuer Messtechnische
Anwendungen nicht.

> Das kann man auch einfacher mit 200kSps haben:
> http://www.ullihome.de/index.php/USBAVR-ISP/de#USB...

Grundsaetzlich natuerlich auch ein interessanter Loesungsansatz!
Aber du brauchst dann doch immer einen eigenen Treiber und ob
dieses Software-USB wirklich immer so 100% mit jedem Rechner
kompatibel ist?


Olaf

von Christian U. (z0m3ie)


Lesenswert?

Ja klar braucht man nen Treiber wie für jedes USB Gerät ;)
Auch die USB Soundkarte braucht nen Treiber.
Dazu wird der libusb Treiber verwendet, und der funktioniert eigentlich 
ziemlich gut.

von Luigi. (Gast)


Lesenswert?

Ich find das Super was hier fabriziert wurde.

Da könntest du gleich mal ein  sauberes Tutorial zusammenstellen. Für 
alle die, die auch gern ein günstiges OSZI bauen wollen, denen 
tiefgründigeres Wissen fehlt.

Du steckst da schon richtig gut in der Materie. :)

Was auch noch gut wäre, wenn man gleich die richtigen Widerstandswerte 
für die unterschiedliche Tastköpfe oder Drehschalter mit den passenden 
Widerständen  für sagen wir mal 300V Wechselspannung und 400V 
Gleichspannungen hat.

Schade das es nur einen MIC Eingang gibt, es wäre schon genial wenn man 
2 Tastköpfe nutzen könnten. Ich weiß gar nicht ob man da 2 Soundkarten 
verwenden kann. Ob es überhaupt von der Soundcard OSZI SW unterstützt 
wird.

Gruss Luigi.

von Dolphi (Gast)


Lesenswert?

Hallo zusammen, hallo Olaf,

habe gerade den Thread auf der Suche nach der Thematik gefunden
und bin schwer beeindruckt.

Wollte mich auch noch mal ans Nachbauen geben, bin aber in der
Materie nicht so firm und habe daher noch ein paar Fragen:

- C6 wird also gebrückt bzw. entfernt, richtig?
- R6 wird nicht entfernt sondern darf bleiben, richtig?
- L5 kann auch bleiben, richtig?
- der LOBS-Anschluss geht auf PIN 31 des CM119, richtig?
- hat sich da noch irgendwas in Richtung Spannungsteiler und
  Messbereich getan oder bleibt's erstmal bei 20 oder 7 Volt
  (ist ja eigentlich prima und kann per Tastkopf ja noch
   erweitert werden - will das Ding nur nicht gleich abrauchen...)

Sorry wenn die Fragen den Gurus etwas dämlich vorkommen, aber
ich taste mich da erst noch an die Materie ran...

Softwaremässig hatte ich das hier gefunden:
http://www.sillanumsoft.org/
...kennt der eine oder andere bestimmt schon aber sei's drum...

Besten Dank für die Bemühungen und die Veröffentlichung noch mal -
kann besonders am Laptop unterwegs sehr hilfreich sein, wenn man
in den Parametergrenzen unterwegs ist und bleibt...

Gruß

Dolphi

von Olaf (Gast)


Lesenswert?

> - C6 wird also gebrückt bzw. entfernt, richtig?

Das ist richtig. Sonst kommt ja keine Gleichspannung durch.

> - R6 wird nicht entfernt sondern darf bleiben, richtig?

Hm..ich weiss jetzt ehrlich gesagt nicht mehr ob ich den
auch entfernt habe. Du kannst ihn aber entfernen. Er belastet
nur den Ausgang des Operationsverstaerkes. Kann also auch sein
das es egal ist.

> - L5 kann auch bleiben, richtig?

Ja. Die Spule soll wohl nur Stoerungen unterdruecken und spielt in
unserem Messbereich keine Rolle.

> der LOBS-Anschluss geht auf PIN 31 des CM119, richtig?

Weiss ich jetzt nicht auswendig. Aber das sollte ja im Datenblatt
stehen.

> - hat sich da noch irgendwas in Richtung Spannungsteiler und
>  Messbereich getan oder bleibt's erstmal bei 20 oder 7 Volt

Naja, es sollte prinzipiel eine Kleinigkeit sein sich da auch was
anderes auszurechnen. Mir allerdings reicht das so. Das Problem ist, 
sobald man auch andere Bereich hat braucht man auch einen Umschalter. 
Dann aber passt das alles nicht mehr in das Originalgehaeuse. Mit 
anderen Worten es wird dann schnell ein dickes Projekt und dann schalte 
ich doch lieber gleich meinen Tek ein.
Aber natuerlich wenn jemand Langweile hat koennte man sicher auch
den Eingangsbereich mit einem CD4053 umschalten. Man muesste bloss
die Oszisoftware selber schreiben damit sie die Bits fuer den
Eingangsteiler setzt. Der cm119 hat naemlich auch Portausgaenge:

/********************************************************************/
/* Uebergebenen Buffer von genau 4Byte Laenge an den CM119 schicken */
/********************************************************************/
int Schreibe_OR(usb_dev_handle *devh, CM119Type data)
{
  int ret;


  ret = usb_control_msg( devh,                 /* Device Handle */
                         USB_ENDPOINT_OUT + USB_TYPE_CLASS +
                         USB_RECIP_INTERFACE,
                         HID_REPORT_SET,   /* Wir schreiben auf Device 
*/
                         (HID_RT_OUTPUT << 8), /* Welche Daten senden? 
*/
                         INTERFACE_NUMBER,     /* Interface im 
USB-Device*/
                         data,                 /* Unsere Sendedaten*/
                         4,                    /* Genau 4Bytes */
                         100);                 /* maximal 100ms */

  return ret;
}
/*********************************************************************/
/* Leuchtdiode an GPIO8 Pin22 blinken lassen                         */
/*********************************************************************/
void blinki(usb_dev_handle *devh)
{ int i;

 CM119Type cm119buf;

 cm119buf[0] = 0x00;
 cm119buf[1] = 0x80;  /* GPIO8 auf High setzen */
 cm119buf[2] = 0x80;  /* GPIO8 als Ausgang verwenden */
 cm119buf[3] = 0x00;

 for(i=0;i<10;i++)
 {

   cm119buf[1] = 0x80;  /* GPIO8 auf High setzen */
   if ( Schreibe_OR(devh,cm119buf) <0) printf("Fehler Output \n");
   usleep(200000);

   cm119buf[1] = 0x00;  /* GPIO8 auf Low setzen */
   if ( Schreibe_OR(devh,cm119buf) <0) printf("Fehler Output \n");
   usleep(200000);
 }

}





Olaf

von Dolphi (Gast)


Lesenswert?

...prima, besten Dank für die schnelle Antwort!

Werd' mich dann auch mal rangeben und mich spätestens wieder melden,
sobald mir noch was Schlaues einfällt.
Ich guck' mal, wie ich mit den SMDs klarkomme - ggf kommt sowieso
ein größeres Gehäuse zum Einsatz und dann können da vielleicht auch ein
paar DIPs mittun. Zum C proggen ist's bei mir nämlich auch noch etwas 
hin...
Ich bin denn mal los zum großen R...

Gruß

Dolphi

von andreas (Gast)


Lesenswert?

Hallo,

ich wollte mich erkundigen, ob aus dem Basteltipp ein konkretes
Projekt geworden ist, idealerweise dokumentiert, und für
Nachahmer zugreifbar??

Unter http://www.criseis.ruhr.de/usbsound/...
lässt sich leider nichts mehr ausmachen.

Merci, andreas

von Klaus (Gast)


Lesenswert?

Hi,

das würde mich auch interessieren.
Leider lässt sich auch über das Web Archiv nicht mehr wirklich etwas von 
den hier geposteten Bildern rekonstruieren.


Grüße,
Klaus

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.