BaseBand工作原理培训教材.doc_第1页
BaseBand工作原理培训教材.doc_第2页
BaseBand工作原理培训教材.doc_第3页
BaseBand工作原理培训教材.doc_第4页
BaseBand工作原理培训教材.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

培训资料baseband工作原理姓名密级部门日期审核 目录1硬件系统41.1adi ad20msp430 softfone基带方案系列41.2手机硬件系统框架42adi套片介绍52.1数字基带芯片 ad652552.1.1ad6525 内部架构52.1.2ad6525 mcu子系统简介62.1.3ad6525 dsp子系统简介62.1.4ad6525 外围子系统简介72.1.5gpio/gpo72.1.6gpio/gpo的选择与编程72.1.7gpio与外部中断82.1.8gsp92.1.9usc(通用系统连接接口)92.1.10boot code与手机程序下载102.1.11ad6525的地址空间、时序调节和地址选择102.1.12背光控制112.1.13按键功能122.1.14rtc功能132.1.15wdt(看门狗定时器)152.1.13jtag调试152.2ad6521功能162.2.1ad6521简介162.2.2耳机检测162.2.3通话过程182.3电源管理芯片 adp3522192.3.1adp3522芯片介绍192.3.2开关机过程202.3.3充电管理和电池保护212.4adi 主要套片比较222.4.1数字基带比较222.4.2模拟基带比较222.4.3基带方案组合233memory介绍233.1nor flash memory233.2nor flash memory 编程243.3nor flash与nand flash243.4t-flash与sd等存储卡简介254多媒体部分工作原理274.1lcd 显示器274.2camera工作原理274.2.1sensor简介274.2.2corelogic cl761sd工作原理介绍284.3多媒体协处理器系统简介294.4melody工作原理305参考资料306感谢301硬件系统1.1 adi ad20msp430 softfone基带方案系列我们目应用到的adi基带方案组合主要有: ad6522(hercules)+ad6521(pegasus)+adp3408 (l01系列主板) ad6525(athena)ad6521(pegasus)adp3522 (l02m04、l04m82系列主板) ad6525(athena)ad6533(typhoona) (lyra lc平台,a100、venus3项目主板) ad6525(athena)ad6537b(typhoonb) (lyra 平台, c200主板) ad6528(hermes)ad6535(typhoon) (nova平台,p100项目主板)其他相关芯片与别名:ad6526(athena 4m), ad6529(hermes)。1.2 手机硬件系统框架所有adi gsm基带平台方案基本相似,本文主要以ad6525+ad6521+adp3522组合为例进行说明。基带模块:数字基带(dbb)codec电源管理芯片(pmu)存储器(memory)sim卡32khz晶体按键(keypad)speaker+receiver振动马达(motor)。多媒体功能部分:和弦铃声芯片摄像头模组后端处理芯片(backend ic或称dsp)显示屏模块(lcm)。数字基带ad6525codecad6521电源管理 adp3522功放pa前端开关switch收发器transceiver后端芯片(dsp)lcdsensor铃声芯片按键外部存储器sim卡32k13m射频模块:天线前端开关(switch)功放(pa)收发器(transceiver)13mhz晶振。其他功能扩展数字基带ad6525内部包含mcu,dsp等,是手机的控制核心。所有的工作都在数字基带的控制下进行。ad6521是一个voiceband baseband codec,主要负责模拟与数字信号的转换和编解码等工作。电源管理芯片adp3522提供和管理几组基本电源。在adi的typhoon系列芯片中,已经把vbc和pmu合在一起,称为模拟基带。外部存储器由sram和nor flash存储器组成,我们一般称之为flash存储器。32khz晶体称为慢时钟,只要有电,该时钟就一直存在。13mhz晶体主要用于gsm/gprs射频模块用,也是数字基带运行所必须的快时钟。射频部分,收发器负责射频信号的发射和接受控制。功放是把要发射的信号放大,再经前端开关,从天线发射出去。多媒体功能是在基带模块上的附加应用。增加外设,在数字基带的控制下,实现附加的多媒体功能。2adi套片介绍2.1数字基带芯片 ad6525 2.1.1ad6525 内部架构ad6525是ad20ms430 softfone家族中的一员,是一个单片的可编程数字基带处理器,支持gsm900/dcs1800/pcs1900三频。最高支持14.4kbps的gprs,hscsd数据传输。ad6525由3个子系统组成:mcu子系统、dsp子系统和外围子系统。ad6525支持可编程电源管理和时钟管理,可以支持13mhz或者26mhz(在l04m82b板上是13mhz),在idle状态下使用慢时钟,进入省电模式。提供jtag接口。支持实时时钟。支持1.8v和3v两种sim卡。外围子系统包括系统的外围,例如中断控制器、实时时钟rtc、看门狗定时器(watch dog timer)、电源管理和时序控制等。也包含外围接口,例如 键盘、电池监测、射频和显示等接口。dsp和mcu都能通过pbus与外围子系统连接。dsp和mcu都能对内部sram和外部flash进行存取。对内部sram是通过sbus,对flash是通过ebus。子系统由各种总线连接在一起。总线仲裁模块(bam)处于各种总线的中心位置,负责各总线的仲裁。ebus,rbus和pbus是3个主要的总线。ebus:外部接口总线,用于外部flash存储器,外部sram存储器和其他外部设备。方便mcu和dsp从flash中读取代码和数据表。rbus:内部ram总线,接内部sram。pbus:外围总线,用于内部的外围系统,例如uart,rtc和sim等。除了3个总线之外,mcu和dsp都有自己内部的总线:sbus:系统总线,连接arm核心控制器和boot rom;iobus:dsp bus;dmabus:dma 总线。2.1.2ad6525 mcu子系统简介mcu子系统包含一个arm7tdmi中央处理器、boot rom、时钟产生器和接口控制模块。ad6525内置1mb sram。mcu子系统支持所有的gsm终端软件,包括gsm 协议栈,mmi和data service 应用,测试和维护等。arm7tdmi 处理器是一个32-bit高性能单指令周期risc芯片,工作频率为39mhz。其架构基于16/32 bit指令集,能支持16/32bit数据格式。它包含一个叫做“thumb”的优化过的16bit的指令集。我们手机正常工作时使用的就是thumb指令集,目前thumb在通信系统中应用非常广泛,但在arm 在boot 时使用arm 32bit指令。ad6525中,arm除了在39m时钟下工作之外,待机模式下使用32khz时钟。boot rom包含mcu与usc子系统间的通信代码。 boot rom用来初始化mcu和mcu与usc之间的通信。2.1.3ad6525 dsp子系统简介ad6525的dsp子系统包含adi的adsp-2183(dsp),数据存储器(dm)和程序存储器(pm),串口和其他i/o口等。adsp-2183包含一个viterbi coprocessor、ciphering coprocessor和存储控制器。它是16-bit fixed point dsp 处理器,可以达到78 mips。内置dsp专用数据和程序sram,支持full speed,enhanced full speed 和 half speed 音频编解码,支持pdc语音算法。dsp子系统主要负责语音处理(speech processing),信道均衡和信道编解码。用于实现这些功能的代码存放在外部flash中,在需要的时候动态地下载到dsp 的program ram 和instruction catch 中。dsp通过vsport,bsport与数字基带连接(例如ad6521)。2.1.4ad6525 外围子系统简介外围子系统主要包括mmi group, house keeping group,gsm-system group和dsp direct memory access四部分。dsp direct memory access是给dsp对其他存储器进行存取数据使用的。mmi是一个完全的用户接口集合。包括keypad,display,backlight,rtc,gpio/gpo,电源管理接口,sim卡模块和usc等。house keeping 包含传统的微处理器的一些外围功能,例如,wdt(watch dog timer),通用定时器,中断控制器等。gsm system interface包括time base generation 和synthesizer interface,组成rf控制器。另外包括32khz慢时钟模块。 该模块中的microsm (micro state machine),是一个完全可编程的时序控制模块,用它来对rf模块进行控制,实现严格的rf时序。为了节电,在idle模式下,microsm会把13mhz时钟切换为32khz慢时钟。2.1.5gpio/gpogpio,通用输入输出口;gpo,通用输出口。gpio/gpo可以通过寄存器进行配置,实现不同的功能,除了基本i/o功能之外,还有alt1, alt2, alt3三种其他功能。2.1.6gpio/gpo的选择与编程gpio/gpo由以下几个寄存器来控制:功能选择,输出和输出使能,输入和输入使能。这些控制寄存器的基准地址是: 0x80040000。gpio/gpo功能选择:gpio/gpo输入输出控制:ad6525复位后,gpio的缺省状态主要有三种:输入、输出高电平、输出低电平。在缺省为输入时,需根据外部的连接方式确定是高电平或者是低电平。在缺省为输出时,再分为输出高电平或者输出低电平(芯片内部上拉或者下拉),根据不同的需求选用gpio/gpo口。虽然gpio/gpo都可以有多种用途,但最好不要随便改变。许多gpo是用于rf控制的,在jtag状态下,rf模块关闭,许多gpo禁用,不能通过软件来控制。 例如: gpo4:0,gpo11:7就不能使用。需要在仿真模式下调试的,不要选用这些gpo。2.1.7gpio与外部中断ad6525可以作为外部中断输入的gpio口是:电平中断信号: gpio_4、8、30、32边沿中断信号: gpio_5、6、31、32,其中gpio_32兼具两种类型的功能。在设计时,请注意是电平还是边沿中断,以便选择合适的gpio口。2.1.8gspad6525包含5个gsp(generic serial port)模块,地址映射在pbus上。每个模块都支持一些串口。有些gsp支持全速双工通信。每一路都包含 instruction ram、psm(programmable state machine)和bit counter。其中本地psm和时钟分频是共用的。psm执行一些指令,在相应的gspx的信号端口上实现指定串口的协议。这些指令包含流程控制、时序与电源控制和接口控制命令等,这些指令的长度为8bit,有些还需要参数。可以用这些指令建立一个二进制文件,在需要使用的时候,下载到相应gsp中。gspx模块功能要实现,必须使用ad6525的外围i/o口。gspx与使用的端口对应关系如下表:序号模块可以使用的端口典型应用说明1gspausc;uart2gspbusc ; gpio_0,1,2,3;uart (debug 串口)3gspcgpio_14,15,16,17;4gspdausc ; gpio_10,11,12,13;i2cgspdbusc ; gpio_6,7,8,9;5gspegpo_16,17,18,19,20,21;synth(rf)其中, gspa、gspb、gspda、gspdb都可以使用usc端口,gspc只能使用特定的几个gpio。当然,同一时间只能有一个gsp使用usc。可以利用gspx的功能实现例如i2c,spi,uart等串口。例如:重配置(reconfigure)gpio_1,3为gspb端口实现rx,tx,主要用于gprs版本手机的debug用;重配置usc为gspb端口用于程序下载;重配置gpio_10,11为gspda端口,实现i2c时序等等。2.1.9usc(通用系统连接接口)usc,即universal system connector interface,有7根信号线,usc6:0。usc具有多种功能,可以重定义用作实现一些gsp功能。我们常用到的功能有:a.boot mode和下载程序;b.uart,debug和附件接口;c.gpio口ddai音频测试接口和射频测试接口等等。usc在系统启动阶段缺省是boot/debug模式,如果下载程序,则为编程模式。其他时候可以设置为uart和其他串口。例如用于主板测试,手机与pc机通信交换数据(在pc机端使用pc manager软件)。2.1.10boot code与手机程序下载ad6525 reset之后,arm7都是从bootcode rom开始执行。此时只有mcu子系统和ebus可用,dsp子系统并没有开始工作。dsp是在mcu的控制下工作的。程序下载过程可以分为几个个阶段:a. 上电启动:我们是使用ad6525的usc端口给手机下载程序。下载线中的充电电源线给手机的充电,打开了电源管理芯片的电源输出,在ad6525 reset之后,系统从boot rom中启动。mcu以arm 32bit指令执行。b. 检测同步字节:bootcode 把usc设置为boot/debug功能模式(就是被重定义作为gspb的端口),上电复位大约50ms以后,bootcode通过gspb检测同步字节,如果检测到有同步自己输入(由pc机端下载程序发出),ad6525与pc端下载程序建立通信,把usc设置为flash编程模式;如果40ms以后还没有检测到,则bootcode终止,程序指针跳到ebus flash地址(即romcs片选线选中的flash)上启动,这就是手机正常的启动方式。c.配置寄存器:pc机端下载程序与ad6525建立通信后,将直接对ad6525相关寄存器进行配置。d.下载“flash programmer”:通过ad6525的usc2:1(对应gspb的tx/rx),pc机端下载程序把“flash programmer”下载到ad6525的内部sram中。e.下载“flash code”:“flash programmer”下载完成后,arm重新把程序指针定位到内部sram中,开始运行“flash programmer”程序,把usc重新配置为高速串口,先对flash进行擦除,再把pc机端传送过来的“flash code”下载到flash中。实现手机程序的下载。程序下载后,正常开机时,就是使用“flash code”来启动了。2.1.11ad6525的地址空间、时序调节和地址选择ad6525的mcu的地址空间使用情况如下:(r03为例)。dsp的地址空间映射与mcu相似,下面主要讨论mcu的地址空间。序号地址类型ad6525提供的片选信号线地址说明1flash片选1/cs_rom0x0100000064mb2flash片选2/gpcs1 0x20000000 64mb3sram片选/ramcs0x0800000032mb外部ram4midi片选/displaycs 0x10000000 5dsp片选(camera功能)/cs_main (由/gpcs0与add08译码产生)0x18000000 /gpcs0的地址是: 0x180000006主屏片选由dsp给出,与dsp的地址相同0x180000007副屏片选/cs_sub 0x180001008iram地址内置ram0x400000001mbebus 接口有一套寄存器,可以调节时序,基准地址是: 0xc0001200。有些外围器件对时序有特定要求,需要修改ad6525的时序来满足外围器件的时序要求。在驱动调试中,往往第一步就是检查和调节时序,使ad6525与外围器件通信成功。例如设置gpcs0的时序,要读取当前的寄存器值: unsigned long data;data= *( (unsigned long*)( 0xc0001200+0x0c ) ) ;写入寄存器, *( (unsigned long*)( 0xc0001200+0x0c ) ) =data;dispcs本来用作lcd的片选,但在实验中,我们发现不好控制,所以改用gpcs0来做lcd片选。如果通过软件调节还不能满足要求,例如地址线与/cs建立时间的间隔要求,则可以考虑在需要调节的信号上增加合适的rc来调节时序。在硬件设计中要考虑地址线负载的平衡性,例如低地址线, add01,变化的频率是最高的,而地址线越高,变化的频率会越低。高速数字信号对rf的影响很大,在翻盖手机中,送给上盖lcd的地址线以前采用的是add01走线很长,对rf干扰很大,在新的地址线数目较少的外围器件,建议采用高位地址。2.1.12背光控制ad6525能提供给pwm控制方式的背光信号有:gpo22: backlight0 (alt1) gpo23: backlight1 (alt2) gpio12: backlight2 (alt2) 由于背光控制信号能够输出波形,我们也可以考虑使用上面的gpio/gpo口输出不同频率的时钟信号。上述3个gpio/gpo用作pwm输出时,控制寄存器为: output frequency = input frequency (frequency sel + 1) ; 输入频率可以是32khz,也可以是13mhz。 frequency sel =1127mark/space ratio = (dutycycle + 1) (frequency sel + 1); dutycycle frequency sel 1个周期背光控制线电平为高时,背光灯亮,为低时,背光灯暗,由于频率很高,肉眼感觉不出。调节占空比(在一个周期内,调节亮的时间)可以改变灯的亮度。亮的部分时间比例越大,平均亮度就越高。如果100为高,就相当与一直为高,灯就是一直亮,当然亮度是最高的。反之,如果一直为低,灯就一直是灭的,当然亮度就最低,灯灭。但使用pwm不能达到100的亮度。上面所谈到的,是指要求使用pwm波形控制的的背光驱动方式,可以采用该三个端口,如果不是pwm方式,当然可以选其他端口。另外,上面三个端口也可配置为非pwm方式。在adi typhoon系列芯片中,模拟基带也提供了背光控制信号线,其基本原理与上面相同。2.1.13按键功能keypad接口由一组三态的keypadcol输出和一组keypadrow输入组成。row内部有上拉电阻,电平为高。检测按键输入是对按键进行扫描,从colx输出低电平,如果对应colx上的哪个键被按下,则按键所在的rowy会输入低电平,产生中断信号。通过colx与rowy,就可以定位到相应的按键。2.1.14rtc功能ad6525提供一个rtc模块。由oscin和oscout之间接一个32khz的晶体来实现提供 32khz的时钟。使用rtc可以实现时钟和日历显示、闹钟、定时开机等功能。rtc由vddrtc供电,功耗很低,在电池不在时,使用贴片式备用电池供电。目前我们使用的备用电池可以工作16-18小时左右。rtc它包含一组积存器,是timer,alarm,control 和status四种。寄存器的基准地址是0x80180000。rtctr(rtc timer) 是一个40bit计数器,该寄存器只能读和reset清零。给它写入任何数据都会导致清零,所以为了防止误操作,都对它进行写保护。rtc使用32khz时钟,每个周期1/32khz=31.25us,那么timer的计数范围为 240*31.25us/(60*60*24)=397天(约等于)。rtcar(rtc alarm register)是alarm寄存器,24bit。间隔为2秒。写入数据时先写低16bit,后写高8bit。rtcar 24bit会与rtctr的低24bit会进行比较,一旦相同,就会触发 alarm中断,就会把ad6525的pwron拉高2秒钟。拉高pwron会导致开机,但在alarm中断函数中对power相关相关寄存器进行设置,把pwron一直拉高,否则超过2秒,rtc就会拉低pwron。rtccr(rtc control register) 是rtc控制寄存器。rtcsr(rtc status register)是rtc状态寄存器。对rtctr和rtcar操作时,需要按照一定的顺序使用control和status寄存器万完成整个操作过程。下面对我司手机adi平台手机的rtc的一些基本操作思路进行简单说明。a.设置日期时间:由于rtctr只能读和复位,为了保存时间,在nvram中保存一个基准的时间(basetime)。设置时间时,其实是把用户设置的“年月日小时分钟”等信息写到nvram中,然后对rtctr进行复位清零。设置成功后rtctr开始计数。前面提到rtctr的计数范围为397天,如果超过397天怎么办?把当前时间更新到到nvram中的基准时间中,再复位清零,重新开始计数就行了。在重新设置时间时,如果存在有效的闹钟,则根据新的情况再次设置闹钟。b.读当前时间:读取rtctr中的数值,再加上nvram中的基准时间,就得到了当前的时间信息。c.切换时区:切换时区一般是以小时为单位进行切换,所以只需要把nvram中的基准时间进行加减操作,再保存进行了。不需要重新设置rtctr。d.设置闹钟:rtcar只有一个寄存器,其实通过软件配合可以设置许多不同种类的闹钟。例如目前我们用到的定时闹钟,每周7天的闹钟时间是一样的,但可以选择哪天有哪天没有。用户设置闹钟时,把设置的闹钟的时间存到nvram中,对需要设置闹钟的的时间进行排序,选择一个离当前时间最短的时间来设置闹钟(当然是当前时间之后,软件上验证)。设置闹钟的时间不能超过24bit寄存器能计数的范围。首先清除alarm中断使能,允许操作rtcar,然后从读取rtctr和nvram的基准时间得到当前时间,与需要设置的闹钟的时间进行比较,算出差值(差值肯定是正数)。再把当前时间加上差值写入到rtcar寄存器中,当然,只有低24bit有效。再检查rtcar是否设置成功,成功后关闭rtcar操作使能,打开alarm中断。闹钟设置完成。e.闹钟中断处理:rtcar会与rtctr进行比较,比较有效的24bit内容,相同时触发中断。如果处于开机状态,手机就进行相关处理。如果手机处于关机状态,则ad6525把pwron拉高,实现开机,在开机程序或者中断中把pwron一直拉高,开机成功,然后继续处理闹钟的操作。实现了闹钟的功能。手机再从闹钟队列里找到下一个最近的闹钟时间,把新的闹钟时间设置到rtcar中。这样就实现了多个闹钟的功能。2.1.15wdt(看门狗定时器)看门狗定时器在系统复位后启动(仿真跟踪测试除外),以217hz的频率进行计数,就是每4.615ms计数1次。在使用13mhz时,使用13mhz时钟分频(13mhz/60000=217hz),使用慢时钟时,使用32khz分频(32khz/151=217hz)。wdt计数1024次之后,timer out 后产生系统复位信号,就是说,wdt的timer out 时间是 4.72s。为保证系统正常运行,必须在4.72s以内喂狗一次(清除wdt计数)。可以使用wdt早期预警中断, 打开使能后,wdt计数512次就会产生一个wdt中断,约4.72/22.36s。2.1.13jtag调试边界扫描技术(jtag)是为了满足当今深度嵌入式系统调试的需要而被ieee1149.1标准所采纳,全称是标准测试访问接口与边界扫描结构(standard est access portand boundary scan architecture)。jtag遵循1149.1标准,是面向用户的测试接口,是arm处理器调试的基础。arm和其他一些32位嵌入式处理器的调试方式也基本上遵循这个标准。这个用户接口一般由4个引脚组成:测试数据输入(tdi)、测试数据输出(tdo)、测试时钟(tck)、测试模式选择引脚(tms),有的还加了一个异步测试复位引脚(trst)。ad6525还提供一个jtagen,jtagen接高电平时,ad6525进入jtag模式。所谓边界扫描就是将芯片内部所有的引脚通过边界扫描单元(bsc)串接起来,从jtag的tdi引入,tdo引出。芯片内的边界扫描链由许多的bsc组成,通过这些扫描单元,可以实现许多在线仿真器的功能。根据1149.1的规定,芯片内的片上调试逻辑通常包括一个测试访问接口控制器(tap)。它是一个16状态的有限状态机以及测试指令寄存器、数据寄存器、旁路寄存器和芯片标识寄存器等。在正常模式下,这些测试单元(bsc)是不可见的。一旦进入调试状态,调试指令和数据从tdi进入,沿着测试链通过测试单元送到芯片的各个引脚和测试寄存器中,通过不同的测试指令来完成不同的测试功能。包括用于测试外部电气连接和外围芯片功能的外部模式以及用于芯片内部功能测试(对芯片生产商)的内部模式,还可以访问和修改cpu寄存器和存储器,设置软件断点,单步执行,下载程序等。可以通过边界扫描操作测试整个板的电气连接,特点为表面贴元件提供方便;各个引脚信号的采样,并可强制引脚输出用以测试外围芯片;可以软件下载、执行、调试和控制,为复杂的实时跟踪调试提供路径;可以进行多内核和多处理器的板级和芯片级的调试,通过串接,为芯片制造商提供芯片生产、测试的途径。虽然jtag调试不占用系统资源,能够调试没有外部总线的芯片,代价也非常小,但是由于jtag是通过串口依次传递数据,速度比较慢,只能进行软件断点级别的调试,自身还不能完成实时跟踪和多种事件触发等复杂调试功能。ad6525有nomal, emulation和tracking三种运行状态。emulation和tracking在接特定仪器的状态下运行。ad6525在jtag状态下是上电复位(power-on-reset),不受reset信号影响。我们使用jtag功能主要对手机程序进行跟踪,对一些外围功能进行调试。2.2ad6521功能2.2.1ad6521简介ad6521,称之为vbc(voiceband baseband codec),主要功能是实现基带和语音数字/模拟转换功能。ad6521与ad6525的主要有3个串行接口:bsp(baseband seriel port), vsp(voiceband seriel port)和asp(auxiliary/control seriel prot)。对ad6521的控制是通过asp进行的。与三个接口对应的功能模块分别是 baseband codec, voiceband codec和auxiliary codec & control。baseband codec: 支持多通道操作,差分输入输出,gsm gmsk调制解调,2通道10bit d/a,2通道a/d转换器,10bit ramp d/a转换器等。voiceband codec:完全线性codec,两通道带滤波16bit a/d转换器,两通道带滤波 16bit d/a转换器。完全microphone和speaker驱动能力,增益完全可编程,支持多种标准速率下的转换。auxiliary section: 13bit afc d/a转换器,用于频率校正;10bit 充电电流检测a/d转换器;6个通道的10bit a/d转换器。2.2.2耳机检测对ad6521的控制指令全部是通过asp口传送给ad6521的。对耳机的检测就是通过asp端口,使用auxiliary section中的一个10bit a/d来检测是否有耳机插入的。检测vinauxp,即耳机麦克正极的电压,来判断耳机是否插入。目前我们的耳机检测的原理是这样的:耳机的麦克作为分压电阻进行分压,偏置电压为adi电压管理芯片输出的vana,检测耳机时对该分压进行adc采样得到采样值,根据不同的采样值即可知道三种状态。下图为耳机检测的简化示意图。(以下数据以m368为例,不同项目会有不同。)a. 不插耳机:此时由于没有耳机mic进行分压(或者认为分压电阻无穷大),此时用示波器测量得到采样点的电压为2.55v,用genie软件跟踪得到读到的原始采样值为2350左右。b. 插入耳机:耳机麦克为分压电阻,用示波器测试采样点电压为1.90v,genie跟踪读到的原始采样值为1950左右。c. 耳机按键按下:相当于把mic短路到地,用示波器观察,由于接近于地,难以准确读到电压值。genie跟踪得到的值为几十。这样划可以分为三个区间。现在就是如何合理设置这三个区间。也就是如何确定x1和x2。由于耳机麦克不是纯电阻,所以用不同万用表测得的电阻会有差别;另外在耳机上加了不同的电压后,耳机mic的阻抗值也会有变化。故单纯规定耳机mic阻抗值和采样范围实际操作起来也有困难。所以必须用实际耳机的上限和下限进行测量、读采用值后才能得到较为可靠的软件区间划分参数。为了保证耳机能够迅速有效被检测到,在软件帧中断中检测耳机(以4.6ms的倍数为间隔)。2.2.3通话过程a.听到对方声音的过程:(蓝色虚线路线)从天线收到的信号,经rf模块解调成中频的iq信号,送到ad6521,ad6521对其进行a/d转换后,通过bsp接口送给ad6525的dsp进行解码。再通过vsp送给ad6521再进行d/a转换,从receiver或者耳机里还原出声音。这样就听到了对方的声音。b.把自己的声音发送给对方的过程:(红色粗线路线)差分iq信号,送rf发射来自rf的差分iq信号ad6525 dsp进行音频解码a/d转换送到rec或者耳机放出声音pnd/a转换来自mic的语音pna/d转换ad6525 dsp进行音频编码调制与d/a转换a/d转换ipinqpqnipinqpqnad6525ad6521来自microphone的语音进入ad6521进行a/d转换,通过vsp送到ad6525进行音频编码,再通过bsp送到ad6521进行gmsk调制和d/a转换成差分iq信号,送给rf模块,由天线发送出去。2.3电源管理芯片 adp35222.3.1adp3522芯片介绍adp3522是ad20msp430解决方案中的一个电源管理芯片。它包含6路ldo输出,控制开机,锂离子电池充电管理,rtc alarm等。供给memory,melody等参考电压充电控制部分接开机键供给rtc供给sim卡供给ad6525供给音频电路供给13mhz晶体vsim的电压可以通过vsimvse的电平来选择,我们目前使用的2.8v的sim卡。l04m82b板上adp3522提供的电压:名称vsimvcorevanvtcxovmemvrtcrefout输出电压2.85v1.80v2.55v2.75v2.80v1.5v1.21v最大电流20ma100ma180ma20ma150ma100ua50ua电池电压vbat在3.5v-4.2v之间,adp3522能够正常开机和工作。超过4.25v则可能损坏。低于3.5v不能开机。各种情况下的各种电源输出情况:321a. vrtc, 电池电压存在且vbat在 3.5v-4.2v之间时, vrtc一直存在,实时时钟rtc一直在工作.b. 充电状态下,除了vsim处于off状态,其他各路电压均打开。(没有开机的情况下充电,其实已经开机)c. 只要一按开机键(pwronkey键),除了vsim之外,其他电压均被打开。2.3.2开关机过程a开机过程:打开adp3522有3种方法:a.按下开机键(pwronkey键);b.pwrin拉到高电平;c.chrin电压大于电源电压,同时电源电压大于一阈值电压。所以说插入充电器时也能够开机。正常的开机是按开机键开机,只要按下开机键,除了vsim之外,其他ldo均被打开,vcore打开reset定时器,timer out之后,reset拉高,启动数字基带芯片ad6525,ad6525开始运行,它能开始轮询检测adp3522的rowx pin脚,并拉高adp3522的pwronin脚,一旦pwronin被拉高,这时,就可以释放开机键了。这就是按键开机的最初始的过程。实时时钟rtc也可以实现开机,就是因为rtc模块能够把pwronin拉高,打开除vsim之外的ldo,当然就能够开机了。以这种方式可以实现定时开机。b关机过程:由于数字基带已经能轮询检测rowx,开机键与其他按键的按下一样能被检测到,如果检测到开关机键按下超过1s,就可以关掉所有的ldo,切断了电源,就实现了关机。2.3.3充电管理和电池保护ddlo(deep discharge lockout):当电池电压小于2.9-3.0v时,ddlo会关掉,防止电池电压太低损坏电池。uvlo(undervoltage lockout):当电池电源uvlo时,以低电流进行充电,防止电池损坏。充电路径如下图中红线虚线所示:插入充电器后,有电路能检测到充电器插入,如果电池电压小于uvlo,则以涓流(或称滴流)(trickle charging)充电,充电电流大小为20mv/r1,进行充电(r06手机中r1=0.39),一直持续到电池电压超过uvlo。如果电池电压大于uvlo,当充电电压chrin高于电池电压vbat到100mv以上,则chrdet中断信号变为高电平,通知数字基带,同时开始以正常充电模式充电,电流大小为160mv/r1。电池电压上升到4.2v后,充电电流开始逐渐变小,当检测到充电电流小于ieoc(ieoc=14mv/r1)时,eoc产生高电平,报告充电结束。实际上锂离子电池充电都是由硬件完成的。vbatichargeeoceoc current涓流uvlo=3.2v4.2v高电流充电结束信号ddlo=3.0v2.4adi 主要套片比较2.4.1数字基带比较数字基带都与ad6522基本相似,功能和性能上进行了一些升级。芯片主要差别说明ad6522“hercules”, mcu=39mhz, dsp=78mhz,bootrom=1kbad6525“athena”,采用0.18um工艺,原叫(hercules.18),部分电压降低,bootrom增大到4kb,mcu=39mhz, dsp=78mhz,内部sram为1mb。13m或者26mhz时钟输入。ad6526“athena”,兼容ad6525,内部sram为4mb。ad6528“hermes”, mcu=52mhz, dsp=91mhz,再次增大bootrom, usb2.0,支持nand flash,mmc/spi接口,内部sram为2mb,26mhz时钟输入。增加一些gpio口。ad6529“hermes”, 兼容ad6528,内部sram为4mb。2.4.2模拟基带比较芯片功能说明ad6521+adp3522vbcpmu,前者提供codec功能,后者提供电源管理功能。ad6535“typhoon”,模拟基带,codec和电源管理功能,直接8欧姆speaker驱动能力,软件和弦,背光控制,立体声mp3,usb电源。有3路音频输出,3路音频输入。ad6533“typhoona”,支持buzzer,ad6535的低成本版本。ad6537b“typhoonb”,比ad6535少usb,mp3,与ad6535封装上兼容,ad6535的低成本版本。2.4.3基带方案组合低端: ad6525(athena)+ad6533(typhoona), 应用项目:venus3/ a100/a200等。高端: ad6528(hermes)+ad6535(typhoon), 应用项目: p100/a400等。3memory介绍3.1nor flash memory我们通常所说的flash memory都是指nor fash memory(如果没有特别指明,后面提到的flash都是指nor flash),而且是指mcp(mulit-chip package),即把nor flash momory和sram封装在一起成一个芯片,使用同一个外部接口。nor flash使用的是sram的接口,有足够的地址来寻址,可以找到任何一个字节。使用时就不需要把程序读到sram中,可以直接在nor flash 中运行。因nor flash的读速度很快,但擦写速度很慢,这也就是我们下载程序要花很长时间的缘故。目前使用的nor flash memory 主要有两种,一种以amd生产的或者是其他家生产的与amd兼容的一系列。现在另一种是以intel生产或者与intel兼容的类型。目前我们采用的是前一种。我们常用的128mb+32mb flash是由两片64mb的flash memory和psram(或者称之为fcram)叠加在一起的组成的器件。psram(或者称fcram)与sram是有差别的,内部使用的是dram的技术,而外部使用的是sram的接口,功耗上可能要增加,但成本减少了。目前的较大容量的sram都会用psram来代替。dual bank,flash中分成不同的bank,bank的大小可以不一样,32mb和64mb的flash一般分成两个bank,128mb的flash分成4个bank。cpu可以都对其中的一个bank进行编程或者擦除操作,然后接着对其他的bank进行读操作。从cpu看来,对flash的读写操作没有任何延迟。一般有两种方式: read-while-erase和 read-while-program。flash中的数据在125度的环境下可以保存20年。flash最少支持100,000次读写操作。一块flash分成多个sector,一般是8kb(4kw)和64kb(32kw)。其中8kb的一般用于存放校准信息,用户设置的参数等信息等,(在其他一些嵌入式系统中,8kb的小块用于存放boot代码等)。对flash进行erase(擦除)的最小单位是 sector,可以一次性对整个flash进行擦除,也可以单独对某一块或者连续几块进行erase。flash芯片的sector architecture有两种,bottom boot block和top boot block。8kb的小块在低地址,则称为bottom boot block, 反之,8kb小块处于高地址,则为top boot block。我们手机中主要用8kb存放校准信息等,64mb的flash中我们采用的是第top boot block的芯片。如果8kb的小块很多,则选择哪一种都无所谓了。nor flash erase之后,每个bit 都是1, 对它进行program时, 进行编程后,变成 0 或者1。 如果已经变成了0,则不能通过program变成1, 必须通过erase 才能变成1。flash的erase和program都需要时间,如果不采用dual bank方式,在erase的时候只能等待。目前为了支持大容量文件系统,没有使用dual bank,在实际使用中效果还不是很明显。3.2nor flash memory 编程由

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论