wiznet5k.py硬件驱动w5500芯片网卡bug

按照多数视频教程的说法rst接电源正极,就啥事没有,做快板子想尽善尽美,实在的分配P14给rst就出问题了,查来查去是驱动问题。

复制代码
# pylint: disable=too-many-arguments
def __init__(self, spi_bus, cs, reset=None, is_dhcp=True, mac=DEFAULT_MAC, hostname=None, dhcp_timeout=30, debug=False):
    self._debug = debug
    self._chip_type = None
    self._device = spi_bus
    self._device.init(baudrate=500000, polarity=0, phase=0) #baudrate=8000000
    self._cs = cs        
    # reset wiznet module prior to initialization
    if reset:
        reset.on()
        time.sleep(0.1)
        reset.off()
        time.sleep(0.1)

MicroPython的设计者认为:

pin.on() # 应该理解为"激活"或"生效"

pin.off() # 应该理解为"关闭"或"失效"

但问题是:对于复位引脚,"激活"是复位还是工作?

- 有些人认为:复位是"激活"特殊功能 → on() = 复位(低电平)

- 有些人认为:工作是"激活"芯片 → on() = 工作(高电平)

wiznet5k的作者显然采用了第一种理解:

reset.on() # 激活复位功能 = 拉低 = 复位

reset.off() # 关闭复位功能 = 拉高 = 工作

复制代码
# pylint: disable=too-many-arguments
def __init__(self, spi_bus, cs, reset=None, is_dhcp=True, mac=DEFAULT_MAC, hostname=None, dhcp_timeout=30, debug=False):
    self._debug = debug
    self._chip_type = None
    self._device = spi_bus
    self._device.init(baudrate=500000, polarity=0, phase=0) #baudrate=8000000
    self._cs = cs        
    # reset wiznet module prior to initialization
    if reset:
        reset.value(0)
        time.sleep(0.1)
        reset.value(1)
        time.sleep(1)

相关推荐
清水白石0088 小时前
把事故变成护城河:如何设计回归测试,防止“订单重复创建”这类历史 Bug 卷土重来?
python·bug
njsgcs12 小时前
c# solidworks createline 拉伸发现有微小两点间隙 导致拉伸变成薄壁特征 改bug画了6个小时 解决结果
c#·bug·solidworks
前端达人12 小时前
第18课:实战案例二,线上紧急 Bug 修复全过程
bug
代钦塔拉13 小时前
Qt 按钮 Lambda 信号槽重复绑定、多次触发 BUG 深度剖析与终极解决方案
c++·qt·bug
lpfasd1231 天前
Win11笔记本睡眠唤醒致命bug:NUL设备丢失致Git等工具瘫痪
git·bug
隔窗听雨眠3 天前
Git二分法精准定位Bug
git·bug·git bisect
技术人生黄勇5 天前
GitNexus 把代码库变成知识图谱|审核 AI 产出更清晰,改 Bug 更精准
人工智能·bug
黑夜里的小夜莺5 天前
黑马点评登录成功后点击【我的】会跳转到登录页面 BUG 修复
java·bug
熟人看不到6 天前
解决Claude Code界面错位更新不及时-Windows
bug·vibecoding·claude code
深念Y6 天前
踩坑实录:把 Windows 默认 PowerShell 换成 7.x 到底有多坑?一条龙解决指南
windows·乱码·bug·控制台·powershell·管道·流式