-
Schematic / PCB for LPC-LINK-2_SHIELD
08/25/2014 at 15:13 • 0 commentsI got a starter project for the LPC-LINK2_SHIELD (will have the mic preamp circuits) on github. It has the PCB dimensions, mechanicals, connector positions, etc setup.
-
Microphone Prototypes
07/27/2014 at 02:08 • 0 commentsLike all good development on the cheap, I have re-purposed a mic design from another acoustics project. The mics shown are Knowles Acoustic SPM404H. While they are tested to 10kHZ in the datasheet, just about all of the mems products go waay into the ultra sonic. Using a piezo transducer, I have verified there is good response out to 80KHz. Now... I don't have a good calibrated source so my crude setup (which has peaks and valleys in the spectrum owm its own) tells me I am in the ball park. The will server the purpose for the time being. Schematics will be in Github at some point..... I wish I didn't have to sleep....
-
Algorithm Discussion : New Video Available
07/13/2014 at 01:35 • 0 commentsI just recorded a video that expands on the algorithms discussed quickly in the entry video. There is about 20+ minutes but should give you an idea of where we are going!
-
Core FFT Performance : 4096 Radix4 CFFT
07/09/2014 at 14:12 • 0 commentsA core part of the algorithms we will use is a complex input FFT (a+jb). Before going to far I wanted to evaluate the FFT performance of the LPC4370 M4 core. Now, an FPGA would rule the roost with FPGA processing horsepower BUT I am trying to keep this as low cost as possible. The 4370 on the LPC-Link2 is a place to start. FPGAs are great once you have everything worked out but HDL can be unforgiving.... (and are high cost!)
So, here are is some assumptions:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
LPC4370 - Code running on the M4 core. Clock rate at 204Mhz. Exectution from RAMLoc128 (0x10000000 - 0x10020000)
ARM CMSIS DSP libraries V 4.0.1. In particular I am looking at the function arm_cfft_radix4_q15
I am using fixed point processing.
Input data is a 4096 q15_t array in RAM. (Note all processing is done in place... source data must be in RAM)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Now, I am targeting a 200Khz system sample rate with 4096 block size. (This matches the max radix4 block size allowed by CMSIS DSP). This means I have a window of 20.48mS to get all my processing done. In the background, new ADC data will be DMA's into a buffer and data will be DMA's from an output buffer to a DAC
So.... drum roll. The algorithm arm_cfft_radix4_q15 takes 2.4mS. So, I have roughly a fact of 10 margin. Now, this will quickly get eaten up. I have to do a minimum 2 FFTs (forward and reverse transform), the magically scaling algorithms. Either way, this gives me a good amount of overhead. I always have 2 other cores ready to go :-)
I also profiled arm_cfft_radix2_q15. It is a bit slower at 2.9mSec.
Code is in the hc-1 Github repository.
Last notes:
The board support library sometimes crashes in Board_SystemInit() at bootup when running from RAM. I think a delay is need when setting up clock dividers or the crystal. If I single step through the code, it works... Also, using the internal osc and PLLing up to 204MHz is fine.
These numbers would certainly get awful if running from SPIFI Flash. (LPC-4370 is ROM-Less. You have to bootload from SPIFI flash into RAM or execute from SPIFI...) Maybe I can do that some other day
-
Algorithms!
07/08/2014 at 14:14 • 0 commentsThrowing together hardware is the simple part of a project. The real magic is in the software! People often forget that the software component is often a black hole of no escape. I will soon get started on documenting the algorithms that we are going to implement. After all, this is where all the magic is.
A key piece is doing some evaluation of CPU performance. Before I go too much further I need to do some H/W performance tests to get a good idea of what we can get put together in the prototype. Stay tuned....
-
Microphone Concept
07/08/2014 at 14:08 • 0 commentsFor the prototype I will be using a MEMS type microphone (Knowles Acoustics). Virtually all of the mems mics will respond into the ultrasonic bands. I am now characterizing the current design at >20KHz.
The challenge with high frequency sensors is diffraction. The wavelength is comparable (or much smaller) that the characteristic dimension of the sensor and can yield "lumpy" response parameters. In fact, most of the data provided by the vendors (i.e. Knowles) shows this effect! I am currently building the prototype mic with the parts I have on hand. This will be a baseline to get started. We can improve the mic down the road...
-
Entry Video
07/04/2014 at 16:46 • 0 commentsEntry video has been produced....
https://www.youtube.com/watch?v=MFvtlzdgVHY
-
Getting Started
06/27/2014 at 16:00 • 0 commentsGot the project description online. Added link to github repo where data will be stored. Make announcements on social media.