Chinaunix首页 | 论坛 | 博客
  • 博客访问: 581753
  • 博文数量: 208
  • 博客积分: 3286
  • 博客等级: 中校
  • 技术积分: 1780
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-24 20:38
文章分类

全部博文(208)

文章存档

2012年(7)

2011年(28)

2010年(21)

2009年(76)

2008年(65)

2007年(11)

我的朋友

分类:

2010-01-26 12:56:52

AT89C51SND1核心的MP3部分功能寄存器的中文说明 精华帖

 

 

 

UEPINT(USB Endpoint Interrupt Register:USB端点中断寄存器)

寄存器地址:BDH

0位至2位为中断标志位,当相应端点的中断触发后,对应位置1。

AT89C51SND1C有3个端点,端点0进行控制传输,端点1作Bulk-in传输,端点2作Bulk-out传输。当相应端点的中断被触发,也就是要求进行相应的传输时,对应位置1。USB程序采用中断查询方法,不断查询对应位是否被置1,当查询到中断发生时,即开始进入中断处理,启动要求的传输。

3位至7位保留,通常值为0,不要把它们置1。

UEPNUM(USB Emdpoint Number Register:USB端点号寄存器)

寄存器地址:C7H

0位:EPNUM0

1位:EPNUM1

0位和1位构成一个2位的二进制数,表示本次操作将对应的端点。当读写UEPSTAX、UEPDATX、UEPCONX和UBYCTX()等寄存器时,用这个2位的二进制数表示读写对应的端点。

2位至7位:保留,通常值为0,不要将它们置1。

CKCON(Clock Control Register:时钟控制寄存器)

寄存器地址:8FH

7位:保留,通常值为0,不要将其置1。

6位:WDX2,监视器(看门狗)时钟控制。此位置1后,AT89C51CSND1C的内部振荡器产生的时钟信号二分频作为监视器输入。清除此位(置0)外部的时钟信号作为监视 器的输入,这时依靠X1引入外部时钟信号。

5位、4位、3位:保留位,通常从这些位读到的信号是不确定的,不要把它们置1。

2位:T1X2,计时器1时钟控制位。置1后,振荡器时钟二分频后作为计时器1的时钟输入。清除此位外部的时钟信号作为计时器1的输入。

1位:T0X2,计时器0时钟控制位。置1后,振荡器时钟二分频后作为计时器0的时钟输入。清除此位外部的时钟信号作为计时器0的输入。

0位:X2,系统时钟控制位。清除此位,选择每个机器周期为12个时钟片段(STD模式)。置1后,选择每个机器周期为6个时钟片段(X2模式)。

PLLCON(PLL Control Register:锁相环控制寄存器)

寄存器地址:E9H

7位至6位:R1-R0,系统的时钟因子R的最低的2位。

5至4位:保留,通常从这些位读到的值如果是0,不要把它们置位。

3位:PLLRES,PLL复位。置1,PLL复位。清0后,PLL不受复位控制,且允许PLL使能。

2位:保留,通常从这一位读到的值是0,不要把它置位。

1位:PLLEN,PLL使能位,置1,PLL使能。

0位:PLLOCK,PLL锁定控制位。置1后,PLL锁定。

PLLNDIV(PLL N Divider Register:PLL分频因子N寄存器)

寄存器地址:EEH

7位:保留,通常从这一位读到的值是0,不要把它置位。

6-0位:存放PLL的7位分,频因子N。

PLLRDIV(PLL R Divider Register:PLL 分频因子R寄存器)

寄存器地址:EFH

7位-0位:存放PLL的10位分频因子R的高8位。即7-0位分别为因子的R9-R2。

PLL:AT89C51SND1的PLL是利用一个外部的低频的时钟(这里是用的AT89C51SND1C的振荡器时钟),产生一个内部的高频时钟信号。这个PLL时钟信号用作MP3解码器,音频接口和USB接口的时钟。PLL时钟信号与片上振荡器时钟信号的关关系用下式表示:

PLLclk={OSCclk*(R+1)}/(N+1)

其中,R和N是两个特定的因子,R为一个10位二进制数,高8位存放在PLLRDIV中,低2位存放在PLLCON中,N为一个7位二进制数,存放在PLLNDIV中。这样,可以通过研究晶振频率,设定PLLCON、PLLRDIV、PLLNDIV寄存器的值而确定PLL的时钟信号。

USBCON(USB Global Control Register:USB控制寄存器)

寄存器地址:BCH

7位:USBE,USB使能位。置1后,使能USB控制器。清0后,禁止并复位USB控制器,同时禁止SB收发器和USB控制器时钟输入。

6位:SUSPCLK,USB时钟挂起位。置1后,禁止所有使用的48MHz的时钟输入。清0后,使能对应的输入。

5位:SDRMWUP,发送远程唤醒位。置位后会触发一个USB控制器的中断,并发送远程唤醒。此位被软件清除。

4位:保留,通常从这一位读到的值为0,不要把它置1。

3位:UPESM,上行数据流继续标志位,只读。当SDRMWUP位被置位,而且RMWUPE位使能后,硬件置此位。上行数据流发送结束后,硬件清除此位。

2位:RMWUPE,远程唤醒使能位。置位后,使能发送向主机的上行数据流请求。注意:如果主机没有向设备发送DEVICE_REMOTE_WAKEUP。

1位:CONFG,配置位。在接到一个非0值的SET_CONFIGURATION的请求后,此位应被系统固件置位。当接收到0值的配置请求时,此位被硬件清除。当系统硬件复位或在总线上监测到USB复位时,此位也被清0。

0位:FADDEN,功能地址使能位。在成功地进行了SET_ADDRESS的传输后,此位被硬件置位。当系统硬件复位或在总线上接收到USB复位时,此位被清0。当这一位被清0后,相当于设备没有被配置地址,设备的功能地址与刚插入USB口时一样,都为0。

UEPCONX(USB Endpoint X Control:USB端点X控制寄存器)

寄存器地址:D4H

7位:EPEN,置位后根据设备配置使能对应的端点。在硬件复位或USB总线复位后,端点0应该总是使能的。

6位:NAKIEN,NAK中断使能位。置位,使能NAK IN或NAK OUT中断。

5位:NAK OUT,当一个NAK握手信号发送以回应主机的OUT请求时,此位被硬件置位。当NAKIEN被置位后,将触发一次USB中断。这一位需软件清除。

4位:NAKIN,当一个NAK握手信号被发送以回应主机的IN请求时,此位被硬件置位。当NAKIEN被置位后,将触发一次USB中断。这一位需软件清除。

3位:DTGL,数据状态位。当接收到DATA1包时,硬件置此位。当接收到DATA0包时,此位清0。

2位:EPDIR,端点方向位。

1-0位:EPTYPE,端点类型控制。置此域可确定对应端点的传输类型。

00:控制端点

01:同步传输端点

10:批量传输端点

11:中断传输端点

UEPREST(USB Endpoint FIFO Reset Register:USB端点FIFO复位寄存器)

寄存器地址:D5H

7-3位:保留,通常从这些位读到的值是0,不要把它们置位。

2位:对此位置1后再清除,可使端点2的FIFO复位。

1位:对此位置1后再清除,可使端点1的FIFO复位。

0位:对此位置1后再清除,可使端点0的FIFO复位。


UEPIEN(USB Endpoint Interrupt Enable Register:USB端点中断使能寄存器)

7-3位:保留,通常从这些位读到的值是0,不要把它们复位。

2位:置1后,端点2中断使能。

1位:置1后,端点1中断使能。

0位:置1后,端点0中断使能。

USBADDR(USB ADDRESS Register:USB地址寄存器)

寄存器地址:C6H

7位:FEN,功能使能位。置1使此寄存器功能使能。当接收到一个USB复位并且进行后面的设备配置时,设备固件应把此位置1。

6位-0位:USB地址。这里存储主机为连接的USB设备配置的地址。

由于地址0只用于配置过程中,每一个刚插入的USB设备的默认地址为0,并通过这个地址与主机通信,实现配置过程,所以主机最多可连接127个USB设备。

UEPSRAX(USB Endpoint X State and Control Register:USB端点X状态及控制寄存器)

寄存器地址:CEH

7位:DIR,方向控制。只有端点是控制端点时此位才有作用。

6位:RXOUTB1,当一个新的包被存入端点FIFO的data bank1时,此位被硬件置位,如果端点中断被使能而且后续的OUT包被拒绝了,端点中断就会被触发,直到这个位被清除。在从FIFO中读走了OUT数据后,这一位应通过固件清除。

5位:STALLRQ,STALL握手请求位。置此位,发送一个STALL应答,以准备一次同主机的握手。

4位:TXRDY,在一个包被写入端点的FIFO并将做Bulk-in传输时,此位置1。只有此位被清除后,数据才能写入FIFO。置此位却没有向端点写入数据,会发送一个长度为0的包。当一次传送结束而最后传的包又等于最大长度时(直观上看不出传输结束了),就需要再发送一个这种长度为0的包来表示传输结束。

3位:STLCRC,当一个STALL的握手请求信号通过置STALLRQ位发出后,此位硬件置位。如果在UEPIEN中使能了相应中断,对应端点的中断就会被触发。当接收到一个SETUP包时,硬件自动清除此位。

2位:RXSETUP,接受SETUP包中断标志位。当一个来自主机的有效的SETUP包被接收到硬件时置此位。然后寄存器的其余位会被硬件清除,如果UEPIEN中使能了相应中断,对应端点的中断也会被触发。从端点的FIFO中读出了SETUP的数据后,软件将其清除。

1位:RXOUTB0,与RXOUTB1相对应。当一个新的包被存入端点的FIFO的data bank 0,此位被硬件置位,如果端点中断被使能而且后续的OUT包被拒绝了,端点中断就会被触发,直到这个位被清除。在从FIFO中读走了OUT数据后,这一位应通过固件清除。

0位:TXCMP,在一个IN的包由同步端点传输并被主机接收到之后,此位被硬件置位。如果在UEPIEN中被使能,相应的中断就会被触发。给TXRDY置1之前需将TXCMP软件清0。

MP3VOL (MP3 Audio Volume Control Left:左声道音量控制寄存器)

寄存器地址:9EH

7-5位:保留

4位-0位:VOL4-VOL0,五位数据对应相应左声道的32级音量。

MP3VOR (MP3 Audio Volume Control Right:右声道音量控制寄存器)

寄存器地址:9FH

7-5位:保留

4位-0位:VOR4-VOR0,五位数据对应相应右声道的32级音量。

MP3BAS(MP3 Audio Bass Control MP3重低音控制寄存器)

寄存器地址:B4H

7位-5位:保留

4位-0位:BAS4-BAS0,对应重低音的32级控制。
阅读(1048) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~