DSP FIR滤波器设计Word文档格式.docx
- 文档编号:17269423
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:16
- 大小:23.52KB
DSP FIR滤波器设计Word文档格式.docx
《DSP FIR滤波器设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《DSP FIR滤波器设计Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
pcr0.set39h;
串口0引脚控制寄存器
dxr11.set43h;
串口1数据发送寄存器
spsa1.set48h;
串口1子地址寄存器
spcr11.set49h;
多通道串口1寄存器1
spcr21.set49h;
多通道串口1寄存器2
xcr11.set49h;
串口1发送控制寄存器
pcr1.set49h;
串口1引脚控制寄存器
srgr1.set49h;
采样率发生寄存器1
srgr2.set49h;
采样率发生寄存器2
swcr.set2bh;
软件等待状态寄存器
;
以下部分为要用变量的定义
timer_count.set060h;
定时器计数
mcbsp_init.set061h;
mcbsp初始化
wave_ptr.set062h
is_new_data.set063h;
新数据到达标志
new_ad.set064h
out_wave_ptr.set065h
t_ar2.set066h
t_ar3.set067h
temp.set068h
wave_buf.set0900h
out_wave_buf.set01000h
N.set38;
FIRtaps
fir_coef_buf.set100h;
FIRcoefbuffer
fir_data.set200h;
FIRwindowsdatabuffer!
.text
--------------------------------------------------------------------
interruptvectortable!
rsb_c_int00
nop
nmib__ret
sint17b__ret
sint18b__ret
sint19b__ret
sint20b__ret
.word0,0
sint21b__ret
sint22.word01000h
.word0,0,0
sint23.word0ff80h
sint24.word01000h
sint25.word0ff80h
sint26.word01000h
sint27.word0ff80h
sint28.word01000h
sint29.word0ff80h
sint30.word01000h
int0b__ret
int1b__ret
int2b__ret
tintbtimer;
内部定时中断
brint0breceive;
缓冲串口接收中断
bxint0btransmit;
缓冲串口发送中断
trintb__ret
txintb__ret
int3b__ret
hpintb__ret
q26.word0ff80h
q27.word01000h
q28.word0ff80h
q29.word01000h
q30.word0ff80h
q31.word01000h
--------------------------------------------------------------------------
复位中断服务程序
------------------------------------------------------------------------
_c_int00:
stm#2020h,pmst;
vectortablestart:
0x2000,看IPTR中的值
ssbxintm;
closeallint!
(ssbxintm)
ssbxsxm;
extendsign!
ssbxfrct;
factionmultiply
stm#10h,26h;
stopTIMER0!
stm#10h,36h;
stopTIMER1!
stm#0ffh,sp;
sp=0x0ff
ld#0,dp;
dp=0
stm#0ffffh,ifr;
clearallint!
中断标志寄存器
stm#20h,imr;
bit5->
BXINT0,bit4->
BRINT0,enableBXINT0
中断屏蔽寄存器
stm#02492h,swwsr;
all2waits!
stm#0,swcr
stm#0,58h
wait_pll:
ldm58h,a
and#1,a
bcwait_pll,aneq
stm#97ffh,58h;
switchpll*10->
100Mclk
rpt#100
********************************************************************
初始化RAM,Variable....
stm#wave_buf,ar6
stm#1,ar0
rpt#24
mvpdwave_data,*ar6+0;
movewavedatatowave_buf->
0x0900h
stm#wave_buf,wave_ptr;
savewavebuffer'
ptr
stm#out_wave_buf,out_wave_ptr;
saveoutwavebuffer'
ptr,becauseuse
circularaddress,sowhensaveout_wave
date,must++!
stm#fir_coef_buf,ar6
rpt#N-1
mvpdfir_coef,*ar6+;
movefircoeftofir_coef_buf(indatamem)
stm#fir_coef_buf,t_ar2;
stm#fir_data,t_ar3
stm#0aa55h,mcbsp_init;
whenmcbsp_init==0xaa55,transmitforinitac01
stm#5,timer_count;
initvariabletimer_count!
stm#0,is_new_data;
ifis_new_data==1,hasnewADdatabyslaveac01!
stm#1000h,ar0
stm#1800h,ar5
stm#400h,bk
ld*ar0,t
ld#0,b
stm#0,spsa0;
spsa0为串口0的子地址寄存器,chooseSPCR10
stm#2000h,spcr10;
receivesign_extendinDRR
stm#1,spsa0;
chooseSPCR20
stm#0c0h,spcr20;
fs->
int!
stm#2,spsa0;
chooseRCR10
stm#40h,39h
stm#3,spsa0;
chooseRCR20
stm#0,39h
stm#4,spsa0;
chooseXCR10
stm#40h,xcr10
stm#5,spsa0;
chooseXCR20
stm#0eh,spsa0;
choosePCR0
stm#0dh,pcr0;
fsislowactive,riseedgeofclkx,fallingedge
ofclkr
stm#7h,spsa0
stm#8000h,39h
rpt#0ffffh
stm#00h,dxr10
ldm22h,a
stm#1,38h
stm#0c1h,39h;
startMcBSP0send!
ld#603h,a
rsbxintm;
enableallint!
idle1
idle1
idle1;
软件复位两个AC01
ld#600h,a
waitforint.....
ld#3,a
send#3
ld#00105h,a;
fs=10M/2/A/B=25k
flp=10M/2/40/A=25k(allpass)
fhp=fs/200=125Hz(notuse!
)
A=05,B=40(0x28)
送05h到AC01的数据寄存器1
ld#00228h,a
送28h到AC01的数据寄存器2
ld#00300h,a
送00h到AC01的数据寄存器3
ld#00405h,a
送05h到AC01的数据寄存器4(AD&
DA0dB)
ld#00505h,a
送05h到AC01的数据寄存器5(highpassfilterdisable)
ld#00600h,a
送00h到AC01的数据寄存器6
ld#00700h,a
送0到AC01的数据寄存器7
ld#800h,a
送0到AC01的数据寄存器8
ld#0h,a
stm#0,38h
stm#2001h,39h;
开始MCbsp0接收!
stm#30h,imr;
BRINT0,使能BXINT0
stm#10h,tcr;
stopTIMER!
stm#0ffffh,prd;
装载PRD,周期寄存器
stm#0fh,tcr;
TIMERstart,eachabout100HZ....
orm#8,imr;
enableTIMERINT!
again:
bitfis_new_data,#1;
testis_new_data==1?
ccfir,tc;
==1,thencallfir!
newADdatainnew_ad(0x64)
bagain
transmit:
pshmst1
pshmst0
pshmbk
pshmar7
pshmah
pshmal
cmpmmcbsp_init,#0aa55h
bcinit,tc
stm#25,bk;
eachAC01has25dotstoD/A!
mvdm#wave_ptr,ar7;
restorewavebufferptr!
ld*ar7+%,a
stlma,dxr10;
sendwavedata!
MasterAC01makesourcewave,
SlaveAC01makefilterresultwave!
bdwave_make_end
mvmdar7,#wave_ptr;
savewavebufferptr!
init:
stlma,dxr10
bitfdxr10,#800h;
ifsetuplastregofAC01,setmcbsp_init=0!
bcwave_make_end,ntc;
notequal,jump!
stm#0,mcbsp_init;
whenmcbsp==0or1,transmitformakewave!
wave_make_end:
popmal
popmah
popmar7
popmbk
popmst0
popmst1
__ret:
rete
receive:
ld#0,dp
mvkddrr10,*ar5;
saveADdata
pshd*ar5+%;
saveADdatainAD_buffer(0x1800-0x1c00)
popdnew_ad
stm#1,is_new_data;
hasnewADdata
timer:
ldmtimer_count,a
sub#1,a
bcnot_show_led,aneq;
ifa!
=0,jump!
bitfst1,#2000h;
testXF?
bcshow_led,tc
ssbxxf;
setxf=1
bshow_con
show_led:
rsbxxf;
setxf=0
show_con:
ld#5,a;
not_show_led:
stlma,timer_count
fir:
pshmar0
pshmar2
pshmar3
mvdm#t_ar2,ar2;
restorear2
mvdm#t_ar3,ar3;
restorear3
ldnew_ad,-2,a;
newADdata->
a,removetwoLSBs
stm#N,bk;
setcircularaddressingsize
stla,*ar3+%
rptza,#(N-1);
0->
a,thenrepeat34times
mac*ar2+0%,*ar3+0%,a;
doneFIRfilter,resultinah
mvmdar3,#t_ar3;
savear3
mvmdar2,#t_ar2;
savear2
stm#100h,bk;
mvdm#out_wave_ptr,ar7;
stha,-2,temp;
saveFIRresultintemp
ldtemp,2,a;
shift2bitforAC01D/A!
stla,*ar7+0%;
saveFIRresulttowavebuffer!
stla,temp
mvmdar7,#out_wave_ptr;
newADdatahasbeenprocessed!
cmpmout_wave_ptr,1000h
bccon_fir,ntc
ccs_show:
此处加断点,查看结果
nop;
ifout_wave_ptr==0xc00,
nop;
mayshowout_waveinCCS!
!
show128dots!
inputbuffer->
0x1800
outputbuffer->
0x1000(showfrom0x1020)
con_fir:
popmar3
popmar2
popmar0
ret
wave_data:
freqabout1kHz
.word03ffch;
+2volt
.word03ffch
.word0c000h;
-2volt
.word0c000h
fir_coef:
.wo-50
.word101
.word150
.word203
.word216
.word153
.word-3
.word-239
.word-508
.word-729
.word-802
.word-634
.word-163
.word615
.word1638
.word2777
.word3861
.word4711
.word5178
.word2777
.word150
.word-50
.end
4.调试步骤:
1短接JP9,使得DES5402PP的信号输出通道和输入通道相连。
2启动CCS,新建一个工程fir5402.pjt。
3在工程中添加文件fir5402.asm和文件*.cmd,在标号ccs_show处添加断点,编译连接,然后将OUT文件装入,按Animate按扭运行程序。
这时会看到断点处黄色箭头一直闪烁,状态栏有go字一直闪烁。
4选择View->
graph->
Time/Frequency菜单打开一个图形显示窗口。
在“starta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP FIR滤波器设计 FIR 滤波器 设计