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 с ошибкой