mirror of
https://github.com/EmbedDevIOT/obsidian-vault-.git
synced 2026-11-06 03:33:26 +03:00
vault backup: 2026-03-03 22:22:20
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#linux #GPIO #i2c #spi #hardware
|
||||
|
||||
Все устройства в Linux живут тут:
|
||||
`/dev`
|
||||
|
||||
## GPIO
|
||||
#userspase #libgpiod #
|
||||
Полезная информация:
|
||||
https://devdotnet.org/post/rabota-s-gpio-v-linux-chast-6-biblioteka-libgpiod/
|
||||
|
||||
Способы управления:
|
||||
1. **User Space** - прямой доступ к регистрам, минуя медленные системные вызовы. Посредством открытия `/dev/mem` и мапирование базового адреса GPIO.
|
||||
==Подводные камни:==
|
||||
1. Обход GPIO Subsystem
|
||||
2. Нет контроля конкуренции (может управлять несколько процессов)
|
||||
3. Можно сломать драйвер
|
||||
4. Нет безопасности
|
||||
2. **libgpiod** (Library General Purpose Input/Output device) - Библиотека и набор утилит в Linux для управления пинами GPIO (ввод/вывод общего назначения) через символьные устройства (`/dev/gpiochip*`) или контроллеры GPIO
|
||||
1. Включает в себя:
|
||||
1. **gpiodetect**
|
||||
2. **gpioinfo**
|
||||
3. **gpioset**
|
||||
4. **gpioget**
|
||||
2. API для Python и C/C++
|
||||
|
||||
|
||||
## I2C. Integrates
|
||||
`/sys/bus/i2c/devices/`
|
||||
По умолчанию шина отключена.
|
||||
Включить можно следующими способами:
|
||||
1. `sudo raspi-config`
|
||||
2. Корректировкой `/boot/firmware/config.txt`
|
||||
1. Необходимо раскомментировать параметр `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` - просмотр версии системы
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user