Powering Pocket Beagle

This forum is for supported devices using an ARMv7 Texas Instruments (TI) SoC.

Powering Pocket Beagle

Postby jesseF » Tue Jul 05, 2022 12:36 am

I've been trying to figure out why my Pocket Beagle reboots all the time. Basically, I never see uptime > 1 day. Recently, I plugged a USB cable into the Pocket Beagle and now, it seems to have stopped resetting.

Normally, power comes from a 5V step down regulator connected to Vin (P1.1). It seems that this should be a viable way to power it, but maybe not? do I need to configure the power management IC?
jesseF
 
Posts: 24
Joined: Mon Jun 15, 2020 3:36 am

Re: Powering Pocket Beagle

Postby summers » Sat Jul 09, 2022 7:15 am

Mine works just getting power from the usb connection. It's been up for several years without problems! So must admit I've never looked at what monitoring you can do. Or come to that if you can down clock it. My guess it's it's something you can set at boot time, by modifying the device tree...
summers
 
Posts: 984
Joined: Sat Sep 06, 2014 12:56 pm

Re: Powering Pocket Beagle

Postby jesseF » Sat Jul 09, 2022 1:29 pm

Yea, mine works when I use a USB cable too, just makes more sense to use Vin in my application cause I'm powered off a wall adapter through a 5V regulator.
I figure there are some settings to set in the TPS65217C, but I have seen no documentation on what they might be. I think there are programmable current limits on the various inputs?
One thing that I did try, was to disable shutdown from the button, thinking that maybe the TPS65217C might be giving spurious events, but this doesn't seemed to have changed things.

Is there somewhere to go for documentation? I'm struggling to find any sort of info that actually makes sense on how to use device tree overlays and what options there might be for the TPS65217C.
jesseF
 
Posts: 24
Joined: Mon Jun 15, 2020 3:36 am

Re: Powering Pocket Beagle

Postby summers » Mon Jul 11, 2022 3:17 pm

Easyest, and may only way, of programming low level inputs like this is via the device tree. It lives in the pocket beagle under "/proc/device-tree" but can't program much from there its usually done in uboot.

First learn what you can set in the device tree, I'd suggest reading:
https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/am335x-pocketbeagle.dts
https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/am33xx.dtsi
https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/am335x-osd335x-common.dtsi
https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/tps65217.dtsi

And look at settings. You may just need to bitbash external ports to set up something external. So you'll probably have to check the wiring. I don't think the pocketbeagle has any significant external chips (quick look at mine, and big metal can I'd guess is a cystal - but would need to look closer to be sure - but some of the hardware inside the main osd device, you may need to bit bash.

To set things in the device tree (and probably similar for bitbash) look at /boot/boot.txt, you'll want to add text that looks like:
$this->bbcode_second_pass_code('', 'if load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} /boot/Image; then
if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} /boot/dtbs/${fdtfile}; then
fdt addr ${fdt_addr_r}
fdt set /soc/apb@d0000000/mmc@74000 max-frequency <0x08f0d180>
if load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} /boot/initramfs-linux.img; then
booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r};
else
booti ${kernel_addr_r} - ${fdt_addr_r};
fi;
fi;
fi
')
So the setting of the device tree address and then changing parameters - above came from an odroid-c2 (setting flash speed), so it will be different on the pocketbeagle, IIRC most interesting stuff on the pocket beagle lives under ocp. You'll then need to make it into /boot/boot.scr - and thats what uboot will read on boot up, and set before linux is loaded ...

And looking at the address on my pocket beagle, looks like the tps is attached via i2c:

$this->bbcode_second_pass_code('', '/proc/device-tree/ocp/interconnect@44c00000/segment@200000/target-module@b000/i2c@0/tps@24')

So you may be able to change things via i2c, but read the documentation, as its password protected.

And check what the kernel is doing and how it does the password: https://github.com/torvalds/linux/blob/master/drivers/mfd/tps65217.c

And see this thread: https://groups.google.com/g/beagleboard/c/g_HbV8Gn3WE

And could try P1.7 which *may* be VIN.USB

And from that last link, that points to TI slva901 which pretty much explains the problem and way round https://www.ti.com/lit/an/slva901/slva901.pdf
summers
 
Posts: 984
Joined: Sat Sep 06, 2014 12:56 pm


Return to Texas Instruments (TI)

Who is online

Users browsing this forum: No registered users and 6 guests