В Beaglebone Black rev C отсутствуют файлы системных каталогов (для доступа к выводам PWM)

Поэтому я пытаюсь настроить свой черный beaglebone так, чтобы я мог получить доступ к контактам ШИМ. Первоначально я следовал этому уроку, но он подсказывает мне доступ к ocp-файлу, которого нет у моего beaglebone.

debian@beaglebone:/sys/devices$ ls
armv7_cortex_a8  breakpoint  platform  soc0  software  system  tracepoint  virtual

Я посмотрел несколько других руководств, и все они говорят то же самое. В конечном итоге я смогу зайти в свою папку pwm и экспортировать пин-код (используя файлы экспорта / неэкспорта), но этого также не хватает.

debian@beaglebone:/sys/class/pwm$ ls
pwm-0:0  pwm-0:1  pwm-2:0  pwm-2:1  pwm-4:0  pwm-4:1  pwmchip0  pwmchip2  pwmchip4

Я могу использовать контакты GPIO очень хорошо, и я запускаю образ по умолчанию, найденный здесь. Он сделан без графического интерфейса и основан на версии ядра Debian 9.5 4.14.71-ti-r80

Было бы полезно любое понимание этого, в том числе общее устранение неполадок, пакеты, которые мне может понадобиться установить, или вещи, которые я могу сделать, чтобы мой образ снова заработал. Я не хочу прошивать новую версию Debian на мою beaglebone, так как я скомпилировал на нее несколько двоичных файлов, и для компиляции и установки некоторых библиотек, которые я использую (в частности, opencv), требуются десятки часов.

Спасибо за вашу помощь!

0 ответов

Так что я думаю, что смог понять это.

Начиная с версии 4.14 ядра linux, началось изменение аппаратных оверлеев для вывода pwm; с тех пор он прошел незначительные изменения, но в основном остался прежним. То, что я использовал, я смотрел на версию до 4.14.

Я нашел этот вопрос переполнения стека, который похож на мой, и объясняет, как работает новая система. По большей части он точен, однако я использую v4.19, и имена файлов больше не являются pwm0 или pwm1, а являются pwm0:0 или pwm0:1.

По сути, этот вопрос связан с примером github от beaglebone, в котором изложено, как они хотят, чтобы вы его использовали, и на который стоит обратить внимание. Но подведем итог можно запустить

debian@beaglebone:/sys/class/pwm$ ls -lh
total 0
lrwxrwxrwx 1 root root 0 Nov  3  2016 pwm-0:0 -> ../../devices/platform/ocp/48300000.epwmss/48300200.pwm/pwm/pwmchip0/pwm-0:0
lrwxrwxrwx 1 root root 0 Nov  3  2016 pwm-0:1 -> ../../devices/platform/ocp/48300000.epwmss/48300200.pwm/pwm/pwmchip0/pwm-0:1
lrwxrwxrwx 1 root root 0 Nov  3  2016 pwm-2:0 -> ../../devices/platform/ocp/48302000.epwmss/48302200.pwm/pwm/pwmchip2/pwm-2:0
lrwxrwxrwx 1 root root 0 Nov  3  2016 pwm-2:1 -> ../../devices/platform/ocp/48302000.epwmss/48302200.pwm/pwm/pwmchip2/pwm-2:1
lrwxrwxrwx 1 root root 0 Nov  3  2016 pwm-4:0 -> ../../devices/platform/ocp/48304000.epwmss/48304200.pwm/pwm/pwmchip4/pwm-4:0
lrwxrwxrwx 1 root root 0 Nov  3  2016 pwm-4:1 -> ../../devices/platform/ocp/48304000.epwmss/48304200.pwm/pwm/pwmchip4/pwm-4:1
lrwxrwxrwx 1 root root 0 Jan  1  2000 pwmchip0 -> ../../devices/platform/ocp/48300000.epwmss/48300200.pwm/pwm/pwmchip0
lrwxrwxrwx 1 root root 0 Jan  1  2000 pwmchip2 -> ../../devices/platform/ocp/48302000.epwmss/48302200.pwm/pwm/pwmchip2
lrwxrwxrwx 1 root root 0 Jan  1  2000 pwmchip4 -> ../../devices/platform/ocp/48304000.epwmss/48304200.pwm/pwm/pwmchip4

Который дает вам местоположение всех выводов ШИМ (за исключением вывода 42; я не знаю, как добраться до этого). Например, чтобы включить контакт 14, вы можете запустить

export ehrpwm1=/sys/devices/platform/ocp/48302000.epwmss/48302200.pwm/pwm/pwmchip2
echo 0 > ${ehrpwm1}/export || true
echo 20000 > ${ehrpwm1}/pwm2:0/period
echo 10000 > ${ehrpwm1}/pwm2:0/duty_cycle
echo 1 > ${ehrpwm1}/pwm2:0/enable

Я слышал эти изменения от платы к плате, хотя, так что я последую примеру и убедимся, что структура вашей папки выстроена в линию.

Я также написал библиотеку для использования выводов pwm, если вам интересно, это то, что я использую, и она работала хорошо. Я отмечу, однако, что я не пробовал его на других версиях beaglebone, но он хорошо работает для ядра Linux версии 4.19 https://github.com/Haxonek/wiringbeaglelite

Другие вопросы по тегам