1 初探OMAP3530

    技术2024-11-16  39

    1 初探OMAP3530

     

    我在大二的上学期接触了ARM这类处理器,在学习其汇编指令集之后,发现她的汇编语言编程思路和C语言的特别接近,后来才知道,这款处理器是为C语言而设计的,于是,便深深的爱上了ARM这个体系结构。在之后的不断学习中,了解到ARM比较新的CORTEX-A8体系结构以及基于这个体系结构的处理器OMAP3530,特别想买一块板子学习。但是作为穷学生,总共2000多元的花销对我来说,可谓是巨资。存了好久的钱,终于在去年(2010年)国庆节的时候如愿以偿。下面这张图片就是我的学习平台。

     

     

    1 SBC3530

    1.1 OMAP3530与TPS659xx简介

    OMAP3530是TI公司推出的一款多核处理器,采用 720 MHz ARM® Cortex™-A8 内核与 520 MHz TMS320C64x+™ DSP这个芯片使用的是1.8V的电平,因此在和许多外设通信时需要电平转换。在看这个芯片的数据手册时,还会发现:哎呀,这么牛的芯片怎么会没有AD、DA这些东西?原来TI把这些东西放在了他的电源管理芯片上,一般情况下,OMAP3530会与电源管理芯片TPS65930(也可以由TPS65950代替)一起工作,它们之间通过I2C总线进行通信。TPS65930是一个“贤内助”,不但提供系统所需要的时钟、各种电源,还提供了A/D、D/A、键盘扫描、PWM、少量的GPIO等功能。值得说明的是:一、TPS65930/50虽然提供了USB接口使用的5V电源,但是最大值才有100mA,因此通常不使用这个LDO;二、SD卡接口1和2的C/D引脚是由TPS65930/50管理的,OMAP3530是支持SD卡启动的,在SD卡启动过程中,会不会通过TPS659xx来检查卡片是否插入呢?如果是这样,那使用小型的microSD卡槽(只有8个引脚)又该如何处理?目前这两个问题还不清楚。

     

    1.2 OMAP3530的数据手册如何查找(以下资料来至网络,部分链接可能无效,我只把我觉得常用的标识出来)

    1.2.1 TI官方资源  

    TI中文主页:http://focus.ti.com.cn/cn/tihome/docs/homepage.tsp或者http://www.ti.com从“处理器”链接可以链接到每个芯片的资料主页,比如:http://focus.ti.com.cn/cn/docs/prod/folders/print/omap3530.html或者直接访问www.ti.com/omap3530可以下载数据手册,应用文档,用户手册,开发工具等等。

     

    1.2.2 开发环境和软件开发包下载  

    (1)建议大家注册一个myti,方便下载一些软件开发工具和资料,并可以设定邮箱提醒http://my.ti.com

    (2)CCS等升级  

    https://www-a.ti.com/downloads/s ... ServiceReleases.htm

    (3)软件开发包BIOS、CODEC ENG,FC,DSPLINK,NDK,xDais,Linux BSP等https://www-a.ti.com/downloads/s ... tcontent/index.html

    (4)媒体算法和wince的bsp,现在从TI的网站上可以免费下载:http://www.ti.com/requestfreesoftware

    (5)版本更新:http://www.ti.com/myregisteredsoftware

     

    1.2.3 TI相关开源资源:  

    (1)很有用的wiki网页,下面三个域名是一样的:http://wiki.davincidsp.comhttp://wiki.omap.comhttp://tiexpressdsp.com

    (2)XDC/RTSC是完全开源的项目:http://wiki.eclipse.org/DSDP/RTSC  

    (3)TI Linux OMAP community,可以下载内核等代码,不需要注册  

    http://linux.omap.com

    (4)TI E2E社区,现在人气可能还不够旺,但是有问必答  

    https://community.ti.com/forums/32.aspx

     

    1.2.4 OMAP和Davinci第三方相关资源:  

    (1)OMAP开源共享http://www.61ic.com/code/forumdisplay.php?fid=291&page=1

    (2)OMAP3所用的code sourery开发工具链,免费下载http://www.codesourcery.com/gnu_toolchains/arm/download.html

    (3)OMAP正式发售EVM资料,由于是mistral做的板子,需要从mistral下载相关资料http://downloads.mistralsolution ... MAP3/Documentation/

    (4)LogicPD ZOOM SDKhttp://www.logicpd.com/products/ ... ap3_development_kit

    (5)Spectrum Digital - 很多DSP的开发板和仿真器可以从这儿下载资料和升级,包括davincihttp://support.spectrumdigital.com/

    (6)Blackhawk - 有些560的仿真器需要从这儿下载驱动和升级 http://www.blackhawk-dsp.com/

     

    1.2.5 开源社区beagleboard相关资源

    (1)beagleboard

    beagleboard主页:http://beagleboard.org/

    beagleboard wiki主页:http://elinux.org/BeagleBoard

    beagleboard 代码下载:http://code.google.com/p/beagleboard

    beagleboard 硬件手册:

    http://www.beagleboard.org/uploads/Beagle_HRM_B4.pdf

    beagleboard 硬件设计资料(包括原始原理图和allegro PCB):

    http://beagleboard.org/hardware/design

    (2)OpenPandora

    OpenPandora相关资源:

    http://openpandora.org/

    OpenPandora WIKI:

    http://pandorawiki.org/Main_Page

    (3)RealtimeDSP的miniEVM,是beagleboard的低成本克隆:  

    http://elinux.org/Mini_Board

    http://elinux.org/MiniBoardFAQ

    kernel更新和文件下载

    http://code.google.com/p/omapminiboard/

     

    1.2.6 其他相关资源  

    (1)OMAP3515和OMAP3530带3D硬件加速,采用的是imaganation的PowerVR IP核,支持OpenGL ES1.1和ES2.0,可以从下面的网址下载SDK,支持linux和wince版本http://www.imgtec.com/powervr/insider/powervr-sdk.asp

    文档和API手册参考OpenGLES的标准及其相关文档:

    http://www.khronos.org/opengles/

    (2)JVM : 有针对OMAP3平台的JVM可以直接用,很方便  

    http://openjdk.java.net/  

    (3)流媒体软件框架 Gstreamer

    http://gstreamer.freedesktop.org/

    基于DMAI的GST在TI处理器上的版本

    http://gstreamer.ti.com

    https://omapzoom.org/gf/project/gstreamer_ti/

    Gstreamer porting on Google's Android

    http://groups.google.com/group/prajnashi?hl=en&pli=1

    (4)ARM有基于Cortex-A8的Codec库,封装进了OpenMax框架,针对只有Cortex-A8内核的OMAP处理器是很有用的,因为该 Codec库使用了Neon加速器,可以做Player用。

    http://en.wikipedia.org/wiki/OpenMAX

     

    1.2.7 一些图形文件系统移植:  

    (1)Android

    http://elinux.org/Android_on_OMAP

    http://beagleboard.org/project/android/

    https://omapzoom.org/gf/project/omapandroid/wiki/

    http://labs.embinux.org/android-porting-on-beagle.html

    (2)Debian

    http://elinux.org/BeagleBoardDebian

    (3)Ubuntu

    http://elinux.org/BeagleBoardUbuntu

    (4)Angstrom

    http://www.angstrom-distribution.org/demo/beagleboard

     

    1.3 如何查看OMAP3530的手册

    TI的东西很好,但是手册很多,并且东一个西一个的,让人不知道该如何看。下面总结一下:

    (1)如何操作处理器内部资源

    OMAP35xx是一系列处理器,它们的内部寄存器的地址、功能等是差不多的,因此要想了解内存映射或知道如何操作OMAP3530的GPIO、定时器等,需要查看《OMAP35x Applications Processor Technical Reference Manual》(文档号SPRUF98),这个手册看着挺吓人的,3000多页,但是并不需要全部看,需要用到什么看什么。

    此外,TPS659xx也有部分GPIO,如何操作TPS659xx的内部资源,首先要关心OMAP3530与TPS659xx如何使用I2C通信的;其次,再关心TPS659xx的内部寄存器是怎么样的。有关文档《TPS65930/TPS65920 OMAP™ Power-Management and System Companion Devices Technical Reference Manual》(文档编号SWCU052)或《TPS65950 OMAP™ Power-Management and System Companion Devices Technical Reference Manual》(文档编号SWCU050)。

    (2)芯片的硅片版本(Silicon Revisions)不一样,内部寄存器地址等可能不一样,OMAP3530的版本是3.1,(1)中提到的这个文档的内容对OMAP3530完全适用,暂时不需要去关心Silicon Revisions的文档,在以后看u-boot或linux代码时遇到硅片版本条件判断的代码,按照版本3.1的那条路径走就可以了。

    (3)各个芯片都有一个数据手册,这个手册是讲芯片的电气特性,封装等信息,对硬件制作有用,只搞软件就不用看了,下面列举这些手册:

    《OMAP3530/25 Applications Processor》(文档编号:SWCS032)

    《TPS65930/TPS65920 Integrated Power Management/Audio Codec (TPS65930 Only) Data Manual》(文档编号:SWCS037)

    《TPS65950 Integrated Power Management/Audio Codec Data Manual》(文档编号:SWCS032)

    特别需要注意的是OMAP3530有多个封装,有些封装甚至在芯片的顶面也有引脚,我们常用的是CUS封装的芯片。

    (4)TI提供了几个比较有用的文档,在画原理图和布线时可以参考:

    《Powering OMAP™3 With TPS65930/20: Design-In Guide》(文档编号:SWCU059)这个文档是告诉TPS65930与OMAP3530如何连线。

    《采用TPS65950为OMAP™3供电:应用设计指南》(文档编号:ZHCU013)这个文档是告诉TPS65950如何与OMAP3530连线,中文版的资料。

    《TPS65930/TPS65920 Layout Guide》(文档编号:SWCU058)或《TPS65930/TPS65920 Layout Guide》(文档编号:SWCU055)这两个文档对电源芯片的布线进行指导。

    《OMAP3530 Easy CUS Package PCB Escape Routing》(文档编号:SPRAB13)这个文档对CUS封装的OMAP3530如何布线进行指导。

    (5)对上面的内容总结一下

    由于我比较感兴趣的是比较偏底层的东西,上面只列举了部分文档,还有许多文档,例如与DSP有关的、与多媒体有关的,以及一些软件和源代码均可在http://www.ti.com/omap3530上找到。所有有关寄存器如何设置的资料全部在名字中有“Technical Reference Manual(技术参考手册)”的手册中,数据手册只是电气特性、封装等信息。

     

    1.4 OMAP3530的内存映射

    按照习惯,在学习一款新的处理器时应该先把内存是如何分配的搞清楚,具体的信息可以参考《OMAP35x Applications Processor Technical Reference Manual》(文档号SPRUF98)(这个文档会被经常用到,以后简称《OMAP35x TRM》)的第二章(Memory Mapping)的表2-1(199页)。

    4GB的内存刚好被分为4个部分,每部分1GB。

    (1)Q0:GPMC的空间,主要用于Flash;

    (2)Q1:主要是芯片内部的资源。起始(0x4000 0000)的80KB为内部的ROM,存有固件,有了这个固件,我们才可以从Nand Flash或SD卡启动。之后从0x4020 0000开始的64KB为内部的SRAM,OMAP3530的一级启动代码就被加载到这个SRAM中运行,之后的L4部分的寄存器用于外设,L3部分的寄存器用于系统控制,还有一个IVA2.2是DSP的寄存器。

    (3)Q2:外接的RAM就从这里开始,但是只有两个Bank,每个Bank最大接512MB。

    (4)Q3:是一些虚拟地址,可以映射到别处,想了一想,这样还是比较合理的,因为在ARM系统中,Linux使用的是高地址的中断向量(0xFFFF 0000开始),刚好座落在这个地方,通过设置,可以把这处的地址映射到别出去。

     

    1.5 OMAP平台的一些名词

    (1)GPMC:General-Purpose Memory Controller,通用的存储器控制器,用于连接Nand Flash、SRAM、Nor Flash、OneNand、网络控制器(Lan9220);

    (2)SDRC:SDRAM Controller,即连接SDRAM的接口;

    (3)PCRM:Power, Reset and Clock Management,即电源、复位和时钟管理模块。

     

    最新回复(0)