Difference between revisions of "BBB-COMMS-2"

From Land Boards Wiki
Jump to navigation Jump to search
 
(85 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[File:tindie-mediums.png|link=https://www.tindie.com/products/land_boards/beaglebone-black-io-cape-bbb-comms-2/]]
+
[[File:tindie-mediums.png|link=https://www.tindie.com/products/9902/]]
 +
 
 +
[[File:BBB-COMMS-2-P418-720px.jpg]]
  
 
<video type="youtube">0mXV-AHFqqM</video>
 
<video type="youtube">0mXV-AHFqqM</video>
 
[[File:BBB-COMMS-2-P418-720px.jpg]]
 
  
 
== Features ==
 
== Features ==
Line 18: Line 18:
 
* Cape Support features
 
* Cape Support features
 
** Cape configuration EEPROM with write enable jumper
 
** Cape configuration EEPROM with write enable jumper
 +
** On I2C2 interface
 
* Beaglebone Black form factor
 
* Beaglebone Black form factor
 
* Power LED
 
* Power LED
Line 23: Line 24:
 
== Headers and Connectors ==
 
== Headers and Connectors ==
  
[[File:BBB-COMMS-1-CAD-OSHPark-X1.png]]
+
[[File:BBB-COMMS-02_RevX1.PNG]]
  
 
=== Header ===
 
=== Header ===
Line 34: Line 35:
 
=== Connectors ===
 
=== Connectors ===
  
==== H2-H9 = 4 Pin Headers ====
+
==== H2 - Power/Ground ====
<pre>
+
 
Card Header GPIO BBB Pin
+
# GND
H2-3 N/A N/A
+
# VCC
H2-4 (Key)
+
# No pin (KEY)
No pin
+
 
 +
==== H3 - GPIO3_19, GPIO1_17 ====
 +
 
 +
# GND
 +
# VCC
 +
# GPIO3_19 (P9_27)
 +
# GPIO1_17 (P9_23)
 +
 
 +
==== H4 - UART1 ====
 +
 
 +
# GND
 +
# VCC
 +
# UART1_TXD (P9_24)
 +
# UART1_RXD (P9_26)
 +
 
 +
==== H5 - UART2 ====
 +
 
 +
# GND
 +
# VCC
 +
# UART2_TXD (P9_21)
 +
# UART2_RXD (P9_22)
 +
 
 +
==== H6 - I2C1 ====
 +
 
 +
# GND
 +
# VCC
 +
# I2C1_SDA (P9_18)
 +
# I2C1_SCL (P9_17)
 +
 
 +
==== H7 - EHRPWM1A, GPIO1_28 ====
 +
 
 +
# GND
 +
# VCC
 +
# EHRPWM1A (P9_14)
 +
# GPIO1_28 (P9_12)
 +
 
 +
==== H8 - EHRPWM1B GPIO3_19 ====
 +
 
 +
# GND
 +
# VCC
 +
# EHRPWM1B (P9_16)
 +
# GPIO3_19 (P9_27)
 +
 
 +
==== H9 - UART4 ====
 +
 
 +
# GND
 +
# VCC
 +
# UART4_TXD (P9_C13)
 +
# UART4_RXD (P9_C11)
 +
 
 +
==== H10 - KEY ====
 +
 
 +
# GND
 +
# VCC
 +
# No pin (KEY)
 +
 
 +
==== H11 - GPIO1_29 ====
 +
 
 +
# GND
 +
# VCC
 +
# GPIO1_29 (P8_26)
 +
 
 +
==== H12 - GPIO2_1 ====
 +
 
 +
# GND
 +
# VCC
 +
# GPIO2_1 (P8_18)
 +
 
 +
==== H13 - GPIO0_27 ====
 +
 
 +
# GND
 +
# VCC
 +
# GPIO0_27 (P8_17)
 +
 
 +
==== H14 - GPIO1_14 ====
 +
 
 +
# GND
 +
# VCC
 +
# GPIO1_14 (P8_16)
 +
 
 +
==== H14 - GPIO1_14 ====
 +
 
 +
# GND
 +
# VCC
 +
# GPIO1_14 (P8_16)
 +
 
 +
==== H15 - GPIO1_15 ====
 +
 
 +
# GND
 +
# VCC
 +
# GPIO1_15 (P8_15)
 +
 
 +
==== H16 - GPIO1_12 ====
 +
 
 +
# GND
 +
# VCC
 +
# GPIO1_12 (P8_12)
 +
 
 +
==== H17 - GPIO1_13 ====
  
N/A N/A
+
# GND
H3-3 GPIO3_19 P9_27
+
# VCC
H3-4 GPIO1_17 P9_23
+
# GPIO1_13 (P8_11)
H4-3 UART1_TX P9_24
 
H4-4 UART1_RX P9_26
 
H5-3 UART2_TX P9_21
 
H5-4 UART2_RX P9_22
 
H6-3 I2C_SDA P9_18
 
H6-4 I2C_SCL P9_17
 
H7-3 EHPWM1B P9_16
 
H7-4 GPIO1_16 P9_15
 
H8-3 EHRPWM1A P9_14
 
H8-4 GPIO1_28 P9_12
 
H9-3 UART4_TX P9_13
 
H9-4 UART4_RX P9_11
 
</pre>
 
  
==== H10-H17 = 3 Pin Headers ====
+
== Schematics ==
<pre>
 
Card Header GPIO BBB Pin
 
H10-3 (KEY)
 
No pin
 
  
N/A N/A
+
* [http://land-boards.com/BBB-COMMS-2/BBB_COMMS_2_RevX1_Schematic.pdf Rev X1]
H11-3 GPIO1_29 P8_26
+
* [http://land-boards.com/BBB-COMMS-2/BBB_COMMS_2_RevX3_Schematic.pdf Rev X3]
H12-3 GPIO2_1 P8_18
 
H13-3 GPIO0_27 P8_17
 
H14-3 GPIO1_14 P8_16
 
H15-3 GPIO1_15 P8_15
 
H16-3 GPIO1_12 P8_12
 
H17-3 GPIO1_13 P8_11
 
</pre>
 
  
 
== Production Testing ==
 
== Production Testing ==
 +
 +
<video type="youtube">0mXV-AHFqqM</video>
  
 
=== Setup ===
 
=== Setup ===
  
* Install BBB-COMMS-2 on BBB
+
* Install BBB-COMMS-2 Unit Under Test (UUT) on BBB
 
* Install shunt at H1 (Write Enable)
 
* Install shunt at H1 (Write Enable)
 
* Ethernet connection to BBB
 
* Ethernet connection to BBB
 
* Power via 5V jack to BBB
 
* Power via 5V jack to BBB
* Verify 3.3V LED is lit
+
* Verify 3.3V PWR LED is lit
 
* Log in via putty
 
* Log in via putty
 
** User = root
 
** User = root
Line 89: Line 166:
 
=== GPIO Testing ===
 
=== GPIO Testing ===
  
* Hook up LED-32 Card to these pins
+
* Hook up [[LED-32]] Card to these pins
 +
** Connector "LED32-1" to Pins 1-20 of [[LED-32]]
 +
** Connector "LED32-21" to Pins 21-40 of [[LED-32]]
 +
* Hook up to UUT
 +
** Connector marked "H2-1" into GND pins on H2-H9
 +
** Connector marked "H2-2" into SIG pins on H2-H9
 +
** Connector marked "H10-3" into SIG pins on H10-H17
 
<pre>
 
<pre>
 
D0 = "P8_26"
 
D0 = "P8_26"
Line 116: Line 199:
 
cd ~/pyBBB/BBB-COMMS-2/blink-BBB-COMMS-2/
 
cd ~/pyBBB/BBB-COMMS-2/blink-BBB-COMMS-2/
 
python blink-BBB-COMMS-2.py
 
python blink-BBB-COMMS-2.py
 +
 
</pre>
 
</pre>
+
* Ctrl-C to stop
=== I2C Testing/EEPROM Programming ===
+
 
 +
=== EEPROM Programming ===
  
 
* Go to directory
 
* Go to directory
Line 127: Line 212:
 
cat data.eeprom > /sys/bus/i2c/devices/1-0054/eeprom
 
cat data.eeprom > /sys/bus/i2c/devices/1-0054/eeprom
 
cat /sys/bus/i2c/devices/1-0054/eeprom | hexdump -C
 
cat /sys/bus/i2c/devices/1-0054/eeprom | hexdump -C
 +
 
</pre>
 
</pre>
 
* Result should be like -
 
* Result should be like -
Line 168: Line 254:
 
cat /sys/bus/i2c/devices/1-0054/eeprom | hexdump -C
 
cat /sys/bus/i2c/devices/1-0054/eeprom | hexdump -C
 
   
 
   
 +
</pre>
 +
 +
== I2C Testing ==
 +
 +
<video type="youtube">66ku727KieA</video>
 +
 +
[[file:BBB-COMMS-2_I2CIO-8_Test-Setup_720px.png]]
 +
 +
=== Hardware ===
 +
 +
* UUT
 +
* [[I2CIO-8]]
 +
 +
=== Enable I2C Bus ===
 +
 +
* [http://land-boards.com/blwiki/index.php?title=BeagleBone#Enable_the_I2C_devices_on_the_BeagleBone_Black_Rev_C How-To enable the I2C devices on the BeagleBone Black Rev C]
 +
** [https://sites.google.com/a/cameon.net/beaglebone/home/i2c-devices Enable the I2C devices on the BeagleBone Black]
 +
* Physically connected to I2C1 port on the BBB-COMMS-2 card but is I2C-2 from the software
 +
* Probe I2C bus 2
 +
<pre>
 +
i2cdetect -y -r 2
 +
 +
</pre>
 +
* Card shows up at 0x20
 +
<pre>
 +
root@beaglebone:~/BBB/MCP23008# i2cdetect -y -r 2
 +
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 +
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
 +
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
70: -- -- -- -- -- -- -- --
 +
</pre>
 +
 +
==== 4 of I2CIO-8 cards ====
 +
 +
* Connect 4 of [[I2CIO-8]]
 +
** I2C daisy-chain
 +
** Address jumpers set for 0x20-0x23
 +
* Enter
 +
<pre>
 +
i2cdetect -y -r 2
 +
 +
</pre>
 +
* Result shows cards at 0x20-0x23
 +
<pre>
 +
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 +
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
 +
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
20: 20 21 22 23 -- -- -- -- -- -- -- -- -- -- -- --
 +
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
70: -- -- -- -- -- -- -- --
 +
</pre>
 +
 +
=== Run Example Code ===
 +
 +
* [https://github.com/land-boards/BBB/tree/master/MCP23008 MCP23008_ex.py - Example code]
 +
<pre>
 +
cd /root/BBB/MCP23008
 +
root@beaglebone:~/BBB/MCP23008# ls -al
 +
total 12
 +
drwxr-xr-x  2 root root 4096 Apr 23  2014 .
 +
drwxr-xr-x 17 root root 4096 Apr 23  2014 ..
 +
-rwxr-xr-x  1 root root 1508 Apr 24  2014 MCP23008_ex.py
 +
</pre>
 +
* Run using
 
<pre>
 
<pre>
 +
python MCP23008_ex.py
 +
 +
</pre>
 +
 +
=== I2C Timing ===
 +
 +
* 100 KHz
 +
 +
[[file:I2C_Testing-01.PNG]]
 +
 +
== Drivers / Example Code ==
 +
 +
=== Blink LEDs code ===
 +
 +
* [https://github.com/land-boards/BBB/blob/master/BBB-COMMS-2/blink-BBB-COMMS-2/blink-BBB-COMMS-2.py Blink LEDS on BBB-COMMS-2 GPIO lines]
 +
 +
=== I2C Example Code ===
 +
 +
* [https://github.com/land-boards/BBB/tree/master/MCP23008 MCP23008 Example code]
 +
** [http://land-boards.com/blwiki/index.php?title=BeagleBone#Enable_the_I2C_devices_on_the_BeagleBone_Black_Rev_C Enable the I2C devices on the BeagleBone Black Rev C]
 +
** 2nd method - [https://datko.net/2013/11/03/bbb_i2c/ BeagleBone Black I2C References]
 +
* [https://sites.google.com/a/cameon.net/beaglebone/home/i2c-devices Enable the I2C devices on the BeagleBone Black]
 +
 +
== Issues ==
 +
 +
* Document the issues with the builds
 +
 +
=== Rev X3 ===
 +
 +
* Fixed soldermask offset to = 0
 +
* Change some silkscreen sizes
 +
** BBB-COMMS-2 smaller
 +
*** REV larger
 +
* Change silkscreen on I2C to I2C1
 +
 +
[[file:BBB-COMMS-02_RevX3.PNG]]
 +
 +
=== Rev X2 ===
 +
 +
* Skipped
 +
 +
=== Rev X1 ===
 +
 +
* No functional issues
  
 
== BBB-COMMS-2 Assembly Sheet/Parts List ==
 
== BBB-COMMS-2 Assembly Sheet/Parts List ==
  
 
* [[BBB-COMMS-2 Rev X1 Assembly Sheet]]
 
* [[BBB-COMMS-2 Rev X1 Assembly Sheet]]
 +
* [[BBB-COMMS-2 Rev X3 Assembly Sheet]]

Latest revision as of 21:24, 8 April 2022

Tindie-mediums.png

BBB-COMMS-2-P418-720px.jpg

Features

Extensive I/O connections

  • (13) GPIOs - GVS (Ground/Voltage/Signal) pins
    • GVS (Ground/Voltage/Signal) pins
  • (3) UARTs - GVTxRx (Ground/Voltage/Tx/Rx) pins
    • GVTxRx (Ground/Voltage/Tx/Rx) pins
  • (1) I2C bus- GVSdaScl (Ground/Voltage/SDA/SCL) pins
    • GVSdaScl (Ground/Voltage/SDA/SCL) pins
    • Support for keyed headers
  • Cape Support features
    • Cape configuration EEPROM with write enable jumper
    • On I2C2 interface
  • Beaglebone Black form factor
  • Power LED

Headers and Connectors

BBB-COMMS-02 RevX1.PNG

Header

H1 - Write Enable Header

  • Install jumper onto header to allow writes to EEPROM
  • Remove jumper from header to prevent writes to EEPROM

Connectors

H2 - Power/Ground

  1. GND
  2. VCC
  3. No pin (KEY)

H3 - GPIO3_19, GPIO1_17

  1. GND
  2. VCC
  3. GPIO3_19 (P9_27)
  4. GPIO1_17 (P9_23)

H4 - UART1

  1. GND
  2. VCC
  3. UART1_TXD (P9_24)
  4. UART1_RXD (P9_26)

H5 - UART2

  1. GND
  2. VCC
  3. UART2_TXD (P9_21)
  4. UART2_RXD (P9_22)

H6 - I2C1

  1. GND
  2. VCC
  3. I2C1_SDA (P9_18)
  4. I2C1_SCL (P9_17)

H7 - EHRPWM1A, GPIO1_28

  1. GND
  2. VCC
  3. EHRPWM1A (P9_14)
  4. GPIO1_28 (P9_12)

H8 - EHRPWM1B GPIO3_19

  1. GND
  2. VCC
  3. EHRPWM1B (P9_16)
  4. GPIO3_19 (P9_27)

H9 - UART4

  1. GND
  2. VCC
  3. UART4_TXD (P9_C13)
  4. UART4_RXD (P9_C11)

H10 - KEY

  1. GND
  2. VCC
  3. No pin (KEY)

H11 - GPIO1_29

  1. GND
  2. VCC
  3. GPIO1_29 (P8_26)

H12 - GPIO2_1

  1. GND
  2. VCC
  3. GPIO2_1 (P8_18)

H13 - GPIO0_27

  1. GND
  2. VCC
  3. GPIO0_27 (P8_17)

H14 - GPIO1_14

  1. GND
  2. VCC
  3. GPIO1_14 (P8_16)

H14 - GPIO1_14

  1. GND
  2. VCC
  3. GPIO1_14 (P8_16)

H15 - GPIO1_15

  1. GND
  2. VCC
  3. GPIO1_15 (P8_15)

H16 - GPIO1_12

  1. GND
  2. VCC
  3. GPIO1_12 (P8_12)

H17 - GPIO1_13

  1. GND
  2. VCC
  3. GPIO1_13 (P8_11)

Schematics

Production Testing

Setup

  • Install BBB-COMMS-2 Unit Under Test (UUT) on BBB
  • Install shunt at H1 (Write Enable)
  • Ethernet connection to BBB
  • Power via 5V jack to BBB
  • Verify 3.3V PWR LED is lit
  • Log in via putty
    • User = root
    • Password = enter

GPIO Testing

  • Hook up LED-32 Card to these pins
    • Connector "LED32-1" to Pins 1-20 of LED-32
    • Connector "LED32-21" to Pins 21-40 of LED-32
  • Hook up to UUT
    • Connector marked "H2-1" into GND pins on H2-H9
    • Connector marked "H2-2" into SIG pins on H2-H9
    • Connector marked "H10-3" into SIG pins on H10-H17
D0 = "P8_26"
D1 = "P8_17"
D2 = "P8_15"
D3 = "P8_11"
D4 = "P9_23"
D5 = "P9_26"
D6 = "P9_22"
D7 = "P9_15"
D8 = "P9_12"
D9 = "P9_11"

D16 = "P8_18"
D17 = "P8_16"
D18 = "P8_12"
D19 = "P9_27"
D20 = "P9_24"
D21 = "P9_21"
D22 = "P9_16"
D23 = "P9_14"
D24 = "P9_13"
  • Run test via:
cd ~/pyBBB/BBB-COMMS-2/blink-BBB-COMMS-2/
python blink-BBB-COMMS-2.py

  • Ctrl-C to stop

EEPROM Programming

  • Go to directory
  • Program the EEPROM
  • Verify by typing
cd ~/pyBBB/BBB-COMMS-2/mkeeprom
cat data.eeprom > /sys/bus/i2c/devices/1-0054/eeprom
cat /sys/bus/i2c/devices/1-0054/eeprom | hexdump -C

  • Result should be like -
00000000  aa 55 33 ee 41 30 42 42  42 2d 47 56 53 2d 33 00  |.U3.A0BBB-COMMS-|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |2...............|
00000020  00 00 00 00 00 00 58 31  00 00 4c 61 6e 64 20 42  |......X1..Land B|
00000030  6f 61 72 64 73 2c 20 4c  4c 43 42 42 42 2d 47 56  |oards, LLCBBB-CO|
00000040  53 2d 33 00 00 00 00 00  00 00 00 00 30 30 30 30  |MS-2........0000|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 fa 01 f4  |................|
000000f0  00 fa 00 00 ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000100  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00008000
  • Remove WE jumper
  • Type
cat data.eeprom > /sys/bus/i2c/devices/1-0054/eeprom
 
  • Result should be error
root@BBB01:~/pyBBB/BBB-COMMS-2/mkeeprom# cat data.eeprom > /sys/bus/i2c/devices/1-0054/eeprom
cat: write error: Connection timed out
  • Prepare to re-run
  • Type
halt
  • Combined Copy/Paste
cd ~/pyBBB/BBB-COMMS-2/blink-BBB-COMMS-2
python blink-BBB-COMMS-2.py

cd ~/pyBBB/BBB-COMMS-2/mkeeprom/
cat data.eeprom > /sys/bus/i2c/devices/1-0054/eeprom
cat /sys/bus/i2c/devices/1-0054/eeprom | hexdump -C
 

I2C Testing

BBB-COMMS-2 I2CIO-8 Test-Setup 720px.png

Hardware

Enable I2C Bus

i2cdetect -y -r 2

  • Card shows up at 0x20
root@beaglebone:~/BBB/MCP23008# i2cdetect -y -r 2
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

4 of I2CIO-8 cards

  • Connect 4 of I2CIO-8
    • I2C daisy-chain
    • Address jumpers set for 0x20-0x23
  • Enter
i2cdetect -y -r 2

  • Result shows cards at 0x20-0x23
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 21 22 23 -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Run Example Code

cd /root/BBB/MCP23008
root@beaglebone:~/BBB/MCP23008# ls -al
total 12
drwxr-xr-x  2 root root 4096 Apr 23  2014 .
drwxr-xr-x 17 root root 4096 Apr 23  2014 ..
-rwxr-xr-x  1 root root 1508 Apr 24  2014 MCP23008_ex.py
  • Run using
python MCP23008_ex.py

I2C Timing

  • 100 KHz

I2C Testing-01.PNG

Drivers / Example Code

Blink LEDs code

I2C Example Code

Issues

  • Document the issues with the builds

Rev X3

  • Fixed soldermask offset to = 0
  • Change some silkscreen sizes
    • BBB-COMMS-2 smaller
      • REV larger
  • Change silkscreen on I2C to I2C1

BBB-COMMS-02 RevX3.PNG

Rev X2

  • Skipped

Rev X1

  • No functional issues

BBB-COMMS-2 Assembly Sheet/Parts List