Forum: Mikrocontroller und Digitale Elektronik Hilfe bei Initialisierung von Elm Chan FFT


von Fe L. (lurchieee)


Lesenswert?

Hallo,
ich habe ein kleines Projekt, bei dem ich Sprache über Lautsprecher 
aufnehme und spektroskopieren will.
Dazu wollte ich den Code von Elm Chan verwenden. Leider habe ich zu 
wenig Erfahrung um den auf meinem Atmega324 zum laufen zu bringen.

In dem Code gibt es direkt eine ADC Abfrage:
1
/*------------------------------------------------*/
2
/* Capture waveform                               */
3
4
void capture_wave (int16_t *buffer, uint16_t count)
5
{
6
  ADMUX = _BV(REFS0)|_BV(ADLAR)|_BV(MUX2)|_BV(MUX1)|_BV(MUX0);  // channel
7
8
  do {
9
    ADCSRA = _BV(ADEN)|_BV(ADSC)|_BV(ADFR)|_BV(ADIF)|_BV(ADPS2)|_BV(ADPS1);
10
    while(bit_is_clear(ADCSRA, ADIF));
11
    *buffer++ = ADC - 32768;
12
  } while(--count);
13
14
  ADCSRA = 0;
15
}
Das MIkrofon hat einen eigenen Verstärker der an den ADC (ADC0)
2,5 V +- 2,5 V gibt.
Brauche ich dann noch den MUX0..2 ? Im Doc des µCs steht
"It is possible to select any of the ADC7..0 pins to replace the 
negative input to the Analog Comparator."
Ich hab doch garkeinen negativen Input !?

Von meinem ADC hole ich mir nur uint8 Werte.
Was muss ich denn alles bei der ELM Chan FFT anpassen ?


Besten Dank im Voraus
Lurchieee

von Peter K. (Gast)


Lesenswert?

Hallo Fe Li:

mit der ELM Chan FFT kenn ich mich jetzt nicht so aus.

Aber es gibt sonst auchn noch Probleme:

Fe Li schrieb:
> Das MIkrofon hat einen eigenen Verstärker der an den ADC (ADC0)
> 2,5 V +- 2,5 V gibt.

der ADC kann nur positive Spannungen annehmen also von 0-Vref, -2,5V 
können dir im schlechtesten Fall den µC zerstören.

du solltest auf die ausgangsspannung einen offset von 2,5V geben dann 
hast du 0V-5V Output und dann des ganze noch halbieren, also auf 0V-2.5V 
(wenn du die interne Referenzspannungsquelle nutzen möchtest)

Du kannst eventuell auch den Differentiellen Eingang des ADC nutzen, 
dann legst du an den positiven Eingang 0-2.5V und an den negativen die 
-2.5V-0V die musst du allerdings erst Positiv also auf 0V-2.5V bringen, 
in der berechnung des ADC Wertes werden sie dann negativ verwendet.

Schau am besten nochmal im Datenblatt nach unter ADC, beginnt ca bei 
Seite 201, da ist alles genau beschrieben.

Fe Li schrieb:
> Brauche ich dann noch den MUX0..2

der ist nur dazu da zwischen den Verschieden ADC channels umzuschalten.

Fe Li schrieb:
> "It is possible to select any of the ADC7..0 pins to replace the
> negative input to the Analog Comparator."

Achtung der Analog Comperator ist etwas anderes als der ADC 
(Analog-Digital-Converter)

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.