完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好我的板子基于STM32mp135f-dk板子来设计的,使用buildroot编译(st/2023.02.2),通过修改开发板的设备树来实现我的功能(buildroot-external-st/board/stmicroelectronics/stm32mp1/linux-dts/stm32mp135f-dk-mx.dts)。
我一共使用了3路i2c,i21,i2c3和i2c5 设备树添加如下 i2c1{pinctrl-names = "default", "sleep";pinctrl-0 = < i2c1_pins_mx>;pinctrl-1 = < i2c1_sleep_pins_mx>;//status = "okay";status = "okay"; / USER CODE BEGIN i2c1 /i2c-scl-rising-time-ns = <170>;i2c-scl-falling-time-ns = <5>;clock-frequency = <100000>;/delete-property/ dmas;/delete-property/ dma-names;//pcf8563@51{// compatible = "nxp,pcf8563";// reg = <0x51>;// status = "okay";//};}; i2c3{pinctrl-names = "default", "sleep";pinctrl-0 = < i2c3_pins_mx>;pinctrl-1 = < i2c3_sleep_pins_mx>;status = "okay"; / USER CODE BEGIN i2c1 /i2c-scl-rising-time-ns = <170>;i2c-scl-falling-time-ns = <5>;clock-frequency = <100000>;/delete-property/ dmas;/delete-property/ dma-names;pcf8563@51{compatible = "nxp,pcf8563";reg = <0x51>;status = "okay";};}; i2c5{pinctrl-names = "default", "sleep";pinctrl-0 = < i2c5_pins_mx>;pinctrl-1 = < i2c5_sleep_pins_mx>;status = "okay"; / USER CODE BEGIN i2c5 /i2c-scl-rising-time-ns = <170>;i2c-scl-falling-time-ns = <5>; ... 但编译下载到板子上发现并没有i2c3下的设备枚举过程 然后在i2c/busses/i2c-stm32f7.c中增加log打印(stm32f7_i2c_probe的进入) diff --git a/drivers/i2c/busses/i2c-stm32f7.c b/drivers/i2c/busses/i2c-stm32f7.cindex 7bb4a4af4..db6957db7 100644--- a/drivers/i2c/busses/i2c-stm32f7.c+++ b/drivers/i2c/busses/i2c-stm32f7.c@@ -2092,6 +2092,7 @@ static int stm32f7_i2c_probe(struct platform_device pdev)struct reset_control rst;dma_addr_t phy_addr;int irq_error, irq_event, ret;
dmesg | grep hgs [ 3.629664] hgs begin stm32f7_i2c_probe[ 3.632602] stm32f7-i2c 40012000.i2c: hgs stm32f7_i2c_probe[ 3.702230] hgs begin stm32f7_i2c_probe[ 3.708457] stm32f7-i2c 4c006000.i2c: hgs stm32f7_i2c_probe 请问如果让i2c3正常probe |
|
相关推荐
1个回答
|
|
您好!根据您提供的信息,您正在使用基于STM32MP135F-DK板子的自定义硬件,并使用Buildroot(版本2023.02.2)进行编译。您已经修改了设备树文件(buildroot-external-st/board/stmicroelectronics/stm32mp1/linux-dts/stm32mp135f-dk-mx.dts)以实现所需的功能,并使用了3个I2C接口(I2C1、I2C3和I2C5)。您遇到了I2C3无法正常probe的问题。
为了解决这个问题,请按照以下步骤操作: 1. 检查I2C3的设备树配置:首先,请确保I2C3的设备树配置正确。检查I2C3的节点是否已经添加到设备树文件中,并且配置了正确的pinctrl-names、pinctrl-0和pinctrl-1属性。例如: ``` i2c3 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c3_pins_mx>; pinctrl-1 = <&i2c3_sleep_pins_mx>; status = "okay"; }; ``` 2. 检查I2C3的引脚配置:确保I2C3的SDA和SCL引脚已经正确连接到您的自定义硬件上,并且与您的设备兼容。检查引脚配置是否正确,例如: ``` &i2c3 { pins1 { pinmux = bias-pull-up; }; pins2 { pinmux = bias-pull-up; }; }; ``` 3. 检查I2C3的驱动程序:确保您的内核已经包含了I2C3的驱动程序。您可以在内核配置文件(.config)中查找I2C3驱动程序的相关选项,例如: ``` CONFIG_I2C_STM32=y ``` 4. 检查I2C3的设备:确保您要连接的I2C设备已经正确连接到I2C3的SDA和SCL引脚上,并且设备已经上电。 5. 重新编译和烧录:在完成上述检查和修改后,重新编译您的Buildroot项目,并将新的镜像烧录到您的板子上。 6. 检查系统日志:在烧录新的镜像后,检查系统日志以获取有关I2C3的probe失败的详细信息。您可以使用以下命令查看日志: ``` dmesg | grep i2c ``` 根据日志中的信息,您可以进一步诊断问题并进行相应的调整。 希望这些建议能帮助您解决I2C3无法正常probe的问题。如果问题仍然存在,请随时提供更多详细信息,以便我们为您提供更具体的帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1609 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1540 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
681 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1587 浏览 2 评论
1861浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
528浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
503浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 01:28 , Processed in 0.799612 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号