This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5728:未检测到自定义摄像头连接

Guru**** 2606725 points
Other Parts Discussed in Thread: AM5728

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/584261/linux-am5728-custom-camera-connection-not-detected

器件型号:AM5728

工具/软件:Linux

大家好、

我们使用 AM5728进行开发、并尝试使用 VIP 模块的摄像头用例、我们开发了连接 到电路板 P16接头的定制连接器。

我们使用与 LCD 模块连接的同一摄像头。 (http://www.ti.com/tool/TMDSCM572X 、此摄像头的驱动程序(mt9t11x.ko)已在 PSDK 中提供。

下面是 PCB 设计人员所做的更改、以便我们可以将该摄像头直接连接到 P16接头

现有引脚配置 I2C5_SCL I2C5_SDA OSC_EN 缓冲器_EN GPIO CAM_PWR
焊球名称 McASP1_axr1 McASP1_axr0 McASP1 _轴8 McASP1_axr10 McASP1_axr11 McASP1_axr9
信号名称 I2C5_SCL I2C5_SDA GPIO5_10 GPIO5_12 GPIO4_17 GPIO5_11
Beagalboard 扩展中的引脚可 Lable P18_4 P18_3. P16_34 P16_33 P16_3. P16_4.
Am5728焊盘 F12 G12. B12. B13. 解答12. 解答11.
新引脚配置 I2C5_SCL I2C5_SDA OSC_EN 缓冲器_EN GPIO CAM_PWR
焊球名称 GPMC_A4 GPMC_A5 GPMC_AD12 GPMC_AD13 GPMC_AD14 GPMC_AD15
信号名称 I2C5_SCL I2C5_SDA GPIO1_18 GPIO1_19 GPIO1_20 GPIO1_21
Beagalboard 扩展中的引脚可 Lable P16_10. P16_13. P16_24. P16_26. P16_27. P16_25
AM5728中的标签引脚 R9. H1 J3. H2 H3
添加了额外的引脚 凸轮_EN
焊球名称 GPMC_A13
信号名称 GPIO2_3
Beagalboard 扩展中的引脚可 Lable P16_7.
AM5728中的标签引脚 R3

 基于上述详细信息、我更新 了 DTS 文件、如下所示

am57xx-evm.dts

&dra7_PMX_CORE{

----

//为新的 EVM 凸轮模块添加了
i2c5_pins_default:i2c5_pins_default{
pinctrl-single、pins =<
//DRA7XX_CORE_IOPAD (0x3450、(PIN_INPUT_PULLUP | MUX_MODE7))/* GPMC_A4.i2c5_sda TRM 4226*/
//DRA7XX_CORE_IOPAD (0x3454、(PIN_INPUT_PULLUP | MUX_MODE7))/* GPMC_A5.i2c5_SCL *
0x50 (PIN_INPUT_PULLUP | MUX_MODE7)/* GPMC_A4.i2c5_sda TRM 4226新方法*/
0x54 (PIN_INPUT_PULLUP | MUX_MODE7)/* GPMC_A5.i2c5_SCL *

>;
};

--

am57xx-evm-common.dtsi  

i2c5{(&I)
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&i2c5_PINS_DEFAULT>;
时钟频率=<400000>;
mt9t11x@3C{
兼容="Aptina、mt9t111";
reg =<0x33>;

/*原始定义*/
//RESET-GPIO =<&GPIO4 17 GPIO_ACTIVE_LOW>;
//oscen-GPIO =<&GPIO5 10 GPIO_ACTIVE_HIGH_>;
///sPowerdown-GPIO =<&GPIO5 11 GPIO_ACTIVE_LOW>;
//bufen-GPIO =<&GPIO5 12 GPIO_ACTIVE_LOW>;
//camen-GPIO =<&GPIO6 11 GPIO_ACTIVE_LOW>;

/*2017年3月27日新定义*/
RESET-GPIO =<&GPIO1 20 GPIO_ACTIVE_LOW>;
oscen-goios =<&GPIO1 18 GPIO_ACTIVE_HIGH>;
POWERDOT-GPIOs =<&GPIO1 21 GPIO_ACTIVE_LOW>;
bufen-GPIO =<&GPIO1 19 GPIO_ACTIVE_LOW>;

端口{
CAM:端点{
远程端点=<&V vin3a>;
HSYNC-ACTIVE =<1>;
vsync-active =<1>;
pclk-sample =<0>;
输入时钟频率=<32000000>;
PIXEL 时钟频率=<96000000 >;
};
};
};
};

然后编译 am57xx-evm.dtb 文件并推入/boot 文件夹并重新引导。 但在 pinmux 信息中、它仍然 没有被声明

root@am57xx-EVM:/sys/kernel/debug/pinctrl/4a003400.pinmux cat pinmux-pins
每个引脚的 Pinmux 设置

引脚20 (4a003450.0):(MUX 未声明)(GPIO 未声明)
引脚21 (4a003454.0):(MUX 未声明)(GPIO 未声明)

 因为我不熟悉此设备树概念。 任何人都可以指导我出错的地方。

任何指针都很棒!!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我不明白。 您是将 AM572x GP EVM 与定制摄像头板配合使用、还是将 EVM 摄像头与定制 AM572x 板配合使用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    我们使用的是 AM572x GP EVM 的摄像头模块和处理器模块。

    processors.wiki.ti.com/.../AM572x_GP_EVM_Hardware_Setup

    由于摄像头模块只能通过我们不想使用的 LCD 模块进行连接,我们开发了定制摄像头连接板,它可以帮助我们直接将摄像头模块与处理器模块相连,而无需 LCD 模块。

    我希望现在它能有所帮助!!
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您是否正在使用最新的 SDK? 如果是、I2C5有多个 padconf 定义。 在最新的 SDK 中、焊盘配置在 u-boot 中完成。

    因此、您可以从 mux_data.h 中定义 I2C5 padconf、如下所示:
    const struct pad_conf_entry core_padconf_array_Essential x15[]={
    …………
    …………
    {McASP1_AXR0、(M10 | PIN_INPUT_PULLUP)}、// McASP1_axr0.i2c5_sda *
    {McASP1_AXR1、(M10 | PIN_INPUT_PULLUP)}、// McASP1_axr1.i2c5_SCL *

    而 GPMC_A4和 GPMC_A5用于 VIN 引脚多路复用:
    {GPMC_A0、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_a0.vin3A_D16 *
    {GPMC_A1、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A1.vin3a_d17 *
    {GPMC_A2、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A2.vin3a_d18 *
    {GPMC_A3、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A3.vin3A_D19 *
    {GPMC_A4、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A4.vin3a_d20 *
    {GPMC_A5、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A5.vin3A_D21 *
    {GPMC_A6、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A6.vin3A_D22 *
    {GPMC_A7、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A7.vin3A_D23 *
    {GPMC_A8、(M2 | PIN_INPUT_PULLUGDOWN | MANUAL_MODE)}、// GPMC_A8.vin3a_hsynct0 *
    {GPMC_A9、(M2 | PIN_INPUT_PULLUGDOWN | MANUAL_MODE)}、// GPMC_A9.vin3a_vsynct0 *
    {GPMC_A10、(M2 | PIN_INPUT_PULLUGDOWN | MANUAL_MODE)}、// GPMC_A10.vin3a_de0 *
    {GPMC_A11、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、// GPMC_A11.vin3a_fld0 *

    正如我看到的、VIN3a 也用于 DTS:
    vin3a{(&V)
    状态="正常";
    端点{
    从模式;
    远程端点=<凸轮>;
    };
    };

    因此、这很可能会破坏您的引脚多路复用设置。 您需要重新配置 u-boot 和内核。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yordan Kovachev、您好!

    感谢您的指示。 根据您在 mux_data.h 中的建议、我们尝试在下面进行更改

    const struct pad_conf_entry core_padconf_array_Essential x15[]={

    //将 GPMC A4&A5从 vin3a 更改为 i2c5

    /*{GPMC_A4、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、*///* GPMC_A4.vin3a_d20 *
    /*{GPMC_A5、(M2 | PIN_INPUT 下拉| MANUAL_MODE)}、*///* GPMC_A5.vin3a_D21 *
    {GPMC_A4、(M7 | PIN_INPUT_PULLUP)}、/* GPMC_A4.i2c5_sda *
    {GPMC_A5、(M7 | PIN_INPUT_PULLUP)}、// GPMC_A5.i2c5_SCL *

    ----

    //删除 McASP1_axr0/McASP1_axr1作为 i2c5

    /*{McASP1_AXR0、(M10 | PIN_INPUT_PULLUP)}、*//* McASP1_axr0.i2c5_sda *
    /*{McASP1_AXR1、(M10 | PIN_INPUT_PULLUP)}、*//* McASP1_axr1.i2c5_SCL *

    ----

    此外、我们还保留了之前在 DTS 文件中所做的更改、如下所示

    am57xx-EVM-reva3.dts 和 am57xx-evm.dts

    &dra7_PMX_CORE{

    ----

    i2c5_pins_default:i2c5_pins_default{
    pinctrl-single、pins =<
    DRA7XX_CORE_IOPAD (0x3450、(PIN_INPUT_PULLUP | MUX_MODE7))/* GPMC_A4.i2c5_sda TRM 4226*/
    DRA7XX_CORE_IOPAD (0x3454、(PIN_INPUT_PULLUP | MUX_MODE7))/* GPMC_A5.i2c5_SCL *
    >;
    };

    但是,在编译和安装 zImage、uboot 和 dtb 文件后,我们会遇到启动错误。

    wait_target_disable 失败
    [21.058250] omap_hwmod:mu0_dsp2:_wait_target_disable 失败
    [21.084971] OMAP_hwmod:mu1_dsp1:_wait_target_disable 失败
    [21.104523] omap_hwmod:mu0_dsp1:_wait_target_disable 失败
    [**](第2页,共2页)正在为... al 服务(1分钟29秒/ 1分钟30秒)运行启动作业[94.413213] systemd[1]:dev-ttyO2.device:作业 dev-ttyO2.devi。
    [94.420641] systemd[1]:等待器件 dev-ttyO2.device 时超时。
    [时间]等待设备 dev-ttyO2.device 超时。
    [94.448752] systemd[1]:对 ttyO2上的串行 Getty 的依赖项失败。
    [Depend]依赖项对 tyO2上的串行 Getty 失败。
    [94.478723] systemd[1]:serial-getty@ttyO2.servICE:作业 serial-getty@ttyO2.servICE/START 失败,结果为'DEPendency'。
    [94.489836] systemd[1]:dev-ttyO2.device:作业 dev-ttyO2.device/start 失败,结果为“超时”。
    [94.913209] systemd[1]:systemd-journald.service:启动操作超时。 正在终止。
    [***]日记账服务的启动作业(1min 42s/3min)[107.176065] IRQ 246:无人照管(尝试使用"irqpoly"选项引导)
    [107.182910] CPU:0 PID:0 Comm:swapper/0被污染:G O 4.4.3.32-gadde2ca9f8 #2
    [107.191144]硬件名称:通用 DRA74X (平展设备树)
    [107.197281]回溯:
    [107.199564]
    [107.201252][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
    [107.208873] r7:000000f6
    [107.211245] R6:200e0193[107.213794] R5:00000000
    [107.216164] R4:c0954dcc[107.218713]
    [107.220216][ ](show_stack)从[ ](dump_stack+0x8c/0xa0)
    [107.227497][ ](dump_stack)从[ ](__REPORT_BAD_IRQ+0x30/0xD4)
    [107.235291] r7:000000f6
    [107.237661] R6:00000002[107.240212] R5:00000000
    [107.242581] R4:ea2bd80[107.245130]
    [107.246631][ ](__report_BAD_IRQ),来自[ ](NOTE_INTERRUPT+0x2AC/0x2fc)
    [107.254952] R9:ee2bd80
    [107.257321] r8:000000f6[107.259872] r7:000000f6
    [107.262244] R6:00000002[107.264796] R5:00000000
    [107.267165] R4:eea2bd80
    [107.269897][ ](NOTE_INTERRUPT)从[ ](handle_irq_event_perpu + 0x104/0x160)
    [107.278831] R10:c0981832
    [107.281289] R9:ee2bd80[107.283839] R8:000000f6.
    [107.286209] r7:00002003[107.288758] r6:00000002
    [107.291127] R5:00000002
    [107.293853] R4:00000000
    [107.29824] r3:00000000 [107.298775]
    [107.300276][ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT_+0x40/0x64)
    [107.309208] R10:00000000
    [107.311665] R9:200e0193[107.314215] R8:00000001
    [107.316584] r7:ea45210[107.319134] r6:ea2bd90
    [107.321508] R5:eea2bde0
    [107.324234] R4:eea2bd80
    [107.326603]
    [107.328284][ ](handle_irq_event)从[ ](handle_EDGE_IRQ+0xec/0x198)
    [107.336603] r7:ea45210
    [107.338973] R6:ea2bd90[107.341523] R5:ee2bde0
    [107.343891] R4:ea2bd80[107.346440]
    [107.347943][ ](handle_EDGE_IRQ)从[ ](generic_handle_IRQ+0x2C/0x3c)
    [107.356350] r7:ee45210
    [107.358719] R6:ea45268[107.361269] R5:ea45264
    [107.363639] R4:0000000c[107.366188]
    [107.367694][ ](generic_handle_IRQ)、来自[ ](OMAP-GPIO_IRQ_handler + 0x134/0x174)
    [107.376805][ ](OMAP-GPIO_IRQ_handler)、来自[ ](handle_irq_event_perpu+b0x4/0x160)
    [107.386263] R10:c0981832
    [107.388720] R9:ee2b240[107.391270] R8:000000e9
    [107.393640] r7:0000[107.396189] r6:00000000
    [107.398559] R5:ee2b2a0
    [107.401283] R4:eea2d140
    [107.403653]
    [107.405332][ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT_+0x40/0x64)
    [107.414262] R10:c092a50c
    [107.416720] R9:c067a214[107.419269] R8:ee808000
    [107.421638] r7:0000[107.424187] r6:c0955024
    [107.426557] R5:eea2b2a0
    [107.429282] R4:eea2b240
    [107.431652]
    [107.433333][ ](handle_irq_event)从[ ](handle_fasteoi_IRQ+0xc0/0x194)
    [107.441914] r7:00000000
    [107.444284] R6:c0955024[107.446834] R5:ee2b2a0
    [107.449204] R4:eea2b240[107.451753]
    [107.453253][ ](handle_fasteoi_IRQ)、来自[ ](generic_handle_IRQ+0x2C/0x3c)
    [107.461924] r7:00000000
    [107.464297] R6:00000000[107.466846] R5:000000e9.
    [107.469217] R4:c0924424[107.471766]
    [107.473265][ ](generic_handle_IRQ)、来自[ ](_handle_domain_IRQ+0x64/bb)
    [107.482030][ ](_handle_domain_IRQ)、来自[ ](GIC_Handle_IRQ+0x40/0x7c)
    [107.490437] R9:c067a214
    [107.492808] R8:fa213000[107.495358] r7:fa212000
    [107.497728] R6:c0929ef0[107.500281] R5:fa21200c
    [107.502651] R4:c092a8e0
    [107.505380][ ](GIC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x40/0x74)
    [107.512916]异常堆栈(0xc0929ef0至0xc0929f38)
    [107.518003] 9e0:00000001 00000000 fe600000 00000000
    [107.526237] 9f00:c0928000 c092a4ac 00000000 c0929f60 c067a214 c092a50c c0929f4c
    [107.534471] 9f20:c0929f2c c0929f40 c0027ae8 c0010540 600e0013 ffffff
    [107.541129] R9:c067a214
    [107.543491] R8:c0929f60[107.546051] r7:c0929f24
    [107.548420] R6:ffefFFF[107.55097] R5:600e0013
    [107.553341] R4:c0010540
    [107.556075][ ](arch_cpu_idle)从[ ](DEFAULT_IDLE_CALL + 0x28/0x34)
    [107.564228][ ](DEFAULT_IDLE_CALL)从[ ](CPU_STARTUP_END+0x200/0x260)
    [107.572903][ ](CPU_STARTUP_INPUK)、来自[ ](REST_INIT+0x90/0x94)
    [107.580696] r7:00000000
    [107.583066]
    [107.584749][ ](REST_INIT)从[ ](start_kernel+0x400/0x40c)
    [107.592281] R5:c0984000
    [107.594652] R4:c0984040[107.597201]
    [107.598700][ ](start_kernel)从[<80008090>](0x80008090)
    [107.605270]处理程序:
    [107.607556][ ] IRQ_DEFAULT_PRIMARE_Handler
    [107.612383]螺纹[ ] tpd_HPD_ISR[107.616857]
    [107.618353]正在禁用 IRQ #246
    [***]日记账服务的启动作业(3min/3min)[185.163204] systemd[1]:systemd-journald.service:状态“顶部-最终-Σ”。
    [***]日记账服务正在运行启动作业(3min/4min 30s)[185.188966] systemd[1]:systemd-journald.service:主进程已退出,L
    [185.198490] systemd[1]:无法启动日志服务。
    [失败]无法启动日志服务。

    你能不能在我们错过的任何事情上帮助你解决问题!!

    Regardse2e.ti.com/.../boot_5F00_log_5F00_30_5F00_match_5F00_12_5F00_30_5F00_pm.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yordan Kovachev、您好!

    感谢您提出 u-boot 侧更改建议。

    在 Linux 端、需要更改文件 dts 是 am57xx-beagle-x15-common.dtsi。 在该引脚多路复用器正常工作之后。

    root@am57xx-EVM:~# ls /dev/i2c-
    I2C-0 i2c-2 i2c-4.

    root@am57xx-EVM:/sys/kernel/debug/pinctrl/4a003400.pinmux cat pinmux-pins
    引脚20 (4a003450.0):4807c000.i2c (GPIO 未声明)功能 i2c5_PINS_DEFAULT 组 i2c5_PINS_DEFAULT
    引脚21 (4a003454.0):4807c000.i2c (GPIO 未声明)功能 i2c5_PINS_DEFAULT 组 i2c5_PINS_DEFAULT

    root@am57xx-evm:/proc/device-tree/ocp cat i2c\@480*/ status
    好的、好的、禁用的、好的

    现在、当我加载驱动程序时、我可以看到以下问题

    ========================================================================================

    [296.715179] mt9t11x:不同意符号 v4l2_i2c_subdev_init 的版本
    [296.722192] mt9t11x:未知符号 v4l2_i2c_subdev_init (错误-22)
    [296.728717] mt9t11x:不同意符号 i2c_register_driver 的版本
    [296.735743] mt9t11x:未知符号 i2c_register_driver (err -22)
    [296.741970] mt9t11x:不同意符号 i2c_transfer 的版本
    [296.748358] mt9t11x:未知符号 i2c_transfer (err -22)
    [296.753972] mt9t11x:不同意符号 i2c_del_driver 的版本
    [296.760579] mt9t11x:未知符号 i2c_del_driver (错误-22)

    ========================================================================================

    我正在调试这个、如果需要、将打开一个新的 e2e 帖子  

    感谢您的帮助!!

    此致

    Pallab Sarkar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您更新该主题。

    此致、
    Yordan