cancel
Showing results for 
Search instead for 
Did you mean: 

USB3DR OTG Functionality on STM32MP257F-DK Board

jhkim
Associate II

We are currently developing a demo product using the STM32MP257F-DK board.

We have flashed the firmware using the file .images\stm32mp25-disco\flashlayout_st-image-core\optee\FlashLayout_emmc_stm32mp257f-dk-optee.tsv

However, we found that the USB DRD port (CN15) is not being recognized.

Upon checking the device tree source in the kernel, we observed that the USB3DR functionality appears to be controlled via , suggesting that an MCU may be required for this functionality.i2c_rpmsg

We would like to confirm the following:

  1. Is the USB3 Dual Role (USB3DR) OTG feature dependent on the Cortex-M33 MCU for proper operation?
  2. Is it possible to enable and test the USB3DR OTG function without involving the MCU, especially if our goal is to minimize power consumption?
  3. Can the CC (Control Channel) pins be handled purely on the A7 side, or is MCU intervention mandatory for proper role detection and control?
  4. What is the correct way to enable and test USB OTG functionality on the STM32MP257F-DK board without using the MCU?

We would greatly appreciate your guidance or reference to any relevant documentation, firmware examples, or configuration tips.

 

[Please paste the URL here]

USB overview - stm32mpu

USB3DR device tree configuration - stm32mpu

USB3DR internal peripheral - stm32mpu

COMBOPHY device tree configuration - stm32mpu

UCPD internal peripheral - stm32mpu

OTG device tree configuration - stm32mpu

Linux RPMsg framework overview - stm32mpu

1 REPLY 1
Raggio
Associate III

We are also facing the same issues with the STM32MP257F-EV1 board, as we intend to use the M33 core to perform other functions. 

We have found a guide to force "peripheral-only" working mode, but is sub-optimal as it is not following the USB standard (VBUS and ID are not properly handled): https://wiki.stmicroelectronics.cn/stm32mpu/wiki/USB3DR_device_tree_configuration#DT_configuration_example_as_USB2-speed_only_USB3DR_in_Peripheral_mode--with_micro-B-28ID_left_unconnected-29_or_Type-C_connector


We also have tested the combination suggested in: https://wiki.stmicroelectronics.cn/stm32mpu/wiki/OTG_device_tree_configuration#DT_configuration_example_as_high_speed_OTG.2C_with_micro-B_connector.2C_Vbus_and_ID_mapped_on_GPIOs

 

But in this case, the configuration not only didn't enabled the "read" of OTG pins (VBUS - ID) but also rendered  the USB_DRD port unresponsive to connections. Also when connecting with the UMS function of U-BOOT, the only configuration that work is the following with maximum-speed = "full-speed":
https://wiki.stmicroelectronics.cn/stm32mpu/wiki/How_to_configure_U-Boot_for_your_board#On_STM32MP2-lines_and_STM32MP2-lines

 

As with the suggested maximum-speed = "high-speed" it fails to mount as scsi unit in Unbuntu 20.04, even if it is correctly recognised as a "USB download gadget".

 

Thank you for any help