Вход на Nano RP2040 не float

input arduino-nano-rp2040

Я использую Nano RP2040 с MicroPython и запускаю следующий код:

import machine
import time

p0 = machine.Pin(0, machine.Pin.IN)
while True:
    print(p0.value())
    time.sleep(0.3)

Nano имеет встроенные подтягивающие и подтягивающие резисторы. Если я не укажу machine.Pin.PULL_xx, то эти встроенные резисторы не активируются. Если они не активированы, то не должен ли полученный сигнал быть float, т.е. не должна ли окружающая среда мешать входному сигналу и заставлять приведенный выше код печатать случайные серии 0 и 1 в REPL? На самом деле происходит то, что REPL печатает все 0.

Я читал о том, что входные контакты интерпретируются как высокоимпедансные выходные, и хотя я подозреваю, что это может быть причиной, я не понимаю, что это значит.

, 👍1

Обсуждение

входной контакт к чему-то подключен? ... что произойдет, если вы коснетесь контакта?, @jsotola


1 ответ


1

То, что вы получите шум на плавающем вводе, наблюдаемом в считанном значении, не является чем-то, на что вы можете положиться. AVR, такой как ATMega328P, кажется, легко связывает шум домашней/сетевой частоты с входными сигналами. Тем не менее, я решил продемонстрировать подобные вещи человеку с платой NodeMCU(ESP8266) и обнаружил, что на него гораздо сложнее повлиять.

Насколько я понимаю, RP2040 имеет настраиваемые входы триггера Шмитта с минимальным гистерезисом 0,1 * IOVDD, минимум 330 мВ, я думаю. И что они включены по умолчанию. Таким образом, ваш шум должен преодолевать этот порог, чтобы повлиять на считанное значение, чего он может легко не делать. Если вы отключите функцию триггера Шмитта, вы можете увидеть больше шума. Я не знаю, как отключить их в MicroPython. В PicoSDK есть функция gpio_set_input_hysteresis_enabled, которая должна это делать.

Вы также можете запустить рядом с ним что-то вроде старого пылесоса, чтобы создать много шума в окружающей среде.

Из собственного любопытства я могу попробовать поиграть с этим на RPI Pico, хотя, возможно, не на MicroPython (посмотрим), и если я это сделаю, я покажу, что я нашел.

,