-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Wie wichtig ist es 2 Signale gleichzeitig zu wandeln?

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065

    Wie wichtig ist es 2 Signale gleichzeitig zu wandeln?

    Anzeige

    Moin zusammen.

    Ich möchte 2 Signale von einer positionsempfindlichen Diode (PSD) in einen Atmega bekommen. Das Signal soll dabei in der Lage sein, im Audioberech (also sagen wir bis 25kHz) zu erfassen.
    Die PSD wird mit OPs ausgestattet, die den Lichtstrom in eine Spannung umwandeln (über die Referenzspannung bin ich mir noch nicht sicher, 1,1V oder 2,5V). Laut Abtasttheorem muss ich ja nun mit 50kHz abtasten. Aber ich brauche 2 AD-Werte pro Wandlung, einmal für Diode1 und einmal für Diode2.
    Wie groß ist der Einfluss, wenn ich die Wandlungen nacheinander Anstoße, wie hoch muss dann die Abtastfrequenz sein? Zwischen Start von Wandlung1 und Start von Wandlung2 werden wohl 20 Takte mit 16MHz, also knapp 1,25µs vergehen.
    Es gibt zwar externe ADCs, die 2 Wandlungen gleichzeitig können (und sogar 12Bit haben, statt die 10 vom AtMega), aber das wäre erst die vorletzte Möglichkeit.
    Weiß jemand weiter?

    MfG
    Björn

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    hallo,
    also ich weiss jetzt nicht, wie wichtig es ist, gleichzeitig zu wandeln.
    mir viel nur gerade ein, wenn du es gleichzeitig haben wolltest, könnten dir sample&hold schaltungen helfen.

    gruss


    p.s.
    da ich PSD noch nie gehört habe... was macht denn diese diode ?
    gibts da einen artikel oder ein datenblatt.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    52
    Beiträge
    1.819
    Der Fehler entsteht eigentlich nicht durch die zeitversetzte Wandlung, sondern dadurch, daß man hinterher annimmt, die Wandlung wäre gleichzeitig vollzogen worden. Ich könnte mir vorstellen, daß man durch Interpolation den Fehler nachträglich (auf der digitalen Ebene) wieder rausrechnen kann.

    Ob das nötig ist weiss ich nicht (weil ich Deine Anwendung nicht kenne).

    Weil Du aber von einem Audiosignal sprichst, könnte man sich überlegen, welchen Effekt die Verzögerung eines Kanals von einem Stereosignal für die Wahrnehmung haben könnte.
    Bei einer Schallgeschwindigkeit von 330 m/s breitet sich der Schall in 1,5 Mikrosekunden um etwa einen halben Millimeter fort. Das wäre mit einer minimalen, kaum wahrnehmbaren Kopfdrehung auch passiert (oder kompensiert). In diesem Fall, schätze ich, würde die Zeitverzögerung nichts ausmachen.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    Moin,
    ja, an Sample & Hold hab ich auch gedacht, bin mir aber unsicher wegen dem Aufbau. Ich möchte es natürlich so klein wie möglich haben und wenige Extra-Teile. Besonders selbstgebaute S&H mit FETs möchte ich vermeiden.
    Die Abtastrate möchte ich auch recht flexibel halten, einige S&Hs haben da leider etwas Tiefpasscharakteristik, wenn ich mich nicht täusche.

    Eine PSD ist hier erklärt http://de.wikipedia.org/wiki/Position_Sensitive_Device

    Meine Kurzform:
    Du hast eine flache, große Kathode und an den Seiten sind kleine Anoden aufgebracht. Das ganze im Stiel einer Photodiode. Nun fällt ein Lichtpunkt (Laser) darauf und der erzeugt einen Photostrom von einigen µA. Der fließt aber nur genau in der Mitte der Diode in beide Richtungen gleichmäßig ab. Sollte er etwas ausser-mittig sein, wird eine Anode bevorzugt. Dann kann man aus (Differenz der Ströme) / (Summe der Ströme) die Position auf dem Chip feststellen. Da die Diode das im Gegensatz zu CMOS oder CCD-Sensoren bis zu 100kHz schafft, ist es ne extrem schnelle Methode.
    Die IR-Triangulationssensoren von Sharp müssten nach dem gleichen Prinzip laufen, es sei denn sie nehmen halt CMOS oder CCD.
    An unserer FH ist damit ein Teststand aufgebaut um halt Abstände zu messen, an nem anderen Standort wollten sie damit Lautsprecher vermessen, also wie groß ist die Amplitude, wenn ich X Herz drauf gebe.
    Über den Winkel zwischen Quelle und Objekt, bzw Objekt und Sensor müsste man sogar Abstandsänderungen von groß bis sehr klein erkennen können. Es gibt allerdings eine nichtlinearität, die man bei den Messwerten rausrechnen muss.

    Ich hatte überlegt nen externen 12bit ADC zu nehmen, und die Daten mit 50kHz zu sampeln, in Rohform abzulegen und dann an nen Rechner weiterzugeben (muss aber schon fix gehen). Alternativ bei niedriger Samplerate oder schnellen Schüssen eine Messung machen und die auf nem LCD ausgeben.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    Moin Ranke,

    ich denke so einfach ist das nicht, da ich es nicht für Töne nehmen möchte, sondern universell einsetzen will. Wenn ich noch Rechenkapazität auftreiben kann, dann sogar in den unteren Ultraschallbereich bis 40kHz.
    Für die einfachen Messungen ist das natürlich völlig egal, aber wenn ich damit fortlaufend Werte sammeln möchte, denke ich, dass es nicht so simpel ist.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.383
    25kHz wird eng, der ADC ist nur bis 4kHz ausgelegt, schnellere signale wird er nicht vernünftig messen, auch wenn du bei 16MHz einen prescaler von 2 benutzt, kommen dabei keine 8Mhz ADC clock an, bzw. 8Mhz / 13 clocks = 615kHz abtastrate bei rum

    ich habe einen oszi versucht zu bauen, 16MHz mega32
    bis ADC prescaler 8 ist das ergebnis noch präzise, bei 4 verdoppelt sich die samplerate nichtmehr sondern nur um rund 10% und bei 2 ist garkein unterschied zu 4 mehr zu erkennen

    hier mein code
    Code:
    unsigned char adcval[923];
    unsigned char* end;
    unsigned char* pos;
    
    ISR(SIG_ADC) 
    {
    	*pos = ((unsigned char)(ADC/4))+'!'; //ich reduzier hier auf 8bit um die datenrate zu drücken 
                                                                   //(38.5 kBaud ist die einzige vernünftige baudrate für 16Mhz
    	pos++; 
    	if (pos > end) {  //wenn die tabelle voll ist, gebe ich die werte alle an den computer
    		ADCSRA &= ~((1<<ADEN) | (1<<ADIE));
    		pos = adcval;
    		do {
    			while (!(UCSRA & (1<<UDRE)));
    			UDR = *pos;
    		} while (pos++ < end);
    	}
    }
    
    int main()
    {
     //Pointer statt indizes damit der arrayzugriff schneller wird
    	end = &(adcval[922]);  //ende festlegen
    	pos = adcval; //anfang festlegen
    	UBRRH = 0;   //UART initialisieren
    	UBRRL = 25;
    	UCSRC = (1<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (1<<URSEL);
    	UCSRB = (1<<RXEN) | (1<<TXEN);
    	ADMUX = (1<<REFS0);  // AD channel ADC0 und ADC initialisieren
    	ADCSRA = (1<<ADPS1) | (1<<ADPS0) | (1<<ADEN) | (1<<ADATE);
    	ADCSRA |= (1<<ADSC); //free runing mode permanentes samplen, 
                                                 //der interrupt wird über ein befehl über UART eingeschalten
    	sei();
    	while(1);
    	return 0;
    }
    das mit 4kHz findest du auch im datenblatt

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Der AD in den AVR8 controllern wird zu langsam sein für 2 Kanäle. Man kann zwar den AD bis etwa 100 kHz Sampling rate laufen lassen, hat dann aber Probleme mit dem Ümschalten des Kanals und Übersprechen. Für 2 Kanäle reicht das kaum. Die auflösung der PSDs kann auch durchaus einen 12 Bit AD gebrauchen.

    Es kommt etwas auf die Beleuchtung an. Wenn die Lichtintensität, die Auf den PSD fällt immer konstant ist, reicht es nur die Differenz der beiden Ströme zu messen. Das Summensignal braucht man dann höchstens um langsame Drift zu korrigieren und unabhängig von der beleuchtung zu werden. Es gibt auch extra Verstärker die analog versuchen die Position zu berechnen auch den Verhältnis (I1-I2)/(I1+I2). Das geht auch ganz gut wenn man kein Fremdlicht hat. Wenn man Fendlicht hat müßte man das noch vom Nenner abziehen. Alternativ kann man die Lichtquelle modulieren.

    Die wirklich gleichzeitige Messung hat beim PSD hat duchaus ihren Sinn, wenn man Schwankungen der Intensität der Lichtquelle ausgleichen will oder muss.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    Danke für die Info.

    Also wirds doch auf einen externen ADC rauslaufen. Der Sensor selbst hat nur ein sehr kleines Gehäuse (so ne runde Standard-Optik-Aufnahme), sodass ich wohl einen OP für die Verstärkung der Einzelsignale direkt hinter den Sensor setze und dann für eine zweite Ebene einen Dual-ADC suche, oder halt zwei ADCs die ich zeitgleich Triggern kann, müsste ja mit SPI und gleichen Modellen gehen. Dann hätte ich wenigstens die Analogleitung nur im Gehäuse, der Rest könnte digital laufen... es sei denn die wollen einen analogen Ausgang am Gerät.

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    @the_Ghost666
    danke für den link und die erklärung.
    insiofern kommt mir das bekannt vor, da man früher.... also ich meine früher... ganz früher
    in den pickups der ersten cd-player verwandt hat, um die ausrichtung der linse und den fokuspunkt auszuwerten.

    das waren noch zeiten,... da waren die pickups noch aus aluminium ... und all die prismen drinne.
    ich hab hier noch so ein PSD rumliegen aus alten zeiten und wusste bisher nicht, wie ich es nennen sollte.

    nun kann ich es einordnen... in das fach PSD


    dieses , was ich habe, ist allerdigns nicht mit kathoden am rande. ich habe 4 stück photozellen , die in der mitte quasi durch ein sehr feines kreuz voneinander getrennt sind.

    auf jedenfall.. danke für die erklärung.

    gruss klaus

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    Moin, was du meinst mit dem Kreuz in der Mitte ist eine Vier-Quadranten-Diode. Leider finde ich dazu nichts gutes bei Wiki, wird aber genutzt (immernoch) um einen Laser in 2 Dimensionen zu erkennen. Auch aktuelle Blueray-Laufwerke arbeiten mit einer.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •