OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7177|回复: 5

IMX6系列 beep设备树节点设置疑问

[复制链接]

2

主题

141

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2020-11-21
在线时间
67 小时
发表于 2021-6-23 17:09:47 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 511386807 于 2021-6-24 10:13 编辑

      在I.MX6U-MINI开发板上跟着视频教程编写beep蜂鸣器驱动实验,视频教程中说设置beep的pinctrl节点时,一定要注意那个寄存器的选择,一个是MX6ULL,一个是MX6UL,但是我实际测试时,发现不管选哪种寄存器,蜂鸣器都可以响?这是为什么?这是PDF教程中要求的设置

1

1

下面是我自己设备树中的设置

2

2

3

3

不管是设置  MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01        0x10B0
还是设置  MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x01B0
蜂鸣器都可以正常响
这两个宏定义的值专门看了一下,是不一样的。
4.jpg

5.jpg
其实一开始写的时候,这个值设置的是MX6UL,结果蜂鸣器测试正常,就没在意,看视频教程的时候,才发现这里还需要注意一下,于是又重新测试了好几遍,发现这两个值不管用哪个,蜂鸣器都能响。为了彻底验证,直接把这两个值全部屏蔽了

6

6

结果蜂鸣器依然可以响。怀疑是不是设备树加载错了,看了一下设备树名也是对的。
7.jpg
这下彻底怀疑人生了!

开始怀疑是设备树中在其他地方设置了这个值,但是搜索了一下没有其他地方设置,只有蜂鸣器用到了这个,所以感到很奇怪?有没有人遇到这种情况?

为了防止自己的设备树加载错误,于是做了如下测试:
开发板为SD卡启动模式,uboot启动成功后通过网络 从Ubuntu虚拟机中tftpboot文件夹中加载设备树和镜像文件。
1.确定设备树加载正确,将Ubuntu虚拟机中tftpboot文件夹中设备树文件删除,启动开发板,开发板启动失败,提示找不到设备树文件。证明设备树文件加载是正常的。
2.重新编译设备树,将设备树中beep节点里面的内容全部屏蔽,然后重新编译,将设备树文件拷贝到tftpboot目录中重启开发板,开发板启动成功,使用命令打开蜂鸣器时,提示不能获取到 gpio 端口号,说明设备树里面的代码也能正确执行。
3. 将设备树中 pinctrl_beep: beepgrp 节点内,设置宏定义寄存器值代码屏蔽掉,重新编译设备树,启动系统,测试蜂鸣器,蜂鸣器可以正常响和关闭。说明设备树中设置寄存器的值没有起到作用。
4. 为了确认设备树中的寄存器值可以不用设置,将gpioled章节中的pinctrl_led: ledgrp 里面寄存器设置的内容也屏蔽掉,重新编译设备树,然后将设备树文件拷贝到tftpboot目录中重启测试,发现LED灯 也可以正常的亮灭,说明设备树中对LED灯寄存器的设备也没有起到作用。

8

8


如果有使用I.MX6U-MINI 开发板的同学,麻烦你们在自己开发板上也测试一下,看看屏蔽设备树中的寄存器值设置,LED 或者 BEEP 还能不能正常运行,看看只有我是这种情况还是大家都是这种情况?所有的程序代码都是按照 【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.pdf  上面敲的。

设备树和程序代码.zip

44.73 KB, 下载次数: 2

最佳答案

查看完整内容[请看2#楼]

因为你这个beep驱动不是基于Platformz总线的因此设备树对应beep的pinctrl不会起作用,又因为这个IO口默认是GPIO,所以你怎么弄都是可以响
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

22

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2017-10-25
在线时间
16 小时
发表于 2021-6-23 17:09:48 | 显示全部楼层
因为你这个beep驱动不是基于Platformz总线的因此设备树对应beep的pinctrl不会起作用,又因为这个IO口默认是GPIO,所以你怎么弄都是可以响
回复

使用道具 举报

3

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2019-10-28
在线时间
37 小时
发表于 2021-6-23 17:57:20 | 显示全部楼层
是不是驱动没卸载
回复

使用道具 举报

2

主题

141

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2020-11-21
在线时间
67 小时
 楼主| 发表于 2021-6-23 18:01:08 | 显示全部楼层

每次测试都是卸载驱动,然后重启开发板。
回复

使用道具 举报

3

主题

22

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2017-10-25
在线时间
16 小时
发表于 2021-6-26 10:00:40 | 显示全部楼层
你要么改驱动成platform的,或者把pinctrl放在iomux节点的pinctrl-hog里
回复

使用道具 举报

2

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2019-5-17
在线时间
273 小时
发表于 2022-7-15 10:24:31 | 显示全部楼层
后来怎么解决的?我也是学到了BEEP   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 10:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表