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)

相关推荐
深念Y15 小时前
Opencode Event 表写入优化方案
数据库·人工智能·ai·node.js·bug·优化·opencode
姚青&2 天前
Bug基本概念
bug
AI多Agent协作实战派2 天前
AI多Agent协作系统实战(三十九):AI修对了Bug,却越了权——自动化团队的第一条铁律
人工智能·自动化·bug
深念Y4 天前
AMD 芯片组驱动触发高频 SSD 写入的问题及解决方案
windows·bug·ssd·日志·芯片·驱动·amd
加油码4 天前
探秘 volatile关键字:编译器的过度优化
linux·bug·信号处理
鹿屿二向箔4 天前
keil5.39版本使用AC6编译器不能位域操作的BUG使用STM32U385系列MCU
stm32·单片机·bug
angryshan4 天前
goLang配置断点流程
go·bug
吨吨ai6 天前
# ChatGPT Plus / Pro + Codex Debug 实战:如何让 AI 从日志、Trace、异常堆栈自动定位线上 Bug
人工智能·chatgpt·bug
灰暗世界%6 天前
飞牛bug修复
bug
凌云拓界8 天前
NodeVerdict | 性能门禁:把追踪数据变成 CI 规则
ci/cd·信息可视化·开源·node.js·bug·数据可视化·安全架构