这里我们关注一下两个位,第5、6位RXNE和TC。RXNE(读数据寄存器非空),当该位被置1的时候,就是提示已经有数据被接收到了,并且可以读出来了。这时候我们要做的就是尽快去读取USART_DR,通过读USART_DR可以将该位清零,也可以向该位写0,直接清除。TC(发送完成),当该位被职位的时候,表示USART_DR内的数据已经被发送完成了。如果设置了这个位的中断,则会产生中断。该位也有两种清零方式:1)读USART_SR,写USART_DR。2)直接向该位写0。
4.3 DM9161用法介绍
DM9161AEP是一款完全集成的和符合成本效益单芯片快速以太网PHY,是采用较小工艺0.25um的10/100M自适应的以太网收发器。DM9161AEP通过可变电压的 MII 或 RMII 标准数字接口连接到 MAC 层,支持 HP Auto-MDIX?。是目前常见的一款物理层收发器,由于全球的MCU集成度不断提高,由早先的MAC+PHY+MII的衍生到现在的PHY,在以太网部分的成本,逐渐降低。有如下特点
1.48pin LQFP封装
2.制作工艺:0.25um,IO供电电压3.3V,模拟部分2.5V 3.支持MII和RMII连接方式(推荐使用MII) 4.支持双绞线自适应(AUTO-mix) 5.支持TCP/IP硬加速
6.与全球95%的厂家的MCU完全兼容,是ATMEL推荐使用的单口PHY。 注:目前DM9161AEP支持的温度范围是0-75°,而工业级的DM9161BIEP是支持-40°到85°。在应用过程中,DM9161AEP常出现的错误是,晶振的连接,以及网络变压器的匹配,所以应该慎重选择。DM9161引脚图如下所示:
- 16 -
图4.11 DM9161引脚图
4.3.1 DM9161引脚说明
16脚 TXER/TXD [4]:输入脚,传输错误或者是第五个TXD数据位,在100兆模式下,此脚为高,同时TXEN为高,暂停信号代替实际的数据。在10兆模式下这个输入脚被忽略,在旁路模式下(旁路4B5B)此脚变成TXD[4]脚,第五个TXD的数据 of 5B信号。
20,19,18,17脚 TXD [0:3] 发送数据,4位数据输入(与TXCLK同步)在10兆或者100兆的半字节模式,在10兆的GPSI模式(7线)下,TXD [0]被用作串行数据输入脚,TXD [1:3]被忽略。输入脚即芯片发送数据给它,它接收后再发送。
21脚TXEN:传输使能,高电平表示TXD [0:3]上数据是合法的在10兆或者100兆模式下。在10兆的GPSI模式(7线)下,高电平显示TXD [0]上数据合法。
22脚TXCLK/ISOLATE:输出脚,当刚上电时是输入脚,拉低,发送时钟脚,为TXEN, TXD, and TXER. TXCLK的传输提供时钟参考,有PHY提供。25MHZ是100兆半字节模式,2.5兆是10兆半字节模式,10兆是10兆GPSI (7-Wired) mode(说是7线好像只用单线传输)。ISOLATE的设置是:当上电复位时是输入,0:寄存器0.10将被初始化成0,1:寄存器0.10将被初始化成1.
24脚MDC:输入脚,管理数据的时钟脚,MDIO管理数据的同步时钟,这个时钟由管理芯片提供,最大12.5MHZ.
25脚MDIO:输入/输出脚,双向的管理数据可能被管理芯片或者PHY提供。 29,28,27,26 RXD[0:3]/PHYAD[0:3]:三态输出,上电输入,拉低,在10/100兆MII模式四位输出(与RXCLK同步)。在10兆的GPSI模式(7线)下,RXD [0]脚是串行数据输出脚,RXD [1:3] are ignored,PHY address [0:3],上电复位成输入脚,PHY地址检测输入脚。
32脚 MDINTR:输入/输出,上电输入,拉低,状态中断输出脚,当有一个状态改变(包括link, speed, duplex depend on interrupt register [21])即由状态改变同时中断也设置了,才会输出。如果原来是低,则中断时输出高,如果是高则中断时输出低。
34脚 RXCLK/10BTSER:三态输出脚,上电输入,拉高,接收时钟由PHY提供时间参考为RXDV, RXD, and RXER.。PHY可能从接收的数据中恢复RXCLK参考,或者从25MHZ在100M MII模式下,2.5MHZ在10M MII模式下,10MHZ在 10Mbps GPSI (7-Wired) mode。10BTSER仅支持10M模式(上电输入),0 = GPSI (7-Wired) mode in 10M mode,1 = MII mode in 10M mode
35脚CRS/PHYAD[4]:三态输出,上电输入,拉低,载波感应检测或者
- 17 -
PHYAD[4],在10 BASE-T或者100BASE-TX的半双工模式下,高电平表示载波的存在是因为接收或者传输有效(正在进行中)在repeater或者全双工模式下,这个信号置高显示载波的存在仅仅因为接收有效此脚作为PHYAD[4](上电输入)PHY地址感应输入脚。
36脚COL/RMII:三态输出,上电输入,拉低,冲突检测,在10M或者100M的半双工模式,高电平显示冲突状态,在全双工模式,此脚一直为低。简化的MII使能脚,此脚也用来选择正常的MII或者简化的MII,(上电是输入),0是正常的MII(默认),1是简化的MII,此脚经常被拉低,除非用于简化的MII。
37 脚RXDV/TESTMODE:三态输出,上电输入,拉低,接收数据合法,高电平显示合法的数据在RXD [0:3]中,测试模式控制脚(上电输入)0是正常的操作(默认)1为测试模式使能。
38脚 RXER/RXD[4]/RPTR:三态输出,上电输入,拉低,接收数据错误或者5B情况下第五个接收数据位,高电平显示一个不合法的符号被检测到,在解码旁路模式(旁路4B5B)RXER变成RXD [4],5B符号的第五个接收数据位。这个脚也可以用来选择Repeater or Node mode.(上电输入)0 Node Mode (default),1 Repeater Mode.
31 LEDMODE:LED模式选择,0,支持双灯,1正常的灯 40 RESET#:低电平用来初始化DM9161A 3,4脚 RX+RX-:输入脚,差分数据从媒体被接收
7,8脚 TX+ TX-:输出脚,差分传输对,差分数据被传输到媒体,在TP模式下。 11 脚 LED0/OP0:输出脚,上电输入,上拉。LED驱动输出0,op0:上电复位输入,此脚用来控制强制的或者是公布的操作模式,在上电后此值被写入寄存器。
12脚 LED1/OP1:输出脚,上电输入,上拉。LED驱动输出1,op1:上电复位输入,此脚用来控制强制的或者是公布的操作模式,在上电后此值被写入寄存器。
13脚 LED2/OP2:输出脚,上电输入,上拉。LED驱动输出2,op2:上电复位输入,此脚用来控制强制的或者是公布的操作模式,在上电后此值被写入寄存器。
10 脚 PWRDWN:输入脚,掉电控制,高电平强制芯片到掉电模式,在掉电模式下大部分芯片的模块被关电,仅MII管理接口(MDC, MDIO)可利用(PHY对管理传输有用,在MII上不会产生假信号),要想离开掉电模式必须用软件或者硬件复位让PWRDWN脚为低。
14脚 CABLESTS/LINKSTS:输出脚,上电输入,下拉,Cable Status or Link Status,此脚用来显示上电复位为输入的时候Cable是否是连接状态,0没有Cable连
- 18 -
接,1有Cable连接。此脚也被用来显示上电复位输入为高的时候LINK的连接状态,0有LINK,1没LINK39 DISMDIX:HP自动翻转,1自动模式失效,0使能HP自动翻转
4.3.2 DM9161标准协议说明
DM9161A,快速以太单芯片传输,按IEEE 802.3u,标准,完整的100Base-TX模式和10Base-T模式,芯片提供一个MII借口按标准IEEE 802.3u,包含功能:
图4.12 DM9161标准协议
TXD是4位半字节数据,被TXCLK驱动,在TXEN使能情况下,每一个TXCLK始终TXD (3:0) 通过PHY被接收
TXCLK(传输时钟)不间断时钟提供时间参考为TXEN, TXD, and TXER信号。 TXEN传输使能,从物理层输入,显示物理层MII接口传输是存在的。 TXER(传输码错误)与TXCLK同步,如果TXER在一个或多个时钟中置位,同时TXEN置位,PHY将发出一个或更多的信号在正在传输的数据帧中。
RXD,4位数据被采样与RXCLK同步,每一个RXCLK,RXDV被置位,RXD (3:0)被传输从PHY到物理层。
RXCLK(接收时钟)输出到物理层的不间断时钟为RXDV, RXD, andRXER signals.提供参考。
RXDV(接收数据合法)从PHY输入,显示PHY存在恢复的和解码的半字节数据在物理层上,为了正确的被层解释接收帧,RXDV必须围绕着帧,开始不能晚于开始帧分隔符,不包括任何结束帧分隔符
RXER(接收错误)转变与RXCLK同步,RXER将被置位在一个或更多的时钟周期当检测到任何一个错误在 从PHY到物理层的被传输过程中。
- 19 -
相关推荐: