<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title>书生 记录点滴生活,思考岁月人生(WWW.SUSENG.CN)</title><link>http://www.suseng.cn</link> <description>记录点滴生活,思考岁月人生</description><copyright> Copyright 2007-2008 All rights reserved. </copyright> <language>zh-cn</language><item><title>使用DSP的图形窗口来检测采样数据是否正常</title><description><![CDATA[<font face="Arial">前段时间遇到过一种现象，就是从AD中读取的数据一直不正常，用到了DSP的图形窗口。假设情况是：使用16位AD，读取的数据存入float类型的数组中，使用了1140个采样数据来被处理，而采样的原始信号是正弦波。其实只要正确设置了符合你自己情况的几个关键点就可以了。<br />
1.首先选择"View->Graph->Time/Frequency"<br />
2.设置原始采样数据数组的起始位置。假设我的的采样数据数组是这样定义的:float Sample[1140]，只要把Sample的地址填写到"Start Address"里面即可。如果不知道Sample的地址，就在Watch窗口中增加该数组名，立马就会看到地址了。这里假设我的数组Sample[]的起始地址是0x00804F5F,那么就把该地址写进去吧。<br />
3.设置采集缓冲区的大小。我前面不是说使用1140个采样数据了吗？那就把1140填进"Acquisiton Buffer Size"里面吧。呵呵<br />
]]></description><author>Eastar</author><link>http://www.suseng.cn/Blog/Eastar/Article/187.Aspx</link><pubdate>2008-9-26 16:54:26</pubdate></item><item><title>板子调试记之串口通信续篇</title><description><![CDATA[<p><font face="Arial">本篇的引出是因为在16C550的整个调试阶段的最后，出现了新的问题和获得了新的经验。</font></p>
<p><font face="Arial">从整个板子调试至今，依次出现了以下情况:<br />
&nbsp; 1.16C550不工作,因为片子的晶振没有接上.<br />
&nbsp; 2.发送数据不正常,因为中间的光隔有问题,现在把光隔去掉了,直接让16C550的7脚接收RX和8脚发送TX直接连接到MAX3232的9脚ROUT2和10脚DIN2.<br />
]]></description><author>Eastar</author><link>http://www.suseng.cn/Blog/Eastar/Article/174.Aspx</link><pubdate>2008-6-19 18:29:43</pubdate></item><item><title>TMS320VC33的启动顺序</title><description><![CDATA[<font&nbsp;face="Arial"><br />
<p><font&nbsp;face="Arial">&nbsp;&nbsp;这里说的"启动顺序",是指在DSP加电启动时从哪里读取程序到RAM中.需要说明的是我这里的FLASH片选接入TMS320VC33(以下简称VC33)的PAGE0(地址范围:000&nbsp;0000~03F&nbsp;FFFFh),并把程序放入了FLASH的0x1000地址处(因为在MCBL/MP=1的情况下,VC33处于所谓的微计算机/引导加载模式).我们的VC33处理器有两种运行模式:微处理器模式(Microprocessor&nbsp;Mode)和微计算机/引导加载模式(Microcomputer/Bootloader&nbsp;Mode).以下把微计算机/引导加载模式简称为微计算机模式.区别我们的VC33运行于何种模式下,只要看看我们的电路板中VC33的第125脚的MCBL/MP是接低电平(微处理器模式)还是高电平(微计算机模式)就行了.<br />
&nbsp;&nbsp;为什么要把程序写入0x1000开始的地址处呢?这就是上面为什么介绍了VC33处理器运行的两种模式,因为目前我手上的板子就是MCBL/MP=1,VC33运行于微计算机模式下,所以0000h~0FFFh保留为引导加载程序.什么意思呢?这样认为:虽然我的FLASH接到了VC33的PAGE0,但是VC33本身固化好了自己的引导程序在地址0h~0FFFh地址处,所以FLASH的0h~0FFFh实际上就不在起作用了.也就是说在此种情况下,在000&nbsp;0000h~03F&nbsp;FFFFh地址空间中,0h~0FFFh用的VC33内部的ROM,而此后的1000h~03F&nbsp;FFFFh用的就是我们外接的FLASH啦.<br />
&nbsp;&nbsp;VC33的启动顺序是先检测INT3(第119脚)->INT0(第122脚)->INT1(第121脚)->INT2(第120脚),哪个有效(指低电平有效),就会加载对应的地址中的程序.如果INT3有效,就从串口加载程序;如果INT0有效,就从1000h地址处开始加载;如果INT1有效,就从400000h地址处开始加载;如果INT2有效,就从FFF000h地址处开始加载.因为我要从1000h地址处开始加载程序,所以一开始要保证INT3为高电平,INT0为低电平才不至于走到INT3时就停止下来,呵呵^_^.&nbsp;至于我说的这部分内容,如果有质疑可以参看官方的手册:<a&nbsp;href="http://www.ti.com/litv/pdf/spru031f"><span&nbsp;class="techdoc1">TMS320C33&nbsp;User's&nbsp;Guide</span></a>,见Chapter&nbsp;11中P365页的图11-1.&nbsp;需要注意的一点就是在加电引导过程中MCBL/MP必须一直保持高电平.<br />
]]></description><author>Eastar</author><link>http://www.suseng.cn/Blog/Eastar/Article/172.Aspx</link><pubdate>2008-6-4 16:55:19</pubdate></item><item><title>总是进入00000045 08684040 LDI 4040h,AR0</title><description><![CDATA[<font&nbsp;face="Arial">当我把.out文件加载到内存后,F5运行发现不正常,总是停在"&nbsp;00000045&nbsp;08684040&nbsp;LDI&nbsp;4040h,AR0"处.&nbsp;后来就在成功加载后,单步执行F8,发现直接来到"&nbsp;00000045&nbsp;08684040&nbsp;LDI&nbsp;4040h,AR0",然后再也无法往下执行.&nbsp;这种现象让迷惑了很久,经过无法次的尝试找到了解决方法,或许这不是最好的方法,但是却很有效.<br />
经过多少次的无法正常运行之后,让我养成了这样的习惯:<br />
1>&nbsp;File->Load&nbsp;Program,加载我们的.out文件.<br />
2>&nbsp;F8单步执行一次,如果直接来到"&nbsp;00000045&nbsp;08684040&nbsp;LDI&nbsp;4040h,AR0"处的话就继续往下看第3布；如果没来到上面的地方就不用往下看了,因为你很幸运^_^<br />
]]></description><author>Eastar</author><link>http://www.suseng.cn/Blog/Eastar/Article/168.Aspx</link><pubdate>2008-5-16 10:37:46</pubdate></item><item><title>如何安装开发TMS320VC33的Code Composer</title><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;<font&nbsp;size="2">谨以此篇送给正在考虑开发TMS320VC33的朋友们，希望能在此解除你的疑惑并节省时间去做更有意义的事情。我这里使用的是Co.购买的TDS510-USB2.0&nbsp;DSP仿真器.</font></div><br />
<div><font&nbsp;size="2"><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">&nbsp;&nbsp;&nbsp;</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">首先安装</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">C3XC4X</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">文件夹下的</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">Setup.exe</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">文件</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">,</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">启动</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">Setup.exe</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">后的画面如下所示</span><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt">:</span></font></div><br />
<p&nbsp;align="center"><font&nbsp;size="2"><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt"><img&nbsp;alt=""&nbsp;src="http://www.suseng.cn/files/eastar/cc10.gif"&nbsp;/></span></font></p><br />
<div><font&nbsp;size="2"><span&nbsp;style="FONT-SIZE:&nbsp;10.5pt"></span></font>
]]></description><author>Eastar</author><link>http://www.suseng.cn/Blog/Eastar/Article/167.Aspx</link><pubdate>2008-5-6 21:48:53</pubdate></item><item><title>CCS的牛脾气</title><description><![CDATA[我的是TMSVC320VC33的CCS，发现要按下面的规矩做，否则就编译出错：<br />
<p>1.定义变量要靠前。如果你把某个变量定义放在了执行语句后，那就不行。<br />
<p>2.在*.cmd中注释要使用/*&nbsp;注释&nbsp;*/。&nbsp;如果你使用//注释，人家CCS也不同意。<br />
<p>3.待遇到&nbsp;….<br />]]></description><author>Eastar</author><link>http://www.suseng.cn/Blog/Eastar/Article/166.Aspx</link><pubdate>2008-4-26 15:21:26</pubdate></item><item><title>DSP中C语言嵌套汇编</title><description><![CDATA[直接在C方程式中写入:<br />
asm("&nbsp;***&nbsp;");&nbsp;//&nbsp;***,就是汇编语句<br />
是不是很简单？呵呵。说到DSP中的汇编语句，不得不指出这里的汇编语句和我们其他的汇编不太一样。它的目标操作数在右边，源操作数在左边。<br />
E.g:&nbsp;AND&nbsp;0EFFH,IF&nbsp;//是将十六进制0EFF与IF寄存器中的数进行按位"与"操作后，再赋值给IF寄存器。本句的实际意义就是清除IF寄存器的BIT8，使BIT8中数据为0。<br />
]]></description><author>Eastar</author><link>http://www.suseng.cn/Blog/Eastar/Article/163.Aspx</link><pubdate>2008-4-25 8:31:13</pubdate></item></channel></rss>
