使用DSP的图形窗口来检测采样数据是否正常

前段时间遇到过一种现象,就是从AD中读取的数据一直不正常,用到了DSP的图形窗口。假设情况是:使用16位AD,读取的数据存入float类型的数组中,使用了1140个采样数据来被处理,而采样的原始信号是正弦波。其实只要正确设置了符合你自己情况的几个关键点就可以了。
1.首先选择"View->Graph->Time/Frequency"
2.设置原始采样数据数组的起始位置。假设我的的采样数据数组是这样定义的:float Sample[1140],只要把Sample的地址填写到"Start Address"里面即可。如果不知道Sample的地址,就在Watch窗口中增加该数组名,立马就会看到地址了。这里假设我的数组Sample[]的起始地址是0x00804F5F,那么就把该地址写进去吧。
3.设置采集缓冲区的大小。我前面不是说使用1140个采样数据了吗?那就把1140填进"Acquisiton Buffer Size"里面吧。呵呵

查看更多...

分类:DSP | 固定链接 |评论: 0| 查看次数: 361 | 返回顶部

板子调试记之串口通信续篇

本篇的引出是因为在16C550的整个调试阶段的最后,出现了新的问题和获得了新的经验。

从整个板子调试至今,依次出现了以下情况:
  1.16C550不工作,因为片子的晶振没有接上.
  2.发送数据不正常,因为中间的光隔有问题,现在把光隔去掉了,直接让16C550的7脚接收RX和8脚发送TX直接连接到MAX3232的9脚ROUT2和10脚DIN2.

查看更多...

分类:DSP | 固定链接 |评论: 0| 查看次数: 453 | 返回顶部

TMS320VC33的启动顺序


  这里说的"启动顺序",是指在DSP加电启动时从哪里读取程序到RAM中.需要说明的是我这里的FLASH片选接入TMS320VC33(以下简称VC33)的PAGE0(地址范围:000 0000~03F FFFFh),并把程序放入了FLASH的0x1000地址处(因为在MCBL/MP=1的情况下,VC33处于所谓的微计算机/引导加载模式).我们的VC33处理器有两种运行模式:微处理器模式(Microprocessor Mode)和微计算机/引导加载模式(Microcomputer/Bootloader Mode).以下把微计算机/引导加载模式简称为微计算机模式.区别我们的VC33运行于何种模式下,只要看看我们的电路板中VC33的第125脚的MCBL/MP是接低电平(微处理器模式)还是高电平(微计算机模式)就行了.
  为什么要把程序写入0x1000开始的地址处呢?这就是上面为什么介绍了VC33处理器运行的两种模式,因为目前我手上的板子就是MCBL/MP=1,VC33运行于微计算机模式下,所以0000h~0FFFh保留为引导加载程序.什么意思呢?这样认为:虽然我的FLASH接到了VC33的PAGE0,但是VC33本身固化好了自己的引导程序在地址0h~0FFFh地址处,所以FLASH的0h~0FFFh实际上就不在起作用了.也就是说在此种情况下,在000 0000h~03F FFFFh地址空间中,0h~0FFFh用的VC33内部的ROM,而此后的1000h~03F FFFFh用的就是我们外接的FLASH啦.
  VC33的启动顺序是先检测INT3(第119脚)->INT0(第122脚)->INT1(第121脚)->INT2(第120脚),哪个有效(指低电平有效),就会加载对应的地址中的程序.如果INT3有效,就从串口加载程序;如果INT0有效,就从1000h地址处开始加载;如果INT1有效,就从400000h地址处开始加载;如果INT2有效,就从FFF000h地址处开始加载.因为我要从1000h地址处开始加载程序,所以一开始要保证INT3为高电平,INT0为低电平才不至于走到INT3时就停止下来,呵呵^_^. 至于我说的这部分内容,如果有质疑可以参看官方的手册:TMS320C33 User's Guide,见Chapter 11中P365页的图11-1. 需要注意的一点就是在加电引导过程中MCBL/MP必须一直保持高电平.

查看更多...

分类:DSP | 固定链接 |评论: 0| 查看次数: 450 | 返回顶部

总是进入00000045 08684040 LDI 4040h,AR0

当我把.out文件加载到内存后,F5运行发现不正常,总是停在" 00000045 08684040 LDI 4040h,AR0"处. 后来就在成功加载后,单步执行F8,发现直接来到" 00000045 08684040 LDI 4040h,AR0",然后再也无法往下执行. 这种现象让迷惑了很久,经过无法次的尝试找到了解决方法,或许这不是最好的方法,但是却很有效.
经过多少次的无法正常运行之后,让我养成了这样的习惯:
1> File->Load Program,加载我们的.out文件.
2> F8单步执行一次,如果直接来到" 00000045 08684040 LDI 4040h,AR0"处的话就继续往下看第3布;如果没来到上面的地方就不用往下看了,因为你很幸运^_^

查看更多...

分类:DSP | 固定链接 |评论: 0| 查看次数: 369 | 返回顶部

如何安装开发TMS320VC33的Code Composer

    谨以此篇送给正在考虑开发TMS320VC33的朋友们,希望能在此解除你的疑惑并节省时间去做更有意义的事情。我这里使用的是Co.购买的TDS510-USB2.0 DSP仿真器.

   首先安装C3XC4X文件夹下的Setup.exe文件,启动Setup.exe后的画面如下所示:


分类:DSP | 固定链接 |评论: 0| 查看次数: 509 | 返回顶部

CCS的牛脾气

我的是TMSVC320VC33的CCS,发现要按下面的规矩做,否则就编译出错:

1.定义变量要靠前。如果你把某个变量定义放在了执行语句后,那就不行。

2.在*.cmd中注释要使用/* 注释 */。 如果你使用//注释,人家CCS也不同意。

3.待遇到 ….

查看更多...

分类:DSP | 固定链接 |评论: 1| 查看次数: 646 | 返回顶部

DSP中C语言嵌套汇编

直接在C方程式中写入:
asm(" *** "); // ***,就是汇编语句
是不是很简单?呵呵。说到DSP中的汇编语句,不得不指出这里的汇编语句和我们其他的汇编不太一样。它的目标操作数在右边,源操作数在左边。
E.g: AND 0EFFH,IF //是将十六进制0EFF与IF寄存器中的数进行按位"与"操作后,再赋值给IF寄存器。本句的实际意义就是清除IF寄存器的BIT8,使BIT8中数据为0。

查看更多...

分类:DSP | 固定链接 |评论: 0| 查看次数: 791 | 返回顶部