最新日志

发表于:2007-1-10 22:37:29
标签:main  

2

可以开始主程序了!

首先感谢几位来到我Blog的兄弟的支持和鼓励!

今天终于开始调试DSP的主程序了!工作量不小,但难度不是很大,主要包括片选不同的AD9858、片选FLASG和FPGA、Link口接发数据等等。由于我以前算法和编程还可以,所以几乎没费什么劲就搞定了。接下来,明天等师兄的板子调好了,就联调,希望一切顺利。

点击此处查看原文 >>

系统分类: DSP   |    用户分类: 无分类    |    来源: 无分类

评论(4) | 阅读(968)
发表于:2007-1-9 22:11:00
标签:AD9858  TS101  

1

好累好累好累!!凡事多波折

昨天不是说调试出一片AD9858有信号了么,于是组长一大早问我进展的时候,我就演示给她看,奇怪的是没有输出,捣鼓了一阵子,终于出来了想要的频率信号,但再改变频率控制字的时候又不行了,总是在随机的频率点上跳变,原本兴奋的心情,一下子跌到谷底!

这时候过来一个高手,给了一些建议,但我一点头绪都抓不到,心情也很烦躁。组长认为是硬件的问题,而我自信我的板子没有问题,我认为问题出在软件上。组长坚持她的意见,让我一次又一次的Run程序,她抓9858数据、地址、WR和FUD引脚的信号,结果很显然,肯定是一塌糊涂,她让我换片9858试试,我当时还是觉得是软件问题,并且快要吃午饭了,就没有换。

中午连午觉都没有睡,向高手讨教了一下,下午接着检查,反复检查了9858的引脚输入,没有问题,排除了硬件的出问题的可能。这时候师兄看了看我FPGA往9858写的程序,认为我的程序太繁琐(我在process里面加了时钟做敏感信号),说他有一次是把TS101的时序直接赋给了9858,任何额外的时序都没做,结果是对的(昨天谈到过:CPU、功能器件的WR时序是几乎一样的,但我为了谨慎,添加了额外的时序控制)。这个时候,高手过来看看我的DSP程序,建议我改一下写9858寄存器的方式。我按照他们的建议修改了,上电,一看,咦!!真的好了!!!看来,FPGA或者DSP的程序的确有问题。

紧张了一天的神经,终于可以轻松了,晚上请师兄吃饭,然后早点回家,洗洗衣服,这时,倦意才一起涌上来,感觉肋部都有些酸了,唉,做技术,苦啊!

这里,要提到我犯下的几个失误,一是,没有把9858的RD脚通过FPGA连到DSP上,否则可以利用TS101的外部数据读写功能直接看送给9858的频率控制字对不对,就不用逻辑分析仪那么麻烦了;二是,考虑问题一上来可以尽量简单,过分谨慎反而不好。

下面把我调试用的部分程序写一些,希望能对大家有所帮助。

代码:TS101写9858频率控制字程序.c

include

include

include

#define  FPGA  0x8000000

#define Addr 0x00

int i  ,  ii;

int FTW[34]={ ............};

main()

{

       _buildin_sysreg_write(_SYSCON,0x.........);

      _buildin_sysreg_write(_SQCTL,0x..........);

      for(ii=0;ii<34;ii++)

      {

            *((int *)(FPGA+Addr+ii))=FTW[ii];

      }

     _buildin_sysreg_write(_SQCTL,0x..........);

}

因为是凭记忆写的,难免有错误,并且,具体的值都记不大清楚了,大家包涵。

点击此处查看原文 >>

系统分类: DSP   |    用户分类: 无分类    |    来源: 无分类

评论(8) | 阅读(924)
发表于:2007-1-8 23:12:19
标签:AD9858  TS101  xc2v400FG456  

4

柳暗花明啊!!!!

今天一早我到了单位后,立即到处找仪器搭台子,心想一定早点弄出来!等把信号源、频谱仪、示波器都搞到后,就立即开始编控制AD9858输出的程序。一上来我走入了一个误区:以为TS101的WR周期和AD9858的存在较大区别,这样,我编程的时候就在FPGA里面控制AD9858的WR时序。这是相当复杂的!忙活了大半天,FPGA的VHDL程序总是编译过不了,心里也很郁闷。下午的时候,我问师兄为什么编译不了,他看了看,就告诉我其实TS101的WR时序可以代表AD9858的,也就是在FPGA里面直接把TS101的WRL给9858就行了,我于是才认识到,原来几乎所有的CPU的WR和功能器件的WR都是一样的时序啊!!(菜鸟,没办法,大家见笑)

很快,新的,更有效的程序编出来了。上电、馈时钟、测量,唉,没有输出!!心想,这很正常,第一次,就出信号,那才怪了,我又不是天才。

晚上请师兄吃饭,回来继续加班搞。先测了一下AD9858的FUD信号,我靠,一直都是高电平!我在DSP的程序里面是用FLAG控制FUD的,大家知道,FLAG是通过修改DSP程序控制寄存器的值赋值的,初始值大概1.8v,FPGA默认为高电平,于是FUD就一直被置高了,找到问题后,稍微修改了一下程序,重新上电加载运行程序,当时肯定也不会抱希望能出信号的,但,让人喜出望外的是:信号,真的出来了!!!

当时的高兴的感觉,现在已经无法用语言形容了,先是挨个的同事Show了一遍,大家都很为我高兴,我还拍了几张照片留念,^_^-------

想起早上的郁闷心情,正是柳暗花明啊!!

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类: 无分类    |    来源: 原创

评论(3) | 阅读(855)
发表于:2007-1-7 23:26:18
标签:小进展  跳帽  Spartan2E工作模式  

3

有了一点小进展

今天,一早去单位,把昨晚找到的max811比量了一下,打算自己焊上去:是有点难度(max811是很小的表贴器件),但想想有难度就是锻炼自己的机会,于是冒着把器件搞坏的危险开工了,还挺顺利,尝试了两次就焊上了。

然后看它的复位信号,正常了!于是重新烧FPGA的程序,重新运行DSP,嗯,复位是比以前稳定多了,Visal-DSP一下子就进去了。但可恶的是,FPGA仍然没有没有输出,看来,TS101复位仍然是上拉电阻给的。这时候师兄过来了,帮我反复检查了程序,组长也在一边督导,但程序显然没有问题。这时候,我们忽然想起来,FPGA的工作模式引脚是不是搞错了?Spartan2E系列的FPGA有三个引脚供选择不同的工作模式(主动串行或者从动串行等等),引脚接电平的高低不同决定不同的工作模式。我的板子应该配置成主动串行模式,我检查了一下,靠,果然是配置错了,我是用跳帽做开关选择的,于是立即把模式跳过来,重新运行,好了!!!!

这是一个小的进展,很开心,下午,晚上犒劳了一下自己,没有工作,^_^!

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类: 无分类    |    来源: 原创

评论(3) | 阅读(883)
发表于:2007-1-6 22:56:32
标签:max811  FPGA  TS101复位  

2

不是新问题,但是很让人郁闷!!!

今天本来想睡个懒觉,看看火箭的比赛的,但是组长打电话催我,搞得我手忙脚乱、连滚带爬的跑去加班。

到了以后向她汇报了一下昨晚上的成果:能找到TS101了,也能控制灯亮灯灭了,说明DSP的复位电路也是正确的了。于是上午忙了一下杂活,下午就开始做以下工作:从TS101向xc2v400-7FG456写数据,然后让后者直接转发给DDS,目的是检验一下DSP、FPGA和DDS的线路是否正常。但很不幸,每次都是失败,于是一点一点的检查到底是哪里出了问题:先是怀疑复位程序有问题,改了几遍,似乎可以了,但是结果依然,于是又检查FPGA的输出到底有没有信号,很有意思的是:没有!!

这时候就出现矛盾了:如果FPGA有问题,那DSP的复位怎么是好的(我是在FPGA里面写了一段程序给DSP提供复位的),如果FPGA没有问题,那为什么让它输出一个电平信号都没有??

在同事的帮助下,我们终于发现了FPGA自己的复位电路竟然是坏的:我用的是max811看门狗给FPGA复位信号,而max811的第二脚没有输出,也就是说FPGA根本就没有工作!!

那DSP自己怎么会在没有复位的情况下工作的了??我这时想起来我把TS101的复位脚(A20)上拉了,它在合适的情况下,可以凑巧完成复位赋予,这也解释了我的DSP有时可以找到,有时又找不到的现象了!

这不是一个新问题,因为我的师兄也碰到过,希望可以顺利搞定,明天我换一片max811再尝试一下。

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类: 无分类    |    来源: 原创

评论(2) | 阅读(1117)
发表于:2007-1-4 22:51:52
标签:困难  TS101  Xilinx  

3

看不到曙光!

这是我毕业后接手的第一个任务:硬件平台是以TS101为CPU,Xilinx的XC4000系列的一片FPGA作数据转发和时序控制,功能器件是三片DDS,AD9858。板子的功能是CPU产生AD9858的频率控制字和地址数据,经FPGA控制AD9858产生点频信号。

我大概用了两个月的时间才把硬件平台做好,毕竟是我作的第一块板子,一切从头开始,走了一些弯路,吃了一些苦,但好在在别人的帮助下,顺利把PCB交制出去了。上个周二,我拿到了装配好的板子,一上来心里还是忐忑不安的,唯恐哪里线布错了,或者出一些低级的错误,那就丢人了。于是拿回来立刻检查,很不幸,DSP内核供电的1.2v电源和地短路了-----

当天的网上,我反复推敲了电路板的各个地方,实在想不出哪里出了问题,正在一筹莫展的时候,我忽然想起来,我同事以前也做过一个TS101的板子,于是灵机一动就拿万用表量了一下他板子上1.2v和地的电阻,我靠,竟然比我板子的还小,检查短路,也是报警!!我心里踏实了:可能DSP内核的电阻的确很小吧。

于是,第二天打起精神来调FPGA和DSP的外围电路,那时我对ISE和Visal-DSP几乎一窍不通,一切都是硬着头皮一点一点摸索,不会的就问别人,但是大部分时间都不好意思,这也耽误了我的调试进度。

我大概用了一天时间,把FPGA和EPROM看了一下,学习操作了一下ISE,接下来我走了一些弯路:其中之一是我一上来没有调通DSP的外围电路,就开始编程序,后来转过头来单独调FPGA+DDS,后来,由于我对Visal-DSP不会使用,加之编程上也是一塌糊涂,所以,整整一个礼拜,我都在那里打转,最后,我的组长的催促起了作用,我手忙脚乱的学会了Visal-DSP,并且基本调通了DSP的控制程序(其实就是最简单的串口接发和点灯程序)。

点击此处查看原文 >>

系统分类: DSP   |    用户分类: 无分类    |    来源: 原创

评论(4) | 阅读(747)
发表于:2007-1-4 22:36:19
标签:感悟  菜鸟  日志  

1

开门帖

我很早就有这样一个念头,就是把自己工作学习的经历一点一点的记述下来,不光是技术经验的积累过程,也是生活回忆的记录。

点击此处查看原文 >>

系统分类: 生活点滴   |    用户分类: 无分类    |    来源: 原创

评论(0) | 阅读(532)
总共 , 当前 /