Sida 2 av 3

Re: Oversampling av ADC på Arduino/AVR

Postat: 21 juni 2015, 10:57:31
av lillahuset
Hur mycket externt RAM? Bredd? Typ?

Re: Oversampling av ADC på Arduino/AVR

Postat: 21 juni 2015, 13:10:55
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.

Re: Oversampling av ADC på Arduino/AVR

Postat: 21 juni 2015, 13:35:16
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

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 09:00:28
av LHelge
lillahuset skrev:Hur mycket externt RAM? Bredd? Typ?
64 Mbit SDRAM och 128 Mbit SPI står det på kortet.

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 09:26:10
av lillahuset
Synd att det var så lite SDRAM. SPI-minnet, har du någon typbeteckning på det?

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 09:49:55
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.

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 11:29:53
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.

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 11:50:23
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.

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 13:06:09
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.

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 13:41:42
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.

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 14:35:24
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.

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 14:53:58
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.

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 20:15:25
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.

Re: Oversampling av ADC på Arduino/AVR

Postat: 22 juni 2015, 20:35:47
av lillahuset
Det är bara en biquad så det blir svårt att dela upp. Antar jag som egentligen vet mycket lite om filter.

Re: Oversampling av ADC på Arduino/AVR

Postat: 25 juni 2015, 09:09:39
av Korken
Som sakt, mycket synd att de inte hade med double-FPUn.

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