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级控制。
阅读(1059) | 评论(0) | 转发(0) |