Jump to content

M-Three

Members
  • Content Count

    19
  • Joined

  • Last visited


Reputation Activity

  1. Like
    M-Three got a reaction from larryfraz in DSP Libraries for Cortex-M3 and other ARM microcontrollers   
    I was looking around for a general dsp library to do FFTs when I came across this page.
     
    Has a sh*t ton of stuff, hopefully helpful to you guys.
     
     
    Four groups of functions:
     
    Windowing function
    Fast Fourier Transform
    Complex magnitude (absolute value of complex frequency)
    Miscellaneous functions: logarithm(x), exp(x), pseudorandom generator
     
    Three library versions
    GCC ( Rowley CrossWorks, Raisonance, …)
    Keil MDK-ARM
    IAR Embedded Workbench
     
     
    Windowing functions (e.g. Hamming window)
    Windowing is very common step before FFT calculation
    Perform speed optimized windowing of input signal before FFT
    16 to 32 bit version performs proper scaling of 16 bit signal for 32 bit FFT
     
     
    FFT functions
    Complex and real FFT, 16 and 32bit FFT versions
    Radix4/2 FFT – sizes 4,8,16,32,64,128,256,512,1024,2048 and 4096
    Inverse FFT available
    Real FFT enables much more efficient processing of the real signals
    16 bit FFT precision comparable with other fixed point implementation – precision determined by necessary scaling by 0.5 in every FFT stage
    32 bit FFT increases dynamic range by 90 dB , needs extra 20% to 50% cycles
    Coefficients located in Flash. RAM location means faster FFT for higher latencies.
     
     
    Magnitude functions
    Calculate complex frequency magnitude mag=sqrt (re^2 + im^2)
    Based on custom 32 bit square root algorithm (7/13 cycles)
    Multiple versions of different speed / precision tradeoffs for 64 bit sqrt
     
     
    Logarithm and exponent functions
    Calculate log2(x) and exp2(x) = 2^x
    log2 input, exp2 output: 16q16 unsigned 1/65536 to 65535+65535/65536
    log2 output, exp2 input : 5q27 signed -15.99999 to 15.99999
    speed: 11/10 cycles ; precision 0.4 ppm / 3 ppm for log2 / exp2
    single multiply conversion to log10(x), ln(x), 10^x, e^x and generic base log, exp
     
    Parallel MLS pseudorandom generator for ARM cpu
    Maximum Length Sequence generated by Linear Feedback Shift Registers
    Periode 2^31-1 to 2^64-1 words (1 to 64 bits wide)
    1 to 64 bits generated in parallel
    Order of magnitude faster than bit based approach, 3-10 cycles per whole word
  2. Like
    M-Three got a reaction from tanh_ta in STM32 wave audio player with LCD   
    Was searching for FFT libraries when I came across this player. Reads files from an SD card using FatFS by ChaN, displays a spectrum graph on an LCD using the FFT dsp library from Ivan Mellen.
     


    Mini-STM32 WAVE Audio Player.7z
  3. Like
    M-Three got a reaction from Ferb in Noob Question: What kind of OSes can run on Stellaris Launchpad?   
  4. Like
    M-Three reacted to Automate in Frequency analyzer built from the new Stellaris Launchpad   
    From HAD, the Stellaris is not shipping yet "But [EuphonistiHack] works as a software dev for TI and snagged one of the early development units."
    http://hackaday.com/...aris-launchpad/
     

  5. Like
    M-Three got a reaction from bluehash in DSP Libraries for Cortex-M3 and other ARM microcontrollers   
    I was looking around for a general dsp library to do FFTs when I came across this page.
     
    Has a sh*t ton of stuff, hopefully helpful to you guys.
     
     
    Four groups of functions:
     
    Windowing function
    Fast Fourier Transform
    Complex magnitude (absolute value of complex frequency)
    Miscellaneous functions: logarithm(x), exp(x), pseudorandom generator
     
    Three library versions
    GCC ( Rowley CrossWorks, Raisonance, …)
    Keil MDK-ARM
    IAR Embedded Workbench
     
     
    Windowing functions (e.g. Hamming window)
    Windowing is very common step before FFT calculation
    Perform speed optimized windowing of input signal before FFT
    16 to 32 bit version performs proper scaling of 16 bit signal for 32 bit FFT
     
     
    FFT functions
    Complex and real FFT, 16 and 32bit FFT versions
    Radix4/2 FFT – sizes 4,8,16,32,64,128,256,512,1024,2048 and 4096
    Inverse FFT available
    Real FFT enables much more efficient processing of the real signals
    16 bit FFT precision comparable with other fixed point implementation – precision determined by necessary scaling by 0.5 in every FFT stage
    32 bit FFT increases dynamic range by 90 dB , needs extra 20% to 50% cycles
    Coefficients located in Flash. RAM location means faster FFT for higher latencies.
     
     
    Magnitude functions
    Calculate complex frequency magnitude mag=sqrt (re^2 + im^2)
    Based on custom 32 bit square root algorithm (7/13 cycles)
    Multiple versions of different speed / precision tradeoffs for 64 bit sqrt
     
     
    Logarithm and exponent functions
    Calculate log2(x) and exp2(x) = 2^x
    log2 input, exp2 output: 16q16 unsigned 1/65536 to 65535+65535/65536
    log2 output, exp2 input : 5q27 signed -15.99999 to 15.99999
    speed: 11/10 cycles ; precision 0.4 ppm / 3 ppm for log2 / exp2
    single multiply conversion to log10(x), ln(x), 10^x, e^x and generic base log, exp
     
    Parallel MLS pseudorandom generator for ARM cpu
    Maximum Length Sequence generated by Linear Feedback Shift Registers
    Periode 2^31-1 to 2^64-1 words (1 to 64 bits wide)
    1 to 64 bits generated in parallel
    Order of magnitude faster than bit based approach, 3-10 cycles per whole word
  6. Like
    M-Three reacted to Rickta59 in Literature: Programming, Compiling, Linking ...Toolchains in general   
    http://www.linuxfromscratch.org/lfs/view/stable/chapter05/chapter05.html
  7. Like
    M-Three reacted to bytesize in Code Composer Studio Stellaris "__attribute" has already been declared in the current scope   
    ooh I can help!
    Make sure "Enable Support for GCC Extensions" box is checked.
    Properties->Build->TMS470 Compiler->Language Options. Let me know!
     

  8. Like
    M-Three reacted to Rickta59 in Output MCO on GPIOA.8 - STM32F0   
    I wanted to be able to verify my system clock was configured properly. I found this feature very useful on the msp430 chips. Turns out that the STM32 Cortex M0 chips also support this. Attached is some code that allows you to output your SYSCLK on pin PA.8 for easy verification of your various clock sources.
     

    /** * Cortex M0 - STM32F0 Discovery board code spew out one of the clocks on PA.8 */ void OutputMCO() { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); /* Output clock on MCO pin ---------------------------------------------*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); // pick one of the clocks to spew RCC_MCOConfig(RCC_MCOSource_SYSCLK); // Put on MCO pin the: System clock selected //RCC_MCOConfig(RCC_MCOSource_HSE); // Put on MCO pin the: freq. of external crystal //RCC_MCOConfig(RCC_MCOSource_PLLCLK_Div2); // Put on MCO pin the: System clock selected }
     
    -rick
  9. Like
    M-Three reacted to bluehash in Stellaris LM3S6950 Cortex-M3 WebRadio   
    The ARM WebRadio is an embedded Internet Radio based on an ARM Cortex-M3 LM3S6950 Microcontroller and VS1053 Audio Codec. The device can be powered through PoE (Power over Ethernet).
    Source code and schematics at github.
     


  10. Like
    M-Three reacted to bluehash in Win a STM32F0-Discovery Kit   
    Make sure you are logged in. Once logged in, there will be a submit link below.Last entry is "End of June 2012"
     

    http://www.designspark.com/content/win-stm32f0-discovery
  11. Like
    M-Three reacted to bluehash in Stellaris Evalbot Cortex-M3 Kit 50% off at Avnet   
    Avnetexpress has the Stellaris Evalbot at 50% discount. Use coupon code
    ARMSTELLARIS50 at checkout.
    Enjoy!
×
×
  • Create New...