ESP8266 NodeMCU MicroPython 串行垃圾,无法erase_flash 或上传文件
ESP8266 NodeMCU MicroPython garbage in serial, cannot erase_flash or upload files
看来我的 NodeMCU Lolin esp8266 模块坏了,请确认)
起初一切正常,但后来...
- 我上传的有点奇怪
boot.py
玩UART0
#boot.py
import uos, machine
import gc
gc.collect()
import esp
import time
esp.osdebug(None)
uart = machine.UART(0, 115200)
def uart_test():
print('before disabling REPL on UART')
uos.dupterm(None, 1) # disable REPL on UART(0)
print('after detaching REPL')
time.sleep(5)
uart.write('123')
r=uart.read()
# reattach REPL
uos.dupterm(uart, 1)
print('after attaching REPL')
print('r: ')
print(r)
- 然后我上传
main.py
并在无限循环中闪烁 time.sleep() 以在我将模块安装到盒子中时检查状态。
#main.py
import time
from machine import Pin, Signal
led = Signal(2, mode=Pin.OUT, invert=True)
while True:
led.on()
time.sleep(1)
led.off()
time.sleep(1)
- 然后,当我在盒子里安装模块时,我不小心从 PCB 上撕下了一个元件,但后来又把它焊回去了。我不知道这个元素是什么以及它的目的是什么。我在图片上标记了这个元素
IMG: broken element
所有这些之后我无法通过串行端口连接到模块,我在屏幕上看到的只是垃圾,尝试了不同的波特率。
IMG: screen is empty and doesen't react to keys or Ctrl+C
重置板后屏幕上只有垃圾IMG: garbage after reset
我也无法使用esptool
擦除闪存。
MCU 正在工作,因为在 main.py
中编程时,当它通电时 LED 会闪烁
我尝试通过连接 GPIO0
和 GND
来启用引导加载程序模式,闪烁在此模式下不起作用,但 esptool.py
在此模式下也不起作用。
esptool 日志
python3 -m esptool --port /dev/cu.usbserial-142240 --baud 9600 erase_flash
esptool.py v3.1
Serial port /dev/cu.usbserial-142240
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header
esptool 日志与 --trace arg
python3 -m esptool --port /dev/cu.usbserial-142240 --baud 115200 --trace erase_flash
esptool.py v3.1
Serial port /dev/cu.usbserial-142240
Connecting...TRACE +0.000 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
55555555 | UUUU
TRACE +0.000 Write 46 bytes:
c000082400000000 0007071220555555 | ...$........ UUU
5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
5555555555555555 5555555555c0 | UUUUUUUUUUUUU.
TRACE +0.023 Read 1 bytes: e2
TRACE +0.000 Read invalid data: e2
TRACE +0.000 Remaining data in serial buffer:
6efe6ee43cfe2792 07eceeee708ef21c | n.n.<.'.....p...
1e0e1c906e6c6c1c 9227c71eeee76c | ....nll..'....l
.TRACE +0.056 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
55555555 | UUUU
TRACE +0.000 Write 46 bytes:
c000082400000000 0007071220555555 | ...$........ UUU
5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
5555555555555555 5555555555c0 | UUUUUUUUUUUUU.
TRACE +0.002 Read 1 bytes: ee
TRACE +0.000 Read invalid data: ee
TRACE +0.000 Remaining data in serial buffer:
240eec6e9c9c8c9c e70e026c6ce4ee9c | $..n.......ll...
6e6e00f26c62e4ee 70e26ee2ec626c | nn..lb..p.n..bl
...
# and a lot of similar messages
我的 nodemcu 模块是怎么回事?它死了吗?我可以尝试做什么?
您自己遇到的硬件相关问题比软件相关问题更有可能。
重新焊接断开的部分,然后重试。您可能弄坏了用于过滤输出噪声的 resistor/capacitor(我不是硬件专家)或对调节电路板运行所需电压至关重要的东西。
编辑
如https://raw.githubusercontent.com/hallard/NodeMCU-Gateway/master/pictures/NodeMCU-Lora-Gateway-top.png所示,尽管该板的设计不同,但您似乎断开了电容器或二极管。重新焊接或给自己买一个新的 (100nf) 或二极管 (1N4148)
结论:
今天我收到了 USB 转 UART 转换器,将它连接到我的 ESP8266 板的 TX 和 RX 上,一切正常。所以问题出在板载CH340转换器上。
看来我的 NodeMCU Lolin esp8266 模块坏了,请确认)
起初一切正常,但后来...
- 我上传的有点奇怪
boot.py
玩UART0
#boot.py
import uos, machine
import gc
gc.collect()
import esp
import time
esp.osdebug(None)
uart = machine.UART(0, 115200)
def uart_test():
print('before disabling REPL on UART')
uos.dupterm(None, 1) # disable REPL on UART(0)
print('after detaching REPL')
time.sleep(5)
uart.write('123')
r=uart.read()
# reattach REPL
uos.dupterm(uart, 1)
print('after attaching REPL')
print('r: ')
print(r)
- 然后我上传
main.py
并在无限循环中闪烁 time.sleep() 以在我将模块安装到盒子中时检查状态。
#main.py
import time
from machine import Pin, Signal
led = Signal(2, mode=Pin.OUT, invert=True)
while True:
led.on()
time.sleep(1)
led.off()
time.sleep(1)
- 然后,当我在盒子里安装模块时,我不小心从 PCB 上撕下了一个元件,但后来又把它焊回去了。我不知道这个元素是什么以及它的目的是什么。我在图片上标记了这个元素 IMG: broken element
所有这些之后我无法通过串行端口连接到模块,我在屏幕上看到的只是垃圾,尝试了不同的波特率。 IMG: screen is empty and doesen't react to keys or Ctrl+C
重置板后屏幕上只有垃圾IMG: garbage after reset
我也无法使用esptool
擦除闪存。
MCU 正在工作,因为在 main.py
我尝试通过连接 GPIO0
和 GND
来启用引导加载程序模式,闪烁在此模式下不起作用,但 esptool.py
在此模式下也不起作用。
esptool 日志
python3 -m esptool --port /dev/cu.usbserial-142240 --baud 9600 erase_flash
esptool.py v3.1
Serial port /dev/cu.usbserial-142240
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header
esptool 日志与 --trace arg
python3 -m esptool --port /dev/cu.usbserial-142240 --baud 115200 --trace erase_flash
esptool.py v3.1
Serial port /dev/cu.usbserial-142240
Connecting...TRACE +0.000 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
55555555 | UUUU
TRACE +0.000 Write 46 bytes:
c000082400000000 0007071220555555 | ...$........ UUU
5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
5555555555555555 5555555555c0 | UUUUUUUUUUUUU.
TRACE +0.023 Read 1 bytes: e2
TRACE +0.000 Read invalid data: e2
TRACE +0.000 Remaining data in serial buffer:
6efe6ee43cfe2792 07eceeee708ef21c | n.n.<.'.....p...
1e0e1c906e6c6c1c 9227c71eeee76c | ....nll..'....l
.TRACE +0.056 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
55555555 | UUUU
TRACE +0.000 Write 46 bytes:
c000082400000000 0007071220555555 | ...$........ UUU
5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
5555555555555555 5555555555c0 | UUUUUUUUUUUUU.
TRACE +0.002 Read 1 bytes: ee
TRACE +0.000 Read invalid data: ee
TRACE +0.000 Remaining data in serial buffer:
240eec6e9c9c8c9c e70e026c6ce4ee9c | $..n.......ll...
6e6e00f26c62e4ee 70e26ee2ec626c | nn..lb..p.n..bl
...
# and a lot of similar messages
我的 nodemcu 模块是怎么回事?它死了吗?我可以尝试做什么?
您自己遇到的硬件相关问题比软件相关问题更有可能。
重新焊接断开的部分,然后重试。您可能弄坏了用于过滤输出噪声的 resistor/capacitor(我不是硬件专家)或对调节电路板运行所需电压至关重要的东西。
编辑
如https://raw.githubusercontent.com/hallard/NodeMCU-Gateway/master/pictures/NodeMCU-Lora-Gateway-top.png所示,尽管该板的设计不同,但您似乎断开了电容器或二极管。重新焊接或给自己买一个新的 (100nf) 或二极管 (1N4148)
结论:
今天我收到了 USB 转 UART 转换器,将它连接到我的 ESP8266 板的 TX 和 RX 上,一切正常。所以问题出在板载CH340转换器上。