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)

相关推荐
qq_452396235 小时前
【工程实战】第八篇:报告美学 —— Allure 深度定制:让 Bug 定位精准到秒
开发语言·python·bug
tkokof11 天前
捉虫(Bug)小记
人工智能·深度学习·bug·游戏开发
南宫萧幕1 天前
基于上一篇文章VMware+openweb UI+ollama+docker的bug问题总结
docker·容器·bug·openweb ui
呼啦啦5611 天前
测试(BUG篇)
bug
ZC跨境爬虫1 天前
3D地球卫星轨道可视化平台开发Day2(轨道错位Bug修复+模块化结构优化)
前端·3d·html·json·bug
柠檬07111 天前
记录bug :C++调用python 路径问题
c++·python·bug
初圣魔门首席弟子3 天前
bug20260415
c++·bug
万粉变现经纪人3 天前
如何解决 pip install flash-attention 报错 需要 SM_80+(Ampere)架构 问题
python·架构·django·bug·virtualenv·pip·pygame
zhanglianzhao4 天前
Gazebo仿真机器人和相机时Gazebo ROS Control 插件偶发性加载失败bug分析
机器人·bug·ros·gazebo·ros_control
techdashen4 天前
Go 1.25 新特性:Flight Recorder —— 像黑匣子一样捕捉线上 Bug
java·golang·bug