ST意法半导体
登录
直播中
吕珠峰
10年用户
785经验值
擅长:可编程逻辑
私信
关注
[问答]
openSTLinux上的sysfs接口无法使用可能是什么问题?
开启该帖子的消息推送
PWM波
LINUX内核
我正在尝试使用 openSTLinux 上的 sysfs 接口对一些引脚进行 PWM,但不幸的是,它不起作用。
我一直在更改设备树文件以使其正常工作,但仍然没有成功。
当我运行时:
ls /sys/class/pwm
我什么也得不到。
可能是什么问题?PWM 在内核上启用。
回帖
(1)
陈龙
2022-12-15 11:34:00
好的,谢谢,我以为你没有整个文件夹 pwm。
要将文件夹
pwmchipx
放在文件夹
/sys/class/pwm
中,您必须在 dts 中配置并启用计时器。
在这个定时器中,你必须定义一个子节点 pwm 并设置它的管脚。
我查看了您发送的 DTS,我的印象是您为此目的启用了 timers1:
&timers1 {
/* spare dmas for other usage */
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
pwm1: pwm {
pinctrl-0 = <&pwm1_pins_a>;
pinctrl-1 = <&pwm1_sleep_pins_a>;
pinctrl-names = "default", "sleep";
status = "okay";
};
timer@0 {
status = "okay";
};
};
您已将 pwm pinctrl 设置为引脚 a。
但是你在 stm32mp15-pinctrl.dtsi 中的 pinctrl 设置很奇怪:
pwm1_pins_a: pwm1-0 {
pins {
pinmux =
,
;
bias-pull-down;
drive-push-pull;
slew-rate = <0>;
};
};
pwm1_sleep_pins_a: pwm1-sleep-0 {
pins {
pinmux =
,
;
};
};
如果您查看
STM32MP157F
的数据表
PA15 AF1与定时器1无关,与TIM2相关
和
PH6 AF1 不存在:
所以它不能工作。
我在我的 157F-DK2 上进行了测试,例如,我通过配置 timers8 成功获得了 /sys/class/pwm/ 的内容。
由于在我的板上可以使用 PC7 引脚,因此我在我的 pinctrl“stm32mp15-pinctrl.dtsi”中添加了一个 pwm pinmux:
pwm8_pins_b: pwm8-1 {
pins {
pinmux =
; /* TIM8_CH2 */
bias-pull-down;
drive-push-pull;
slew-rate = <0>;
};
};
pwm8_sleep_pins_b: pwm8-sleep-1 {
pins {
pinmux =
; /* TIM8_CH2 */
};
};
因为 PC7 AF3 专用于 TIM8:
然后我在 stm32mp157f-dk2.dts 中配置 timers8 以在其子节点 pwm 中使用这些引脚:
&timers8 {
status = "okay";
dmas = <&dmamux1 47 0x400 0x80000001>;
dma-names = "ch1";
pwm {
pinctrl-0 = <&pwm8_pins_b>;
pinctrl-1 = <&pwm8_sleep_pins_b>;
pinctrl-names = "default", "sleep";
status = "okay";
};
};
进入董事会后,您可以通过查看以下内容来检查 PIN 是否已正确声明:
cat /sys/kernel/debug/pinctrl/soc:pin-controller@50002000/pinmux-pins | grep "timer"
它给了我:
pin 39 (PC7): device 44001000.timer:pwm function af3 group PC7
这证实它有效。
现在您可以验证文件夹的内容:
root@stm32mp1:~# ls /sys/class/pwm/
pwmchip0
root@stm32mp1:~# ls /sys/class/pwm/pwmchip0/
device export npwm power subsystem uevent unexport
好的,谢谢,我以为你没有整个文件夹 pwm。
要将文件夹
pwmchipx
放在文件夹
/sys/class/pwm
中,您必须在 dts 中配置并启用计时器。
在这个定时器中,你必须定义一个子节点 pwm 并设置它的管脚。
我查看了您发送的 DTS,我的印象是您为此目的启用了 timers1:
&timers1 {
/* spare dmas for other usage */
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
pwm1: pwm {
pinctrl-0 = <&pwm1_pins_a>;
pinctrl-1 = <&pwm1_sleep_pins_a>;
pinctrl-names = "default", "sleep";
status = "okay";
};
timer@0 {
status = "okay";
};
};
您已将 pwm pinctrl 设置为引脚 a。
但是你在 stm32mp15-pinctrl.dtsi 中的 pinctrl 设置很奇怪:
pwm1_pins_a: pwm1-0 {
pins {
pinmux =
,
;
bias-pull-down;
drive-push-pull;
slew-rate = <0>;
};
};
pwm1_sleep_pins_a: pwm1-sleep-0 {
pins {
pinmux =
,
;
};
};
如果您查看
STM32MP157F
的数据表
PA15 AF1与定时器1无关,与TIM2相关
和
PH6 AF1 不存在:
所以它不能工作。
我在我的 157F-DK2 上进行了测试,例如,我通过配置 timers8 成功获得了 /sys/class/pwm/ 的内容。
由于在我的板上可以使用 PC7 引脚,因此我在我的 pinctrl“stm32mp15-pinctrl.dtsi”中添加了一个 pwm pinmux:
pwm8_pins_b: pwm8-1 {
pins {
pinmux =
; /* TIM8_CH2 */
bias-pull-down;
drive-push-pull;
slew-rate = <0>;
};
};
pwm8_sleep_pins_b: pwm8-sleep-1 {
pins {
pinmux =
; /* TIM8_CH2 */
};
};
因为 PC7 AF3 专用于 TIM8:
然后我在 stm32mp157f-dk2.dts 中配置 timers8 以在其子节点 pwm 中使用这些引脚:
&timers8 {
status = "okay";
dmas = <&dmamux1 47 0x400 0x80000001>;
dma-names = "ch1";
pwm {
pinctrl-0 = <&pwm8_pins_b>;
pinctrl-1 = <&pwm8_sleep_pins_b>;
pinctrl-names = "default", "sleep";
status = "okay";
};
};
进入董事会后,您可以通过查看以下内容来检查 PIN 是否已正确声明:
cat /sys/kernel/debug/pinctrl/soc:pin-controller@50002000/pinmux-pins | grep "timer"
它给了我:
pin 39 (PC7): device 44001000.timer:pwm function af3 group PC7
这证实它有效。
现在您可以验证文件夹的内容:
root@stm32mp1:~# ls /sys/class/pwm/
pwmchip0
root@stm32mp1:~# ls /sys/class/pwm/pwmchip0/
device export npwm power subsystem uevent unexport
举报
更多回帖
rotate(-90deg);
回复
相关问答
PWM波
LINUX内核
bytes at port 输出的值恒定为零,串口助手可以读取数据,求问
可能是
什么问题
?
2018-05-25
5573
sysfs
platform总线
2018-06-26
1711
bytes at port 输出的值一直为0,串口助手可以读取数据,求问
可能是
什么问题
?
2024-05-22
5384
WCHBleLib_MultiOS
无法
发送数据是
什么问题
导致的?
2022-08-02
565
LS1043A开发板
上
J12
接口
接上pcie设备未被识别是
什么问题
2022-01-05
2477
使用STM32Cube IDE ctrl+click功能不起作用
可能是
什么问题
?
2023-01-05
234
在STM32H747软件菜单中看不到组件
可能是
什么问题
呢?
2022-12-27
216
为什么
无法
使用M24LR04e
上
的I2C更改扇区安全状态?
2023-01-04
160
AM3359 不启动:
上
电复位,没有信号输出(BOOT设置MMC0-UART0),讨论一下
可能是
什么问题
2018-05-15
2738
F407的LWIP TCP客户端实验连接不
上
2020-03-23
1630
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分