There are numerous drafts out there to try to simplify understanding of the PocketBeagle 2 headers. As of now, that’s not the purpose here. Instead, I’m trying to start by defining a reasonable subset of header functions that we can support as an organization. From that, I think we can move toward with creating simplified support documentation for supporting those specific modes.
To that end, I’d like to challenge you to see if this defines a useful subset of functionality and pin selection options for the vast collection of general purpose functions. Experts can always add-on and we can evolve this over time, but I want to prioritize 2-4 modes per-pin and pin-selection-per-function such that we can simplify decision making for those people who are not experts.
So, this is not yet meant to be at all easy to read. It reflects some of the priorities used in choosing what SoC signals connected to what pins. This was a very complicated process and simply could not be done in a way to make everyone happy, not even myself. But, it does represent a powerful collection of functions to control an amazing array of peripherals.
With this feature set mix, we have:
- USB high-speed host/device
- Battery input and charging
- PRU:
- 19 PRU0 I/Os
- 7 PRU1 I/Os
- UART
- ECAP
- 5 UARTs - 1 with an option for either an MCU UART or a processor UART
- 3 CAN
- 2 SPI (single hardware chip select)
- 2 I2C
- 2 I2S
- in and out bit-clocks and left-right clocks
- 3 I2S2 I/Os
- 2 I2S0 I/Os
- 3 quadrature encoders (w/o sync/index)
- 16-bit parallel video
- RGMII
- 3 ECAP
- 8 analog
This spreadsheet was created from scratch using the schematics and the TI SysConfig tool, so there may be errors. The second part of my request is that you look for those errors and point them out to me.
BeagleBone Cape Header Pins - PocketBeagle 2 (Max)(1).pdf (39.5 KB)
Source: BeagleBone Cape Header Pins - Google Sheets
Once we are comfortable with this a bit, we can define overlays for all the modes to make it easier. We can also provide symlinks for as much compatibility with the original PocketBeagle as possible, but that will mostly be limited to I2C, UART, and SPI. Analog and PWMs compatibility needs a lot of analysis, but might be possible with layered drivers.