README.md

ads1256_rpi_driver


Дисклеймер

Модуль ядра (драйвер) для получения данных с АЦП ADS1256 в режиме внешней синхронизации - АЦП тактируется внешним импульсным сигналом строго 50 Гц (от лабораторного генератора, GPS-приемника). Гарантируется работа на одноплатном компьютере Raspberry Pi 3 Model B, операционная система Raspberry Pi OS, версия ядра 5.10

Подготовка к использованию

Необходимо установить пакет raspberrypi-kernel-headers:

sudo apt install raspberrypi-kernel-headers

Если планируете управлять модулем в Python 2.7, проверьте наличие пакетов pyserial, RPi.GPIO, sh (последний, обычно, обязательно отсутствует):

pip list | grep sh
sudo apt install python-sh

Обязательно нужно отключить драйвер, обслуживающий шину SPI - spidev. Не нашел другого способа, кроме как вмешаться в дерево устройств (Device-Tree). Перейдите в директорию spidev_disabler, выполните:

cd spidev_disabler
dtc spidev_disabler.dts -O dtb >spidev_disabler.dtbo

После компиляции вы получите другой файл, с расширением “.dtbo”. Можно либо сразу выполнить изменение в дереве устройств, либо, что еще лучше, поместить данную запись в автозагрузку - открыть /etc/rc.local и записать данную строку перед “exit 0”:

sudo dtoverlay -d . spidev_disabler

Разумеется, нужно убедиться, что служба rc.local активна:

systemctl status rc.local

Сборка модуля spirev

Перейдите в директорию spirev, соберите модуль:

cd spirev
make

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

sudo insmod spirev.ko

Для выгрузки модуля:

sudo rmmod spirev.ko

По умолчанию АЦП пишет 1 несимметричный канал AIN0-AINCOM без программного усиления, но эти параметры можно легко менять. Частоту дисркетизации менять только в том случае, если вы понимаете, что делаете.

Описание

Модуль ядра (драйвер) для получения данных с АЦП ADS1256.

Конвейеры
0 успешных
0 с ошибкой