Oversampling av ADC på Arduino/AVR
- 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
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.
Ska kolla närmare imorgon hur mycket RAM det var, har kortet på jobbet. Tror det var av typen quad-SPI iaf.
- 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
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
http://www.digikey.com/product-search/e ... 746G-DISCO
https://my.st.com/public/STe2ecommuniti ... views=2602
Re: Oversampling av ADC på Arduino/AVR
64 Mbit SDRAM och 128 Mbit SPI står det på kortet.lillahuset skrev:Hur mycket externt RAM? Bredd? Typ?
- 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
Synd att det var så lite SDRAM. SPI-minnet, har du någon typbeteckning på det?
Re: Oversampling av ADC på Arduino/AVR
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.
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
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.
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
Körde följande:
UInt32: 1500 cycler
Float: 3500 cycler
Double: 45000 cycler
Tror vi kan anta att ST inte aktiverat double-FPU i STM32F746 i alla fall.
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
Float: 3500 cycler
Double: 45000 cycler
Tror vi kan anta att ST inte aktiverat double-FPU i STM32F746 i alla fall.
- 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
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
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.
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
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.
- 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
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.
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
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.
- 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
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
Som sakt, mycket synd att de inte hade med double-FPUn.
Får vänta på nästa version av F7an
Får vänta på nästa version av F7an