mirror of
https://github.com/EmbedDevIOT/obsidian-vault-.git
synced 2026-11-06 01:13:26 +03:00
2.4 KiB
2.4 KiB
#GPIO #i2c #spi #hardware
Все устройства в Linux живут тут:
/dev
GPIO
#userspase #libgpiod # Полезная информация: https://devdotnet.org/post/rabota-s-gpio-v-linux-chast-6-biblioteka-libgpiod/
Способы управления:
- User Space - прямой доступ к регистрам, минуя медленные системные вызовы. Посредством открытия
/dev/memи мапирование базового адреса GPIO. ==Подводные камни:==- Обход GPIO Subsystem
- Нет контроля конкуренции (может управлять несколько процессов)
- Можно сломать драйвер
- Нет безопасности
- libgpiod (Library General Purpose Input/Output device) - Библиотека и набор утилит в Linux для управления пинами GPIO (ввод/вывод общего назначения) через символьные устройства (
/dev/gpiochip*) или контроллеры GPIO- Включает в себя:
- gpiodetect
- gpioinfo
- gpioset
- gpioget
- API для Python и C/C++
- Включает в себя:
I2C. Integrates
/sys/bus/i2c/devices/
По умолчанию шина отключена.
Включить можно следующими способами:
sudo raspi-config- Корректировкой
/boot/firmware/config.txt- Необходимо раскомментировать параметр
dtparam=i2c_arm=onЗатем в устройство должно появиться в/devкакi2c-1
- Необходимо раскомментировать параметр
Для работы с шиной и периферией есть библиотека i2c-tools
SPI
Команды для работы:
cat /proc/device-tree/model - модель платы для которой device tree создан
ls /proc/device-tree/ - дерево устройств, которое kernel получил от GPU
ls /sys/bus/platform/devices - вывод устройств, которые kernel создал на основе DT
lsmod - просмотр загруженных модулей св
Commands
Система:
vcgencmd get_config int - параметры, которые передает GPU
cat /etc/os-release - просмотр версии системы