Rick,
Please check whether good boards from other lots also have this glitch. This may be systemic as VIN for Bucks and LDOs inside TPS65217C need >2.7V input to function. Please see Table in Section 7.5 of the datasheet(https://www.ti.com/lit/ds/symlink/tps65217.pdf) for details. The power rails failing like described could be explained if SYS_VOUT behaves as shown in the scope shot.
Please also check battery capacity for in-rush. I suggest additional testing with robust power supply to the input.
Note that SYS_VOUT is connected to VBAT input via a FET(see Figure 11 in the datasheet), so SYS_VOUT should be = to VBAT. The “POWER PATH INPUT CURRENT LIMITS” section in the datasheet also lists the VBAT load current as 2A. If you have access to it, I would also suggest testing with VIN_USB which has a much better 500mA current limit.
Best,
Neeraj
Rick,
SYS_VOUT is responsible for powering the regulators and LDOs of the PMIC. Take a look at https://octavosystems.com/app_notes/osd335x-c-sip-power-application-note/ for the internal power configuration. The 50uF capacitor helps SYS_VOUT support the input to the rails of the the PMIC.
Regarding the behavior you are seeing, here are a few questions:
1. How many boards does this occur on?
2. From the picture you posted, it looks like SYS_VOUT is at 4V and not at 5?
3. Can you map the input voltage as well? The theory is that the power rail that is supplying power to the SiP is unable to support the in-rush. In-rush specifications are also provided in the power application note linked above.
We have not seen this behavior before, but the power glitch is probably responsible for inaccurate output voltages of the PMIC. Note that these voltages are out of spec for the internal sub-systems and could damage the devices they are powering.
Best,
Neeraj
For completeness of this post, EEPROM_WP(M2) can be used to disable write protect for the internal EEPROM. This pin has an internal pull-up.
Best,
Neeraj
The Micro-USB port for the BRK is designed to function as a peripheral port with added RNDIS function. It is probably not detecting the dongle because the ID pin(PA10) is not connected to the Micro-USB connector of BRK board. You will notice all device tree examples shown in https://wiki.st.com/stm32mpu/wiki/OTG_device_tree_configuration use the ID pin. As Carlos suggested, you can try assigning the OTG port as a “host” by following the example shown here: https://wiki.st.com/stm32mpu/wiki/OTG_device_tree_configuration#DT_configuration_example_as_high-speed_OTG_in_Host_or_Peripheral_mode-2C_with_micro-B_or_Type-C_connector-2C_and_with_VBUS_and_ID_left_unconnected replacing “peripheral” with “host”.
Please also note that BRK exposes the USB Host port data pins on header pins PB29 and PB30(https://octavosystems.com/docs/osd32mp1-brk-schematics/). You should be able to use a USB Type A Female breakout board such as https://www.sparkfun.com/products/12700 to connect your WiFi dongle to USB1 peripheral of MP1.
Duplicate question. Replied Offline as well as https://octavosystems.com/forums/topic/usb-only-works-for-rndis/
Jack,
‘H’ and ‘L’ refer to reset release states. This is the state of the pin after reset is released, but the pin is not being controlled by firmware.
Please take a look at https://www.kernel.org/doc/Documentation/devicetree/bindings/gpio/gpio.txt for information on specifying gpio definitions in device tree. On newer kernels, it is possible to do definitions like this:https://github.com/STMicroelectronics/linux/blob/v6.1-stm32mp/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi#L218C3-L218C45 for reset.
Best,
Neeraj
You are correct. USB1_OCN output of TPS2051 is used to indicate an over current on USB1 Host interface of the board With GPMC_A10 configured as GPIO input.
While this is implemented in hardware, by connecting the OC output of TPS2051 to GPMC_A10, this also needs software configuration to work. This is not currently implemented in dev board images, which is why you did not see pinmux setup for GPMC_A10.
In order to implement the feature, an interrupt must be captured on GPMC_A10 and handles by the USB host driver to turn of USB_DRVVBUS. It should be implemented in TI’s USB stack outlined here: https://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components/Kernel/Kernel_Drivers/USB/MUSB.html. It does not look like this is implemented: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/usb/musb/musb_am335x.c.
However, there the USB PHY controller in AM335x has undervoltage protection that monitors VBUS voltage and turns it OFF when VBUS goes below 4.4V. Please see https://e2e.ti.com/support/processors-group/processors/f/processors-forum/533061/am335x-usb-overcurrent-input for a discussion on TI forums.
Best,
Neeraj
Jeff,
Apologies for the late reply.
It looks like there is an issue with reset-gpio you defined in the mdio node. Please check whether the reset GPIO is working and is in the desired state when the Ethernet PHY is being probed.
Best,
Neeraj
Ryan,
Although VIN_BAT operating voltage range is lower(2.75V – https://www.ti.com/lit/ds/symlink/tps65217.pdf), note that the input should be able to support boot device voltage(3.3V), so actual required voltage on VIN_BAT is higher. Having said that, VBAT does offer wider voltage input than USB.
We recommend prototyping to understand what the implications are and how much capacitance you will need for your application to support safe shutdown.
Best,
Neeraj
mlarkin,
This is s new failure mode. Is firmware running on these boards? Is the behavior consistent or erratic on the boards that are shutting down?
Can you measure PMIC output voltages to check everything is OK? See https://octavosystems.com/app_notes/osd32mp1-power-system-overview/ for power rails and levels. Do you see activity on RSTn?
Please look for Turn-OFF conditions also described in Section 2.3 of the app note.
Best,
Neeraj
Ryan,
This should be possible as PMIC is able to switch from AC to USB input when VIN_AC goes below 4.1V(See 8.3.9.1 in PMIC datasheet: https://www.ti.com/lit/ds/symlink/tps65217.pdf).
However, note that valid voltage on VIN_USB is 4.3V or higher. So, you will have to make sure the voltage at the USB input stays above that range until shutdown occurs.
Please also check out https://octavosystems.com/app_notes/am335x-battery-applications-with-osd335x-sip/ and https://www.ti.com/lit/an/slva901/slva901.pdf.
Best,
Neeraj
Stephen,
This is unexpected behavior. We would expect to see similar performance to discrete MP1 implementation.
CPU load would depend on what applications are running. There are some differences between DK2 and RED board in terms of package configuration. Please take a look at “top” output to see what the difference is. Also review your clock tree(not just cpu)? See https://wiki.st.com/stm32mpu/wiki/Clock_overview to view clk_summary.
Best,
Neeraj
Stephen,
OSD32MP15x-512M uses x16 DDR. The DDR configuration file can be found here: https://github.com/octavosystems/OSD32MP1-RED-Device-tree/blob/main/tf-a-v2.4-r0/osd32mp1_ddr_1x4Gb.dtsi. This was generated using ST’s CubeMX tool and can be used with OpenSTLinux. Please take a look at https://github.com/octavosystems/meta-octavo-osd32mp1 for yocto compatible meta layer for OSD32MP1-RED.
Best,
Neeraj
Julius,
The device tree snippet you posted looks okay(- formatting). Here are a few things to check:
1. Check the regulator information with “cat /sys/kernel/debug/regulator/regulator_summary” to see if VREF is present and whether it is used by ADC. The summary should show you the voltage setting as well as where it is being used. See https://wiki.st.com/stm32mpu/wiki/Regulator_overview for additional information
2. Is vdda-supply(vdda) > 2.8V on your board? See https://www.st.com/resource/en/application_note/dm00389996-getting-started-with-stm32mp151-stm32mp153-and-stm32mp157-line-hardware-development-stmicroelectronics.pdf section 4.1.1 for reference. Note that VDDA is internally supplied by LDO5 in OSD32MP1. Please make sure that all voltage and ADC specific settings are good in the adc node. See example here: https://github.com/STMicroelectronics/linux/blob/v5.10-stm32mp/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi#LL119C7-L119C7(Note the difference, on DK2, VDDA is supplied by VDD)
3. Make sure that the clock is OK. vref clock should be listed in /sys/kernel/debug/clk/clk_summary
4. Make sure you are not supplying external reference to VREF+ when you are activating VREFBUF internally. What does this pin voltage measure on your board?
Best,
Neeraj
Daniel,
For #1, https://community.st.com/s/question/0D53W00000cxRieSAE/wakeup-on-gpio-in-linux-on-stm32mp1 seems to have relevant information.
I have not tired this, but libgpiod can be of help for user space GPIO event detection: https://github.com/starnight/libgpiod-example/blob/master/libgpiod-event/main.c#L33
For #2, I believe you can enable/disable any wake up source via sysfs. For example, to disable a wake up source, “echo disabled > /sys/devices/platform/soc/<peripheral directory>/power/wakeup”
Best,
Neeraj
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields