Oversampling av ADC på Arduino/AVR

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Oversampling av ADC på Arduino/AVR

Inlägg av lillahuset »

Hur mycket externt RAM? Bredd? Typ?
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Oversampling av ADC på Arduino/AVR

Inlägg av LHelge »

Vet inte om det finns att köpa än, jag fick ett av ST. De pratade om $50.

Ska kolla närmare imorgon hur mycket RAM det var, har kortet på jobbet. Tror det var av typen quad-SPI iaf.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Oversampling av ADC på Arduino/AVR

Inlägg av lillahuset »

Enligt en post på ST-forumet antas det dyka upp på Digikey 23/6, alltså på tisdag.
http://www.digikey.com/product-search/e ... 746G-DISCO

https://my.st.com/public/STe2ecommuniti ... views=2602
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Oversampling av ADC på Arduino/AVR

Inlägg av LHelge »

lillahuset skrev:Hur mycket externt RAM? Bredd? Typ?
64 Mbit SDRAM och 128 Mbit SPI står det på kortet.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Oversampling av ADC på Arduino/AVR

Inlägg av lillahuset »

Synd att det var så lite SDRAM. SPI-minnet, har du någon typbeteckning på det?
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Oversampling av ADC på Arduino/AVR

Inlägg av Korken »

Har du testat prestandan med float och double på den?
Float borde vara single cycle men är intresserad av double prestandan i den. :)

Kör gärna samma kod du visade tidigare, om du orkar.
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Oversampling av ADC på Arduino/AVR

Inlägg av LHelge »

SPI-minnet heter: 25Q128A 13E40

Vad gäller prestanda så¨har jag inte testat float och double. Float ska vara single cycle, men jag tror inte det gick att köra två 32-bitars float-operationer samtidigt. Processorn på discovery-kortet är en STM32F746 vad jag förstått har de inte fått med en double-kapabel FPU i den än. Kan ha fel, ska testa om jag hinner.
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Oversampling av ADC på Arduino/AVR

Inlägg av LHelge »

Körde följande:

Kod: Markera allt

#define NUM_SAMPLES 500
uint32_t samples[NUM_SAMPLES];
uint32_t sum;
uint32_t i;

sum = 0;
// Starta timer
for(i = 0; i < NUM_SAMPLES; i++) {
    sum += samples[i] * 2;
}
// Stoppa timer
UInt32: 1500 cycler
Float: 3500 cycler
Double: 45000 cycler

Tror vi kan anta att ST inte aktiverat double-FPU i STM32F746 i alla fall.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Oversampling av ADC på Arduino/AVR

Inlägg av lillahuset »

Synd. Jag har folk som tjatar på mig att vi måste använda double i ett filter men det skulle aldrig gå tillräckligt snabbt har jag sagt. Det verkar som om du bekräftar det.
superx
Inlägg: 1127
Blev medlem: 19 juni 2012, 23:28:16
Ort: Linköping

Re: Oversampling av ADC på Arduino/AVR

Inlägg av superx »

Synd att float var så mycket långsammare än int också. En Sharc DSP gör väl den loopen på 250 cykler med float (eller int) skulle jag tro.

Vad är det för filter som behöver köra i dubbel precision? I vissa fall klarar man sig med någon del i double, eller med noise shaping. Och det kan vara betydligt billigare att implementera.
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Oversampling av ADC på Arduino/AVR

Inlägg av LHelge »

IIR-filter av högre ordning brukar också behöva mycket dynamik. Det är oftast bättre att dela upp det i flera biquad block i så fall.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Oversampling av ADC på Arduino/AVR

Inlägg av lillahuset »

Det här handlar om ett enkelt IIR-filter för integrering/derivering. Jag har nyligen kört det i PCn med både double och float och plottat skillnaden.
Felet är i mitt tycke försumbart men har man en gång bestämt sig så har man... Ibland räcker inte ens en plot som argument.
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Oversampling av ADC på Arduino/AVR

Inlägg av LHelge »

Har du prövat att dela upp det i flera sekventiella biquad IIR-filter istället? Brukar vara ett bra sätt att behålla stabilitet utan samma krav på dynamik.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Oversampling av ADC på Arduino/AVR

Inlägg av lillahuset »

Det är bara en biquad så det blir svårt att dela upp. Antar jag som egentligen vet mycket lite om filter.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Oversampling av ADC på Arduino/AVR

Inlägg av Korken »

Som sakt, mycket synd att de inte hade med double-FPUn.

Får vänta på nästa version av F7an :)
Skriv svar