Здравствуйте, пытаюсь подключить считыватель Matrix II к WB 8.5 по протоколу wiegand 26. Скомпилировал модуль ядра GitHub - wirenboard/wiegand-linux: Linux driver for reading wiegand data from GPIO. Tested for ARM 9G20 (linux stamp) Модуль успешно загружается. D0 считывателя подключен к A1 в режиме входа, D1 считывателя к A2 контроллера. Использую номера gpio 233 и 228 соответственно. Входное напряжение контроллера 12 В, на входах 4.6 В. Карта считывается, но на входы номер карты не передаётся.
В чём может быть проблема?
Добрый день.
gpio-233 A1 IN
gpio-228 A2 IN
А чем эти gpio заняты? Проверьте что не процесcом wb-mqtt-gpio

Проверил, заняты модулем ядра. Оно не загружается, если gpio заняты
А вот тут на скриншоте они оба lo.
Что маловероятно, так как ширина значащих импульсов узка и они не могут быть (никогда) одновременно в 0.
Проверьте пожалуйста текущее напряжение на входах? Возможно - надо его подтянуть к +5
Напряжение на обоих входах 4.6 В Надо подтягивать?
Ну, в дежурном режиме все ж hi ожидаю.
Я тогда не очень понимаю… На входе же если больше 3.3 В, то это логическая единица, если меньше 1.5, то ноль. У меня 4.6, значит единица должна считываться
Лучше перепроверьте. Вот для прjверки - отключите устройство, соедините вход с Gnd. Затем с +5.
Подтянул +5V Out на входы А1 и А2. Напряжение стало 5В, но входы всё равно в статусе lo
Так, интересно.
Проверил, подав 5 на вход
echo 228 > /sys/class/gpio/export
cat /sys/class/gpio/gpio228/value
1
Ну и
cat /sys/kernel/debug/gpio |grep A2
gpio-119 (A2 OUT )
gpio-228 (A2 IN |sysfs ) in hi
gpio-513 (EC A2 )
Может я что-то с подключением не понимаю..
Вот так у меня
А какой номинал резисторов подтяжки между +5 и входами? Я думал примерно 4,7 кОм.
Да, между +5 и входами резисторы на 4.7 кОм. Но входы всё равно в lo. Куда можно ещё копнуть?
Выгрузите модуль пожалуйста и проверьте стандартным wb-mqtt-gpio. То есть при чтении состояние входов должно меняться.
выгрузил модуль, читаю стандартным wb-mqtt-gpio, входы в lo
Выгрузил модуль, подключил ко входам кнопку. При чтении стандартным wb-mqtt-gpio состояние входов меняется. Модуль wiegand_gpio тоже через кнопку что-то считывает, но вот при подключении считывателя не работает. Может надо пересобрать модуль с другими таймаутами чтения gpio?
Лучше осциллографом глянуть что на входе точно что-то есть.
Могу, конечно, собрать эмулятор, проверить. Просто на ардуинке.
Но, как мне кажется - при чтении стандартным wb-mqtt-gpio для подключенного считывателя должен фиксировать импульсы.
Подключу считыватель к контроллеру СКУД, чтобы убедиться, что карты читаются. Может со считывателем что-то. Спасибо
Подключил считыватель к штатному контроллеру СКУД - все карты считываются без проблем. Значит считыватель и карты в порядке. Что-то в схеме подключения или в модуле ядра. Есть мысли что ещё попробовать?