按照多数视频教程的说法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)


