Работа с периферией WB напрямую

Приветствую.

Чтобы новую тему не создавать…

У меня как раз вопрос про adc на А1-А4, если читать самостоятельно напрямую…
в вики нашлась вот такая статья, однако похоже очень древняя и к 6.х отношения уже не имеющая
Почитав тут понял, что мне прямая дорога сюда /sys/bus/iio/devices/iio:device0
для А1 это будет in_voltage4_raw
подаю на него выход с V5out, через штатный софт показывается 5, но я так и не понял как из 739 получить 5.00
при этом в in_voltage5_raw лежит 1659, что так же 5.00
в файле wb-homa-adc/config.json.wb61 нашлось описание и там стоит voltage_multiplier = 8.3917, однако явно не хватает ещё какой то цифры, чтобы всё это хозяйство поехало
прошу пояснить эту магию…

аналогично интересует есть ли “в коробке” конфиги, где бы были видны значения “по умолчанию” для di/do/ai портов (gpio и прочее?)
ибо был очень “обрадован” фразе где то в центре простыни на странице вики, что В версии 6.5 изменена полярность входов - наличие напряжения на A1-A4 соответсвует 0 на GPIO.
этот финт ушами хардкодить или всё таки можно почитать где то прямо на самом устройстве?
аналогично удалось выяснить, что для модулей расширения gpio начинаются со 160 в 1 внешнем модуле, и соответственно 168 во втором, проверял на 8 портовых, а как быть с 16 портовыми? (нет в наличии для проверки), какая математика будет если микс?

HighTower, добрый день!
Скажите, а какие задачи вы пытаетесь решить? Возможно, нет необходимости так сильно углубляться в sysfs-bus-iio?

Здравствуйте.

Задача - работа с периферией WB по максимуму без софтовой обвязки WB
Сложного в этом нет ничего, кроме момента понимания какой конкретно gpio/wii/pwm за что отвечает и какие скрипты надо дёрнуть…
Есть ряд причин на то… ваш встроенный софт конечно хорошо, но под мои задачи - неудобно… ну и вариант когда wb-rules в пустом устройстве, только что из коробки, откушивает стабильно ~11% cpu - меня пугает
кстати, инициализация модулей через ваш module_init отрабатывает только со второго раза и с ворсинками… причём ваши скрипты её тоже дважды дёргают на каждый модуль… деинициализация проходит с одного раза …

На данный момент методом “подсмотреть” могу:

  • работать с набортными AI/DI/DO/W1/W2 во всех возможных вариантах
  • [де]инициализировать W1/W2 в режиме wb6-wx-1wire/wb6-wx-di + работать
  • [де]инициализировать DI/DO модули в wb6-extio слотах + работать
  • [де]инициализировать модули в wb6-mod слотах + работать
  • работать с rs-485/can
  • работать с модемом в разных позах

собственно на текущий момент мне только не ясно:

  • как правильно считать стартовые номера gpio для модулей расширения
  • как понять что для A1-A4 нужно инвертировать значения (я конечно подсматриваю в env, но это некошерно как то)
1 Like

нет, так нет…

Погодите. Может таки и скажуть чего.
Мне это тоже крайне интересно. Ибо для промприменений
использовать wb-*** мягко говоря “щикотно”
Сам контроллер по железу вроде стабилен,
чего, увы, не сказать про софт…

Добрый день!

Прошу прощения за долгий ответ. На всякий случай: если хотите, чтобы вам ответили быстро, то НЕ нужно задавать пять разных вопросов в одной теме, к тому же чужой.

Подряд:

Ответы есть в документации: Wiren Board 6 — Wiren Board

Список сигналов тут: Wiren Board 6.2: Peripherals — Wiren Board

Мы, конечно, не рекомендуем работать с периферией напрямую, а рекомендуем через MQTT.

wb-rules не имеет никакого отношения к вашему первому вопросу. Он про сценарии, а вы спрашиваете про gpio/pwm/adc, т.е. про то, как не использовать соответствующие сервисы wb-homa-gpio, wb-homa-adc и т.п.
Если к ним у вас нет претензий, то рекомендую их продолжить использовать, а сценарии писать в другом месте. Например, можете попробовать Node-RED.

Пожалуйста напишите это в отдельной теме, с логам, описанием того, какая комбинация оборудования у вас и что именно вы делаете. Если вы так сделаете, то очень поможете нам воспроизвести и исправить проблему: скорее всего там нам дел на десять минут.

Смотрите исходники GitHub - wirenboard/wb-hwconf-manager: Provides infrastructure for hardware re-configuration via Device Tree overlays

На всякий случай: wb-hwconf-manager мы считаем критическим системным компонентом. Мы НЕ поддерживаем ни в каком виде работу без него. Если вы планируете его отключить и работать без него, то мы не будем это поддерживать, это будет на ваш страх и риск.

При отключении hwconf-manager, например, на WB6 не гарантируется корректная работа второго порта RS-485 и CAN, входов W1-W2.

в исходниках wb-homa-gpio ответ, он берёт это из device tree.