Примитивы для реализации 1-Wire master при помощи PWM и ICP на микроконтроллерах AVR AtMega

Если кто-нибудь использовал linux-драйвер шины 1-Wire на основе GPIO, то наверняка замечал, что в момент выполнения обмена данными загрузка SY% подскакивает чуть ли не до ста 100% (что вполне логично для bitbang-реализации). Конечно, можно поставить специализированный контроллер шины 1-Wire с подключением через I2C DS28E17 или использовать UART, но… Все-таки использовать linux для приложений реального времени не лучшая идея. Пусть контроллер на нем занимается высокоуровневой логикой, а весь реалтайм можно вынести на отдельный процессор. Тем более, что задач для этого отдельного процессора в моем проекте более чем достаточно.
Читать дальше →

Использование GPIO в Raspberry Pi из ROS

Добрый день, уважаемые читатели Хабра!

Недавно, изучая книги по практическому использованию ROS, я узнал об интересной возможности использования портов GPIO, доступных на Raspberry Pi из ROS. В этой статье я хочу рассказать о том, каким образом это возможно осуществить. Для доступа к портам GPIO на плате Raspberry Pi мы будем использовать библиотеку Wiring Pi. Кого заинтересовала эта тема, прошу под кат.
Читать дальше →

Использование gpio-generic и irq_chip_generic для драйвера gpio

Данная статья является логичным продолжением предыдущей и её прочтение рекомендуется после ознакомления с предшествующим материалом. Текущая заметка необходима для понимания последующего материала, дополнительного понимания подсистемы gpio в целом и способствует разработке собственных gpio драйверов. Положения данной статьи уже применимы не только к нашему виртуальному драйверу gpio, но и к любому mmio gpio драйверу в целом. Речь пойдет об упомянутой в предыдущей части «оптимизации».

Читать дальше →