Bow-Nan Cheng,
Internal Oscillator for PS_REF_CLK can be disabled by pulling down OSC_OE pin. PS_REF_CLK is available as package pin B26. Please see https://octavosystems.com/docs/osdzu3-ref-schematics/ for more information.
Best,
Neeraj
Simon,
The first thing to check would be if there is a back current on VDDSHV/SYS_VDD3_3P3V. This can happen if the IO of the processor are being driven/pulled-up by an external device that is still being powered after the PMIC power rails have come down. Please take a look at the power down sequencing of the PMIC in relation to the power down sequencing of the rest of the board.
Best,
Neeraj
Simon,
Appreciate the update. Thanks!
Best,
Neeraj
Ben,
Please see https://wiki.st.com/stm32mpu/wiki/CAN_overview, this page also links to a couple of other “How to” pages that might be useful.
Best,
Neeraj
Judy,
Have you looked at https://octavosystems.com/forums/topic/spi-nor-from-u-boot/#post-6713 in specific pinmux definitions that are needed?
Please also take a look at https://e2e.ti.com/support/processors-group/processors/f/processors-forum/758423/linux-am5718-qspi-boot-fail-spi-probe-failed with the same error. While the post is for a different device all the inputs should apply to AM335x.
Best,
Neeraj
Ed,
Please contact sales(at)octavosystems.com for a discussion on this.
Best,
Neeraj
Simon,
I cannot see the pictures you posted, not sure why. Here are some inputs based on your description:
On #1, These are digital IO of the PMIC, not sure if there is an issue with them going Low during power down.
On #2, can you check your PMIC registers, specifically 0x19 – 0x1E(see https://www.ti.com/lit/ds/symlink/tps65217.pdf) and make sure they correspond to ‘C’ version of the PMIC?
You can go through support if you are facing issues including/attaching images.
Best,
Neeraj
Marco,
The Linux kernel is already configured to use the DDR as needed. See https://github.com/STMicroelectronics/linux/blob/v6.1-stm32mp/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi#L20 for the device tree configuration of the DDR. Memory can be allocated and freed accordingly in your application.
Best,
Neeraj
Marco,
Assuming the ADC has an I2C interface, BRK has a number of I2C devices available. Please see https://octavosystems.com/octavosystems.com/wp-content/uploads/2020/05/Default-Pin-Mapping.pdf for pin-mux details. These I2C interfaces are exposed as /dev/i2cX, which you can use to communicate over. See for example: https://elinux.org/Interfacing_with_I2C_Devices, where several system calls are used to communicate over the I2C bus.
You can also enable the Linux Kernel driver available for the ADC using device tree: https://wiki.st.com/stm32mpu-ecosystem-v3/wiki/I2C_device_tree_configuration. You will need to recompile your device tree and boot the board with the new device tree. The driver will provide several virtual files in the file system in /sys/class/i2c/ to configure the ADC as well as measure ADC inputs. See https://wiki.st.com/stm32mpu-ecosystem-v3/wiki/How_to_compile_the_device_tree_with_the_Developer_Package for a software SDK that ST provides for compiling device tree.
Best,
Neeraj
Hey Marco,
The Getting Started Guide provides an introduction to the hardware and how to bring-up the board. As you said, it is a good starting point, but not a comprehensive guide to all functionality.
Having said that, the goal of the MP1 family from both ST and Octavo perspective is to provide a good path to customers such as yourself to MPU and Embedded Linux. There is a lot of support documentation to achieve this. I will try to provide some useful info below:
1. Start here on ST’s Wiki that talks about basic platform functionality and features of the SoC: https://wiki.st.com/stm32mpu/wiki/STM32MP15_microprocessor
2. https://wiki.st.com/stm32mpu-ecosystem-v3/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2 provides a little more detailed guide on how to write applications for A7 and M4 cores. Most of the procedure should be applicable for the BRK as well.
3. https://wiki.st.com/stm32mpu-ecosystem-v3/wiki/Category:How_to links to a number of pages that explain how to do a specific task.
4. https://wiki.st.com/stm32mpu-ecosystem-v3/wiki/Category:Linux_Operating_System provides information on almost all peripherals, their drivers and how to use them: https://wiki.st.com/stm32mpu-ecosystem-v3/wiki/Category:Linux_Operating_System
For example, please see https://wiki.st.com/stm32mpu-ecosystem-v3/wiki/How_to_control_a_GPIO_in_userspace for the user space program to control GPIOs that you are looking for.
I would also advise you on learning a little more about Linux and SYSFS. A lot of how you do things in Linux is by way of writing to virtual device “files” like /dev/gpiochip0 or using command line to execute individual commands or shell scripts that set configuration and ask the kernel to execute system calls.
Octavo provides Debian SDK(https://github.com/octavosystems/osd32mp1-debian) and OpenSTLinux layer(https://github.com/octavosystems/meta-octavo-osd32mp1) to add support for Octavo dev boards on top of ST’s ecosystem.
Best,
Neeraj
Judy,
You will need to change the device tree in order to enable the SPI flash functionality. https://github.com/RobertCNelson/dtb-rebuilder provides a good way to do custom device trees. SM-RED’s device tree can be found here: https://github.com/octavosystems/OSD335x-Device-Tree/tree/master.
Please take a look at https://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components/Kernel/Kernel_Drivers/SPI.html for additional information. Example implementation from ICEV2 board: https://github.com/RobertCNelson/dtb-rebuilder/blob/4.14-ti/src/arm/am335x-icev2-common.dtsi#L233
Best,
Neeraj
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.
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