大家好,我有问题是在SAM4E16c上初始化MAC和PHY(ksz8081mnx)。主要目标是看看我是否可以从以太网获取信息,但不幸的是,我不知道如何从以太网读取数据。我是新手,我希望有人可以给我一些提示。
我使用的工具是Atmel Studio IDE和Atmel ICE编程工具。我创建的项目是使用Atmel Software Framework(ASF)。我安装了MAC和PHY所需的所有驱动程序(ksz8081mnx)。我按照GMAC驱动程序"快速入门指南"在这个网站上: http://asf.atmel.com/docs/3.35.1/sam4e/html/gmac_quickstart.html
我上传了草图,我通过查看路由器的客户端列表来测试它,如果我能看到MAC地址,但我没有。我不确定这是否是正确的做法,但我必须尝试。
我不确定我是否应该按原样初始化电路板。我从(sam4e16e xplained pro ASF)中获取了board_init示例。
这些GMAC外设寄存器位于SAM4E16C.H文件中,它们与(ksz8081mnx)芯片相对应,但没有在任何地方使用。 我应该以某种方式在board_init中设置它们还是应该像第一张图片中显示的那样将它们保留? PIO definition for GMAC peripheral
这些图片显示以太网芯片与处理器的连接:
Schematics Ethernet
Schematics µC
谢谢,我期待着您的建议。
:)
答案 0 :(得分:0)
首先读取所有ENET gmac控制器寄存器,您是否能够访问这些控制器寄存器。
ENET_BASE_ADDR - gmac控制器的基地址。
前val = readl(ENET_BASE_ADDR + offset);
#define ETHERNET_CONF_ETHADDR0 0x00
#define ETHERNET_CONF_ETHADDR1 0x04
#define ETHERNET_CONF_ETHADDR2 0x25
#define ETHERNET_CONF_ETHADDR3 0x1C
#define ETHERNET_CONF_ETHADDR4 0xA0
#define ETHERNET_CONF_ETHADDR5 0x026
将MAC地址配置到这些寄存器后,然后内存转储这些寄存器以确认MAC地址是否正确配置。
请提供完整的gmac及其PHY数据表。我将更多地回答关于phy及其操作的问题。