学者之家电子论坛--打造电子工程师共同致富的平台's Archiver

开发板之家 发表于 2010-1-3 16:23

如何利用QQ2812开发板结合书《TMS320F281X DSP原理及应用实例》学习

第一天


拿到板子,首先对照装箱清单,确认一下购买的东西是否缺少;
其次认真阅读一下用户手册,看看自己的学习在软硬件上还缺少什么;
认真阅读用户手册,这步一定要做,很多人拿到板子手册也不看,就开始动手,结果可能造成一些不必要的麻烦;
认真阅读用户手册一遍后,准备硬件,按照手册要求连接,上电,然后将所有程序都按照手册要求运行一遍,确实所有实验现象都跟手册描述一致;
先不要烧写flash,因为在你没没有特别清楚之前,避免盲目烧写可能导致的锁死2812芯片;
粗略研看一下原理图,大致了解都有那些内容,各块图纸分别是什么含义,结合用户手册看最好。

开发板之家 发表于 2010-1-3 16:24

第二天

将开发板原理图分页打印一份,方便阅读;
翻看书籍第一章;
了解DSP基本知识后,仔细研究P6 表1.1 F2812管脚功能和信号描述,对照原理图看,以表格顺序,将开发板用到的管脚在原理图上都标注出来,这样基本能够了解了DSP大致有哪些管脚,哪些功能,开发板有哪些用到了,哪些没有用,能做到心中有数。
有些管脚的含义没看懂也没关系,大致了解即可,后面还会再看到;
P15的图1.4,图1.5要认真看,看懂了对于2812的整体存储器架构就基本明白,对于后面学习cmd文件格式也会有帮助;
P26开始介绍的XINTF寄存器看一下各个bit的含义,粗略过一遍之后,对照我们提供的程序看,效果更好。打开一个工程,在Source目录下找到DSP28_Xintf.c文件,对照里面的语句和书本上寄存器的含义说明,看一遍,从底层了解DSP的初始化。没有完全看懂也没关系,了解底层驱动的初始化有助于建立DSP整体概念。
学习是一个逐渐深化的过程,需要粗看-细看-粗看-细看,反复看书和代码、图纸,综合研究学习,慢慢就会达到融会贯通的水平,因此千万不要心急。

开发板之家 发表于 2010-1-3 16:24

第三天

翻看书第二章;
P40的2.2代码安全模块粗略过一遍,了解即可,不必深究。尤其在深入研究2812之前不要轻易去做加密工作,以免误操作造成锁死,带来不必要的麻烦;
P46的时钟、锁相环、看门狗设置,要结合工程中的DSP28_SysCtrl.C代码看,这样能更加直观的了解每个寄存器的含义,只看书也记不住,也理解不深;

开发板之家 发表于 2010-1-3 16:24

第四天

打开实验1目录下的工程CpuTimer0.prj
看定时器部分把书P56过一遍,然后结合DSP28_Cputimers.c, DSP28_Cputimers.h理解定时器的寄存器定义。
真看看懂main.c的代码,都看明白了可以尝试做简单修改,深入理解定时器的含义。

开发板之家 发表于 2010-1-3 16:24

第五天

看GPIO,书P61,把寄存器定义大致过一遍;
打开EX04_SPI_LED下的工程SPI_LED.PJT,参看Source文件夹下的DSP28_Gpio.c和Include文件夹下的DSP28_Gpio.h,再结合书上P71的代码,理解一下GPIO的设置;
最后结合main.c看明白程序,理解一下SPI的应用。
这里可以顺便看一下DSP28_SPI.c,SPI的相关内容可以从网上搜索,或者参考其他书籍。
P72系统配置看一下即可。

很多知识不要指望看一次就能记住,学会,而是知道有这么个东西,大致什么功能,很多在其他程序中都会用到,到时候读代码的时候,不明白的再回来对照翻书,比如GPIO的设置,这样很多次之后,就会记忆的很深刻了。

开发板之家 发表于 2010-1-3 16:24

第六天

书P76的中断扩展PIE,这部分要认真看,因为很多兄弟上学的时候估计都不一定学好,这部分也是需要认真理解的,几乎每个程序都会用到。
找一个使用中断的试验,比如试验1定时器0,打开EX01_CpuTimer0。
PIE配置寄存器请结合书上寄存器定义,代码DSP28_PieCtrl.c,DSP28_PieVect.c以及DSP28_PieCtrl.h,DSP28_PieVect.h一起看,这样理解清楚。看看如何初始化,设置等。
PIE矢量表在书的第6章还会讲到,中断这部分需要反复看,反复对照消化。

开发板之家 发表于 2010-1-3 16:25

第七天

书P91开始讲AD转换器,ad是控制系统里最常用的技术之一,通常原理都大同小异,只是寄存器的控制各不相同。
这里要强调的就是2812的ad输入范围是0~3v,很多网友就是输入过高电压导致ad烧毁甚至芯片烧毁。
打开实验Ex20_ADDA的工程dac.prj,方便对照学习。
这里DA部分可以暂时不看,不影响,因为我们主要是学习AD,等有时间了再单独看DA。
把书上的内容过一遍,结合DSP28_Adc.c和DSP28_Adc.h来理解ad的寄存器定义和如何初始化。理解清楚,结合dac.c,理解ad的转换过程,如何触发,如何取得结果。这部分也要看看原理图和代码注释,能够更好的理解。
通常2812的ad精度不够,过采样是常用的软件技巧,结合各种滤波算法,能够有效的提升采样精度,这些也都是做产品时需要的。

我们提供的例子采用顺序采样模式,获得的ad结果对应关系为:
//ADCA通道分别对应DSP的AD寄存器为0,1,2,...,6,7
//ADCB通道分别对应DSP的AD寄存器为8,9,10,...,14,15
而书上的例子采用的是同时采样模式,获得的ad结果对应关系为:
//ADCA通道分别对应DSP的AD寄存器为0,2,4,...,12,14
//ADCB通道分别对应DSP的AD寄存器为1,3,5,...,13,15
同时采样模式书上讲的较少,请结合书上的程序,看明白后,可以尝试修改我们提供的代码,看看实验的结果,加深采样模式的理解。

开发板之家 发表于 2010-1-3 16:25

第八天

直接跳到第五章,先学习串行通讯接口SCI。异步串口是最常用的一种接口之一,使用较为简单也比较通用。
看书P183,了解一下串口的寄存器名称、地址以及结构。
P194的寄存器定义了解之后,打开实验EX11_RS232的工程,对照DSP28_Sci.c理解SCI的初始户和各个寄存器的定义,再把main.c看明白。书里程序也可以参看一下,加深理解。
这里注意一下波特率是怎么计算的,自己可以根据公司计算一下。
SCIB与SCIA的程序基本一样,大家可以打开EX12_485的实验看看,仅仅是硬件电路上稍有区别。

wanffeng 发表于 2010-2-24 18:42

感谢分享!

guiyang 发表于 2010-3-7 00:21

谢谢,学习了!

页: [1]

Powered by Discuz! Archiver 7.1  © 2001-2009 Comsenz Inc.

302 Found

302 Found


nginx/1.8.0