Chapter 4: BeagleBone Black Hardware - tshakthipradeep/BBB GitHub Wiki
I am using BBB Rev C for this tutorial. Image below is of Rev A5A. I will try to find a pic of Rev C or take a pic and upload it here. In fact there is no visual difference between these revisions.
BeagleBone Black Key Component Locations
BeagleBone Black Connector and Switch Locations
The expansion headers provide extensive I/O capabitilities.
Each digital I/O pin has 8 different modes that can be selected, including GPIO.
In GPIO mode, each digital I/O can produce interrupts.
Up to 8 digital I/O pins can be configured with pulse-width modulators (PWM) to produce signals to control motors or create analog voltage levels, without taking up any extra CPU cycles.
Make sure you don't input more than 1.8V to the analog input pins.
This is a single 12-bit analog-to-digital converter with 8 channels, 7 of which are made available on the headers.
There is a dedicated header for getting to the UART0 pins and connecting a debug cable. Five additional serial ports are brought to the expansion headers, but one of them only has a single direction brought to the headers.
The first I2C bus is utilized for reading EEPROMS on cape add-on boards and can't be used for other digital I/O operations without interfering with that function, but you can still use it to add other I2C devices at available addresses.
The second I2C bus is available for you to configure and use.
For shifting out data fast, you might consider using one of the SPI ports.
BeagleBone Black ships with two virtual capes already on it, one for the on-board eMMC storage and one for the HDMI output. When configured for use these virtual capes consume actual resources.
If the eMMC is not placed in reset, the MMC1* signals may not be used without potentially corrupting the contents of your on-board eMMC---and possibly damaging the physical circuit as well.
The HDMI signals are all inputs to the HDMI device, so there is no need to put the HDMI device into reset, but using those pins for other operations will cause the HDMI output to be disrupted. However, note that the Linux software typically allocates these for use by the HDMI driver, so your software might not be able to get access to them without unloading that driver.