TMS320VC5402的串口应用实例,汇编语言写,是DSP入门学习的好帮手.
源代码在线查看: 例程说明.txt
1.testadda.asm:
用于测试AD和DA是否正常工作的例程,本程序的主要工作内容就是从AD的Vin1读数据,然后写到DA上去,通过DA恢复出波形来。注意对AD进行转换的启动是通过下面语句来实现的:
stm #start_ad_low,temp1;将立即数0放到temp1中
stm #start_ad_high,temp2;将立即数2放到temp2中
;因为对IO口进行写操作只有一种直接寻址方式,所以必须将立即数放到某个数据 空间中在写到IO口去
;下面是启动AD进行转换的代码段,目的是对AD的/CONVST引脚送一个持续至少35ns的低脉冲。对该引脚置高或置低是通过对IO空间地址为8000h处的单元的D1数据线写1或写0来实现的,系统上电和复位后该引脚保持为1。注意8000h处D0数据线是控制数据空间8000h-FFFFh为RAM使用还是BOOT方式中FLASH使用的(对IO空间的8000hD0写0则工作在RAM方式,写1则工作在BOOT方式,上电和复位后保持为1,所以此时会工作在BOOT方式)。为避免启动AD时影响到RAM与BOOT的选择,请严格参考例程中启动AD时对IO空间8000h写的数据。
testad: ;test the function of AD
portw temp1,b_r_cs ;对IO空间8000h地址单元写0(D0=0,D1=0),工作在RAM方式, ;且对/CONVST引脚置0
nop
nop
nop
nop ;因为在这之前已经将主时钟调整到100M,一条指令占用 ;10ns,要保持/CONVST至少35ns,需要加4条空指令
portw temp2,b_r_cs ;对IO空间8000h地址单元写2(D0=0,D1=1),工作在RAM方式, ;且对/CONVST引脚置1
每次启动AD转换都需要制造一个低脉冲给/CONVST。
testadda.asm:汇编源程序。
testadda.obj:经过编译后的目标文件。
testadda.out:结果编译链接后的可执行文件。
testadda.x00:可以烧写到低8位FLASH上的2进制文件。
testadda.x01:可以烧写到高8位FLASH上的2进制文件。
注意:在实验板上,如果电源输入在左下方的话,右上方两个并排的FLASH左边一个是低8位。
2.testuart.asm和rs232.c
用来测试系统的UART口是否正常工作,功能前面已经讲过,同时在计算机和DSP上运行该两程序,就可以观察到RS232口是否正常工作。实验板上UART使用DSP中断INT0,收与发都是同一中断,所以进入中断服务程序后应该判断是什么中断,然后再做相应操作。
实验板上RS232接口寄存器地址分配情况:
0c000h:发送与接受缓冲寄存器(线路控制寄存器D7=0);波特率因子寄存器低字节 (线路控制寄存器D7=1)
0c001h;中断允许寄存器(线路控制寄存器D7=0);波特率因子寄存器高字节(线路控制寄存 器D7=1)
0c002h;中断识别寄存器
0c003h;线路控制寄存器
0c004h; MODEM控制寄存器
0c005h; 线路状态寄存器
0c006h; MODEM状态寄存器
0c007h:Scratch寄存器