大家好:
我们购买了M430F5438A几套开发板,希望进行FFT的开发!采用的正弦信号(频率:1545HZ; 相位:0; 幅值:100mv),信号输入端口MIC(M1)。
板载麦克风和运算放大器信号链,FFT演示提供音频信号。信号连接到P6.5,A5 ADC输入。
现MSP-EXP430F5438_User_Expertience已经出FFT的展示效果!我们希望进行15位的FFT开发(MSP-EXP430F5438_User_Expertience仅仅8位)
现已完成两套代码的基本合并(MSP-EXP430F5438_User_Expertience和transform_ex1_fft_fixed_q15
现希望将MSP-EXP430F5438_User_Expertience采集的实时数据buffer[512],作为Q15的输入数据input[256]!
该分几步做?有建议吗?
user5274273:
请参考数据:
user5274273:
回复 user5274273:
请参考希望的目标数据
Susan Yang:
我会在测试后给您回复,请您等待一下,谢谢
Susan Yang:
回复 user5274273:
请您尝试下面的步骤
1. download MSPWARE from http://www.ti.com/tool/MSPWARE which includes DSPLIB or DSPLIB directly from http://www.ti.com/tool/MSP-DSPLIB. This includes transform_ex1_fft_fixed_q15. The documentation and example usage can be found at http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430Ware/3_70_00_05/exports/MSP430Ware_3_70_00_05/dsplib/html/transform_ex1_fft_fixed_q15_8c-example.html
The documentation on the transform itself can be found at http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430Ware/3_70_00_05/exports/MSP430Ware_3_70_00_05/dsplib/html/group__dsplib__transform__real.html#ga91d6f504a72975cfab31c4dd9fa0c242
2. In the MSP-EXP430F5438_User_Experience project, in fft.c, you need to replace the call to
FFT_prog(); // Perform FFT and store
with
#define SAMPLES 512// this can be at the beginning of the file in fft.c or in fft.h /* Initialize the fft parameter structure. */ fftParams.length = SAMPLES; fftParams.bitReverse = true; fftParams.twiddleTable = msp_cmplx_twiddle_table_256_q15; status = msp_fft_fixed_q15(&fftParams, voice_data);Please note that the result will also be in voice_data. If you need the output in FFT_data[], please copy before or after the call to msp_fft_fixed_q15().
user5274273:
回复 Susan Yang:
谢谢!尽快尝试
Susan Yang:
回复 user5274273:
好的,期待您的反馈
user5274273:
回复 Susan Yang:
大家好,
我描述一下硬件·软件开发环境,以便于大家的帮助。
1). 硬件连接: M430F5438A开发板,焊掉 MIC(M1),“信号发生器”直连到它的两个端口;输入正弦信号(频率:1500HZ; 相位:0; 幅值:100mv),
2). 端口设置如下:
AUDIO_PORT_OUT |= MIC_POWER_PIN; AUDIO_PORT_OUT &= ~MIC_INPUT_PIN; AUDIO_PORT_SEL |= MIC_INPUT_PIN;
UCSCTL8 |= MODOSCREQEN; ADC12CTL0 &= ~ADC12ENC; // Disable conversions to configure ADC12 ADC12CTL0 = ADC12ON + ADC12SHT02; // Configure ADC12 to sample a sequence of channels, once ADC12CTL1 = ADC12SHP + ADC12CONSEQ_2 + ADC12SSEL_2 + ADC12SHS_3; ADC12CTL2 = ADC12RES_2; //ADC12分辨率控制位 12位
ADC12MCTL0 = MIC_INPUT_CHAN | ADC12EOS; ADC12CTL0 |= ADC12ENC; // Enable ADC12IE = BIT0;
3) 得到的数据如下图所示
问题:仅有一个信号输入源,我们希望用Q15的FFT变换,请问如何将“buffer[512]中的数据转换到Q15的input[256]里”? 以便transform_ex1_fft_fixed_q15.c的initSignal()使用……
user5274273:
回复 user5274273:
请参考
Susan Yang:
回复 user5274273:
您是否有按照之前给出的步骤进行测试?您可以跟踪回复下面帖子的内容,会有国外的工程师为您解答
e2e.ti.com/…/3338049
user5274273:
回复 Susan Yang:
Susan,
多谢分享!
我已尝试上面的步骤,
但我们希望采用外接的正弦信号(由“信号发生器”产生)!
这里面涉及2组新的驱动程序:
1) MSP430 ADC12模块的设备驱动程序(现希望分辨率控制位 为12位),它取得的数据放在buffer[512]中,
2)将buffer[512]里的数据转换到Q15的input[256]里, 以便transform_ex1_fft_fixed_q15.c的initSignal()使用
您的英语好些,能帮忙吗?