Linux kernel 无法计算BeagleBone Green Wireless的PWM覆盖

Linux kernel 无法计算BeagleBone Green Wireless的PWM覆盖,linux-kernel,beagleboard,device-tree,Linux Kernel,Beagleboard,Device Tree,我是BeagleBone Green Wireless(BBGW)的新手。我刚读了德里克·莫洛伊的《探索猎犬骨》。非常好的阅读,但是,BBGW有Linux4.4.9-ti-r25,一切都是完全不同的。Linux 4.4.9不再具有设备树源代码。只有设备树覆盖(.dto)。我正在尝试PWM的。我加载了am33xx_pwm-00A0.dtbo和BB-PWM1-00A0.dtbo在/lib/firmware中找到的覆盖。我假定这些是PWM1的默认覆盖,但不确定 export SLOTS=/sys/de

我是BeagleBone Green Wireless(BBGW)的新手。我刚读了德里克·莫洛伊的《探索猎犬骨》。非常好的阅读,但是,BBGW有Linux4.4.9-ti-r25,一切都是完全不同的。Linux 4.4.9不再具有设备树源代码。只有设备树覆盖(.dto)。我正在尝试PWM的。我加载了
am33xx_pwm-00A0.dtbo
BB-PWM1-00A0.dtbo
/lib/firmware
中找到的覆盖。我假定这些是PWM1的默认覆盖,但不确定

export SLOTS=/sys/devices/platform/bone_capemgr/slots
export PINS=/sys/kernel/debug/pinctrl/44e10800.pinmux/pins

sudo sh -c "echo am33xx_pwm > $SLOTS"
sudo sh -c "echo BB-PWM1 > $SLOTS"
它们似乎加载正确

root@beaglebone:/lib/firmware# cat $SLOTS
 0: PF----  -1
 1: PF----  -1
 2: PF----  -1
 3: PF----  -1
 5: P-O-L-   0 Override Board Name,00A0,Override Manuf,am33xx_pwm
 7: P-O-L-   1 Override Board Name,00A0,Override Manuf,BB-PWM1
但是,我找不到访问PWM1属性的位置。Malloy说他们在,
/sys/devices/ocp.3/pwm\u test\u p9\u 22.15
。我找不到那个目录,我能找到的最近的目录是
/sys/devices/platform/ocp/
。有几种设备,但PWM1没有。我在哪里可以找到PWM1物业的位置?我想使用
echo
命令更改它们,使用此示例

sudo su
echo 5000 > duty
echo 10000 > period
echo 1 > run

如果有人知道一个好的文档,那也会很有帮助

我知道你说过你很快就能解决这个问题,但我成功了

内核:4.4.30-ti-r64

发行版:Debian 8.6 Jessie

现在加载PWM覆盖

  • 我的发行版来自RCN,附带了在My/lib/firmware/文件夹中预先填充的覆盖。如果有重叠,则继续执行步骤4,如果没有,则执行步骤2

  • apt获取更新

  • sudo apt安装bb角覆盖层

  • 将覆盖加载到cape管理器中:

    echo BB-PWM1>/sys/devices/platform/bone_capemgr/slots

  • 通过执行两项操作确保正确加载覆盖:

  • 首先确保它位于capemanager中:

    cat/sys/devices/platform/bone_capemgr/slots

    输出:

    0:PF----1

    1:PF----1

    2:PF----1

    3:PF----1

    4:p-O-L-0覆盖板名称,00A0,覆盖制造,BB-PWM1

    第二种方法是确保插针正确地进行了多工,以便执行此操作:

    cd/sys/kernel/debug/pinctrl/44e10800.pinmux

    更多引脚| grep 848

    输出应与此类似:

    引脚18(44e10848.0)0000000 6 pinctrl单个

    您可以查看覆盖图,以更深入地了解正在发生的事情,但这有点超出了这个问题的范围

    如果您没有看到00000006输出。不要继续。重新启动BB并重试。这发生在我身上,重启解决了问题

    因此,BB现在已准备好进行PWM

  • cd/sys/class/pwm
  • cd pwmchip0
  • echo 0>导出
  • cd pwm0
  • 回声100000000>周期
  • 回波80000000>占空比
  • 回声1>启用
  • 塔达。它应该会起作用。很抱歉回复太长。我想彻底检查一下

    我遵循了教程:

    编辑: 这是为了设置P9_14的PWM

    各位程序员好,不要努力解决这个问题。我接近于一个解决方案。秘密在。我将在一天左右的时间内跟进并提出完整的解决方案。然而,专家解决方案总是受欢迎的。