微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机实现以太网接口-基于RTL8019

单片机实现以太网接口-基于RTL8019

时间:11-18 来源:互联网 点击:

IMR,设置为屏蔽所有中断

SelectPage(1);//选择页1的寄存器

REG07=0x4d;//寄存器CURR,设置为指向当前正在写的页的下一页(用作写指针)

/*多址地址寄存器MAR0-MAR7均设置为0x00 */

REG08 = 0x00;// MAR0

REG09 = 0x00;// MAR1

REG0a = 0x00;// MAR2

REG0b = 0x80;// MAR3

REG0c = 0x00;// MAR4

REG0d = 0x00;// MAR5

REG0e = 0x00;// MAR6

REG0f = 0x00;// MAR7

GetPhyAdd();//获取以太网物理地址

REG00 = 0x22;//选择页0寄存器,执行命令。

}

/*上电后清除ISR寄存器*/

void ClearISR()

{

SelectPage(0);

REG07 = REG07|0xff;

}

/*获取以太网物理地址*/

void GetPhyAdd()

{

uchar tmp;

SelectPage(0);//选择页0

REG08 = 0;//远程DMA起始地址低位寄存器RSAR0,设置为0

REG09 = 0;//远程DMA起始地址高位寄存器RSAR1,设置为0

REG0a = 12;//远程DMA计数器低位寄存器RBCR0,设置为12

REG0b = 0;//远程DMA计数器高位寄存器RBCR1,设置为0

REG00 = 0x0a;//远程DMA,启动命令

SelectPage(1);//选择页1

tmp = REG10;//读取一个字节

REG01 = tmp;//写入PAR0

tmp = REG10;//读取一个重复的字节,这个字节被丢弃

tmp = REG10;//读取一个字节

REG02 = tmp;//写入PAR1

tmp = REG10;//读取一个重复的字节,这个字节被丢弃

tmp = REG10;//读取一个字节

REG03 = tmp;//写入PAR2

tmp = REG10;//读取一个重复的字节,这个字节被丢弃

tmp = REG10;//读取一个字节

REG04 = tmp;//写入PAR3

tmp = REG10;//读取一个重复的字节,这个字节被丢弃

tmp = REG10;//读取一个字节

REG05 = tmp;//写入PAR4

tmp = REG10;//读取一个重复的字节,这个字节被丢弃

tmp = REG10;//读取一个字节

REG06 = tmp;//写入PAR5

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top