www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP code composer studio ADC anschauen


Autor: "t." "k." (campionissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hätte ne Frage!
Kann man im CCS den ADC mit einer Graphik anschauen, d.h. wie bei einem 
Oszi.
Weil sonst kann man ja nie die Werte sehen, wie er sie gewandelt und 
abgetastet hat.
Habe nur die freeware Version von CCS V3.3
Vielleicht kann mir wer helfen

Mfg
TK

Autor: Antal 377 (antal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein ältere Version, aber an den Menüs hat sich sicher nicht 
viel geändert.

-> View
-> Graph
-> Time/Frequency

Damit kannst du die Abtastwerte "visualisieren". Allerdings ist die 
Methode weit von einem Oszi entfernt - aber vielleicht reicht es dir ja 
so bereits.

Autor: Tu Tequila (tequila)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Antal -- wrote:

>  Allerdings ist die
> Methode weit von einem Oszi entfernt - aber vielleicht reicht es dir ja
> so bereits.

was meinst du damit?

ich versuche grad auch sowas,indem von einem Spannungsversorger stelle 
ich einen konstandwert ein.Auf oszi zeigt es Mittelwert = 1,57Volt aber 
auf CCS rauscht es um den wert 1.54 volt. Das heißt 30mV :( ich weiß 
nicht woran es liegt,ob ADC nicht gut funktioniert?

Autor: Tim R. (mugen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie bist du denn auf diese Spannung gekommen? Hast du den ADC über die 
interne Routine kalibriert? Der ADC ist ein nettes Beiwerk und 
eigentlich nicht der schlechteste, aber mehr als effektive 10 bis 11Bit 
sollte man nicht erwarten.

Autor: Tu Tequila (tequila)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Tim R. wrote:
> Wie bist du denn auf diese Spannung gekommen? Hast du den ADC über die
> interne Routine kalibriert? Der ADC ist ein nettes Beiwerk und
> eigentlich nicht der schlechteste, aber mehr als effektive 10 bis 11Bit
> sollte man nicht erwarten.

ich bin ganz neu in Microcontroller sowie C-programmierung:(
so ist mein C-code.

Uint16 temp;
Uint16 index = 0;
float32 Voltage[512];
.....

main()
{
   ......
   InitAdc();
   AdcRegs.ADCMAXCONV.all = 0x0000;    // Setup 1 conv's on SEQ1
   AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x3;// Setup ADCINA3 as 1st SEQ1 conv.
   AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;//Enable SOCA from ePWM to start //SEQ1
   AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;//Enable SEQ1 interrupt(every EOS)
   AdcRegs.ADCTRL1.bit.ACQ_PS = 15;
   AdcRegs.ADCTRL1.bit.CPS = 1;//ADCCLK = Fclk/2,
   AdcRegs.ADCTRL3.bit.ADCCLKPS = 0x1;//1--> HSPCLK/[2*(ADCTRL1[7] + 1) //---> ADCCLK = 25Mhz/4
                     
   EPwm1Regs.ETSEL.bit.SOCAEN = 1;        // Enable SOC on A group
   EPwm1Regs.ETSEL.bit.SOCASEL = 1;       // Select SOC when TBCTR = 0
   EPwm1Regs.ETPS.bit.SOCAPRD = 1;        // Generate pulse on 1st event
   EPwm1Regs.TBPRD = 3750;              // Set period for ePWM1 20Khz
   EPwm1Regs.TBCTL.bit.CTRMODE = 2;    // count up_down and start

// Wait for ADC interrupt
   for(;;)
   {
      LoopCount++;
   }

}


interrupt void  adc_isr(void)
{

  temp = AdcRegs.ADCRESULT0 >>4;
  Voltage[index] = (float32)temp*3/4095;
  if (index == 511)
     index = 0;
  else index++;
  AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;         // Reset SEQ1
  AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;       // Clear INT SEQ1
  PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;// Acknowledge interrupt to PIE
}

Ich benutze grad ezdsp f28335, floating point,ich weiß noch nicht genau 
was ist unterschied zwischen fixed point Prozessor und floating point??? 
Ja ich benutzte die interne routine,die schon vorhanden ist.

So erstmal hab ich konstant spannung über AD wandler gemessen,diese 
konstante spannung hab ich von Op Amp Ausgang genommen,auf der oszi 
zeigt es Mittelwert 1,57V,aber auf dem CCS graph nur um den wert 1,54V
als zeite hab ich ein sinus gemessen,dann kreige ich sowas komische wie 
angehängt oben,Graph tool von CCS 3.3 hab ich benutzt für Tabelle 
Voltage[512] .ich weiß nicht woran es liegt:((

Autor: Antal 377 (antal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fixed Point = Festkomma (z.B. int, char...)
Floating Point = Gleitkomma (z.B. double, float)
Die entsprechenden Prozessoren sind, einfach gesagt, für den jeweiligen 
Zahlentyp optimiert.

Ich habe auch nur Erfahrungen mit ein paar externen AD-Wandlern. Die 
verlangen beide eine Referenzspannung, die angelegt wird - wenn diese 
beispielsweise um 0,03V zu hoch ist, dann ist liegt der digitale 
Abtastwert, der auf dem Bildschirm angezeigt wird, um 0,03V unter dem 
eigentlichen Wert. Falls du deinen AD-Wandler auch mit einer externen 
Spannung fütterst, dann prüfe die mal.
Wenn der Unterschied Ausgangswiderstand OP-Amp / Eingangswiderstand 
AD-Wandler nicht all zu groß ist, können da auch ein paar mV verloren 
gehen. Oszis haben üblicherweise hohe Eingangswiderstände, so dass die 
Spannung, die dann am Op-Amp abfällt, vernachlässigbar ist.

Zu dem Screenshot mit der Sinus-Welle: Ich traue der grafischen Anzeige, 
die der CCS liefert, nie so ganz. Wenn du dir die Abtastwerte 
zahlenmäßig anschaust (z.B. über das Watch Window, das ist das Icon mit 
der Brille), ist da auch dieser Sprung nachzuvollziehen?

Autor: Ralf Schwarz (spacedog) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> als zeite hab ich ein sinus gemessen,dann kreige ich sowas komische wie
> angehängt oben,Graph tool von CCS 3.3 hab ich benutzt für Tabelle
> Voltage[512] .ich weiß nicht woran es liegt:((

Was soll denn an der Grafik falsch sein?

'Voltage' ist ja ein Ringbuffer. Zu dem Zeitpunkt da du das Array 
ausliest und anzeigst befindet sich der Index (will heissen Ende des 
Datensatzes, bzw. eins vor dem Anfang) irgendwo zwischen Anfang und Ende 
des Arrays. Dass Anfang und Ende gerade zusammenpassen wäre ein grosser 
Zufall. Darum siehst du diesen Knick, falls du das gemeint hast.

Autor: Tu Tequila (tequila)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Antal -- wrote:

> Zu dem Screenshot mit der Sinus-Welle: Ich traue der grafischen Anzeige,
> die der CCS liefert, nie so ganz. Wenn du dir die Abtastwerte
> zahlenmäßig anschaust (z.B. über das Watch Window, das ist das Icon mit
> der Brille), ist da auch dieser Sprung nachzuvollziehen?

ja,sieht man schon diesen sprung im watch window.

vielen dank Antal:-)

gruß aus uni Hannover^^

Autor: Tu Tequila (tequila)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralf Schwarz wrote:
>> als zeite hab ich ein sinus gemessen,dann kreige ich sowas komische wie
>> angehängt oben,Graph tool von CCS 3.3 hab ich benutzt für Tabelle
>> Voltage[512] .ich weiß nicht woran es liegt:((
>
> Was soll denn an der Grafik falsch sein?
>
> 'Voltage' ist ja ein Ringbuffer. Zu dem Zeitpunkt da du das Array
> ausliest und anzeigst befindet sich der Index (will heissen Ende des
> Datensatzes, bzw. eins vor dem Anfang) irgendwo zwischen Anfang und Ende
> des Arrays. Dass Anfang und Ende gerade zusammenpassen wäre ein grosser
> Zufall. Darum siehst du diesen Knick, falls du das gemeint hast.

vielen dank Ralf Schwarz:-)
das war mir ganz hilfreich!

danke euch!
gruß aus uni hannover:-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.