完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在解决了另一个线程中提到的硬件问题之后,我仍然对这个组合有问题。该系统是一个运行Linux的ARM SOM,一个通过MII连接到LAN9303的LAN9500A USB MAC。9500A使用标准Linux驱动程序smsc95xx v1.0.4,配置在/etc/network/interface中,具有静态IP地址。9303为I2C配置,它有一个空EEPROM,所以它使用它的电源默认值。我可以通过Linux I2C驱动程序与EEPROM和9303进行通信。如果我将外部端口之一连接到网络,LED就会亮起来,而且我可以看到Tx和Rx上的空闲模式,但是无论输入还是输出,我都不能进行ping操作。出站ping命令认为它成功地传输,但没有得到任何响应。当没有ping时,ifconfig命令仍然显示Rx包大约每秒进入一次,但是没有Tx包:“.:0”正常吗?我的第一个简单问题是:9500A+9303组合应该是“开箱即用”的,没有特殊配置吗?或者,为了使它成为生命的源泉,我必须写一些最少的寄存器吗?如果它应该工作,我需要在9303个寄存器中检查吗?我有Python脚本,我可以用来通过I2C读或写它们。
以上来自于百度翻译 以下为原文 After having solved a hardware problem mentioned in another thread, I still have a problem with this combo. The system is an ARM SOM running Linux, a LAN9500A USB MAC connected via MII to a LAN9303. The 9500A is using the standard Linux driver, smsc95xx v1.0.4, configured in /etc/network/interfaces with a static IP address. The 9303 is strapped for I2C configuration, and has an empty EEPROM, so it's using its power-on defaults. I can talk to the EEPROM and to the 9303 through the Linux I2C driver. If I connect one of the external ports to my network, the LEDs light up, and I can see the idle pattern on both Tx and Rx with a scope, yet I can't ping either in or out. The outbound ping command thinks it's successfully transmitting, but doesn't get any responses. When not pinging, the ifconfig command still shows Rx packets coming in about once per second, but no Tx packets: eth1 Link encap:Ethernet HWaddr 1A:D4:57:AD:37:F0 inet addr:192.168.123.222 Bcast:192.168.123.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1488 Metric:1 RX packets:26 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4738 (4.6 KiB) TX bytes:0 (0.0 B) Is the "carrier:0" normal? My first simple question is this: Is the 9500A+9303 combo supposed to work "out of the box", with no special configuration? Or is there some minimal number of registers I have to write in order to get it to spring to life? If it's supposed to work, is there anything I should check in the 9303 registers? I have Python scripts that I can use to read or write them via I2C. |
|
相关推荐
3个回答
|
|
听起来好像没有MAC地址。默认是FFFFFFFFFFFFFFH,所以您可以发送广域广播消息。我需要一个MAC OUI地址,您可以从微芯片购买预编程的MACeeprom。遗憾的是,它们不兼容LAN9500(它是由SMSC设计的,在微芯片获得之前)。我只是买了eeprom,让SoC读取它,然后在LAN9500A中设置寄存器。不要忽视LAN9500A中的软件数据簿。它详细介绍了如何使用USB命令来写寄存器,LAN9500A与SoC在同一块板上配对。
以上来自于百度翻译 以下为原文 Sounds like no MAC address present. Default is FFFFFFFFFFFFh so you can send BROADCAST Messages. I you need a MAC OUI address, you can buy the preprogrammed MAC eeproms from Microchip. Sadly they are not compatible with the LAN9500A (which was designed by SMSC long before being acquired by Microchip). I just buy the eeprom and have the SoC read it, then set the registers in the LAN9500A. Don't overlook the software databook from the LAN9500A. It has details on how to use USB commands to write registers with the LAN9500A is paired on the same board with the SoC. |
|
|
|
兰考克完成了吗?完成后,提交到micro..com/support的时间刚刚安装了DBS,所以在我完全能够阅读/评论问题之前的几个星期。
以上来自于百度翻译 以下为原文 LANCHECK completed? Once done, time to submit tomicrochip.com/support Just had DBS installed, so few weeks before I am fully able to read/comment on questions. |
|
|
|
嗯,两个多星期后,我从微芯片支持中听到了BuPKIS。从那时起我就学到了这一点。如果我做“IP链接显示Eth1”,它包括在旗子中的无载体。这意味着该链接没有被告知它实际上是连接到某物(在这种情况下,是交换机)。所以我试着在9303中清除设备准备中断(通过Python)。立即,一系列无限的“链接”和错过的事件信息迅速弹出控制台,直到我再次掩盖中断。在那之后,无载波已经消失了,“IFUTHE1”成功地从DHCP获得了地址,一切都有效。我写了一个小的Python脚本来做这个掩蔽和掩蔽,我可以在启动时调用它,这使我越过了驼峰。但这显然不是正确的做法,那又是什么呢?没有9303个驱动程序可用。我看了看其他SMSC PHY的驱动程序,它们都可以通过MII访问中断状态和屏蔽寄存器。9303个VPHY不公开这些。因此,为了确认中断,适当的9303驱动程序似乎必须配置有子i2c设备。从来没有编写过设备驱动程序,我并不急于去解决它。这真的是什么让9303个干净的9500的工作?
以上来自于百度翻译 以下为原文 Well, after more than two weeks, I've heard bupkis from Microchip support. What I've learned since then is this. If I do "ip link show eth1", it includes NO-CARRIER among the flags. This means that the link isn't being informed that it is actually connected to something (in this case, the switch). So I tried unmasking the Device Ready interrupt in the 9303 (via Python). Immediately, an infinite series of "Link up" and missed event messages spewed out the console, until I masked the interrupt again. After that, NO-CARRIER was gone, "ifup eth1" successfully got an address from DHCP, and everything worked. I wrote a small Python script to do this unmasking and masking, which I can invoke during startup, which gets me over the hump. But this is clearly not the right way to do it. So what is? There is no 9303 driver available. I looked at the driver for other SMSC PHYs, and they all have access to interrupt status and mask registers via MII. The 9303 VPHY doesn't expose these. So it appears that a proper 9303 driver would have to be configured with a child i2c device in order to acknowledge interrupts. Never having written a device driver, I'm not eager to tackle that. Is this really what it would take to get the 9303 to work cleanly with the 9500A? |
|
|
|
只有小组成员才能发言,加入小组>>
5231 浏览 9 评论
2026 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3200 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
771浏览 1评论
659浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
588浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
669浏览 0评论
571浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 13:11 , Processed in 0.982037 second(s), Total 52, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号