Raspberry 4. gpio 16 в обычном режиме?

Тема в разделе "Raspberry Pi", создана пользователем a0639, 7 май 2021.

  1. a0639

    a0639 Нерд

    Проблема на ровном месте. Не понимаю, подскажите
    Есть три пина: 16,20 и 21. Все должны работать как ввод с подтяжкой к 1
    GPIO.setup(pin, GPIO.IN,pull_up_down=pdn=GPIO.PUD_UP)
    20 и 21 вполне себе нормально, а вот 16 ни в какую
    Понимаю, что 16 пин может быть также
    spi.... SPI 1 как CE2 N
    i2c... SCL6 как GPIO23
    sdi0... SD0 CMD/SD1 CMD как GPIO23
    Пытаюсь оказаться от всего этого богатства. В raspi-config отключаю spi, i2c
    Устанавливаю raspi-gpio set 16,20,21 ip
    Контролирую raspi-gpio get 16,20,21:
    GPIO 16: level=0 fsel=0 func=INPUT pull=UP
    GPIO 20: level=1 fsel=0 func=INPUT pull=UP
    GPIO 21: level=1 fsel=0 func=INPUT pull=UP

    И всей-то разницы - некий level !?
    Вот код теста. 20 и 21 норм, 16 никак. На вход подаю землю через 1 ком
    Код (Python):
    import RPi.GPIO as GPIO
    import time
    GPIO.setmode(GPIO.BCM)
    pin = 16
    GPIO.setup(pin, GPIO.IN,pull_up_down=pdn=GPIO.PUD_UP)
    while True:
        val = GPIO.input(pin)
        print(val)
        time.sleep(1)
     
     
  2. Un_ka

    Un_ka Гуру

    Может с этим как-то связано данное явление?
     
  3. a0639

    a0639 Нерд

    В этом сказано: "светодиод на GPIO 16 загорается сразу же, когда Pi включен и остается включенным. Во время выключения (запуск sudo poweroff) светодиод начинает мигать, затем на короткое время выключается, прежде чем снова включиться после остановки системы."
    Ничего подобного нет. При выключении питания миганий нет (светодиод был подключен). Похоже, это другое явление, хотя интересное.
    Другое предположение, высказанное в "этом" - неправильная система у моего raspberry . Резон есть.
    В /boot/config.txt есть интересная строка dtparameter=cs0_pin=16,cs0_spidev=disable
    Как понимать? Что такое? Замена на enable, а также простое вырезание строки не помогли
    Также хочу заметить, что несчастный 16 пин нормально работает на raspberry pi 3b+ и raspberry pi zero.
     
  4. Un_ka

    Un_ka Гуру

    Попробуйте :
    Или закоментировать
    Код (Bash):
    dtparameter=cs0_pin=16,cs0_spidev=disable
    Или убрать первые тождества
    Код (Bash):
    cs0_spidev=disable
    Или
    Код (Bash):
    dtparameter=cs0_spidev=disable
    Или
    Код (Bash):
    dtparameter=cs0_pin=другой пин,cs0_spidev=disable
    Если после манипуляций raspberry не запускается, раздел boot виден на windows. Можно подправить.
     
  5. a0639

    a0639 Нерд

    не помогло
     
  6. ZAZ-965

    ZAZ-965 Гуру

    @a0639, в config.txt в разделе dtoverlay что прописано (нет ли SPI устройств)? В дереве устройств для первых ревизий Raspberry к pin@p16 подключен светодиод, у Raspberry4 этого пина нет (или я не вижу) на его место для совместимости маппится какой-то другой.
     
  7. a0639

    a0639 Нерд

    как раз в первых ревизиях проблем нет.
    где его не видно? Где кто мапится? Иван Васильевич, але?
     
  8. KKVaka

    KKVaka Нуб

    Полезно понимать в каком режиме в определенный момент находится нужный Вам вывод процессора. Он может быть настроен на вход, на выход и на любую из нескольких альтернативных функций. Если с выводами 20 и 21 Вам повезло и их никакая программа не перехватила, то вывод 16 может быть настроен на какой-то не подходящий Вам режим. Это означает что выводы нужно настраивать для себя. Программы для этого в принципе имеются, найти можно. Думаю что справитесь.
     
  9. a0639

    a0639 Нерд

    Да, командор, будем стараться
     
  10. KKVaka

    KKVaka Нуб

    Насколько помню, в последний раз я пользовался программой GPIO-ALT ( или как-то так, впрочем не особо успешно в моем случае ). Она скачивалась в исходнике, компилировалась и запускалась. Универсальности ( под разные платы ) в моем исходнике не было. Еще когда-то находил более универсальную программку, которая еще выдавала список режимов всех выводов процессора. Не помню насколько она была универсально, но точно более функциональна. Но проблема в том что названия ее не помню и найти не смог когда понадобилось. А среду, в которой эта программа была у меня установлена, уже уничтожил...
     
  11. KKVaka

    KKVaka Нуб

    Смутно вспоминается тот факт, что та полезная программка была частью какого-то достаточно большого пакета для Малины. Пока нашел такую вещь:
    https://projects.drogon.net/raspberry-pi/wiringpi/the-gpio-utility/
    там тоже вроде бы можно увидеть текущие режимы всех выводов и управлять ими. Попробуйте, вдруг получится. Я не пробовал, у меня немного другие способы были.