Skip to content

Instantly share code, notes, and snippets.

@pdp7
Last active April 20, 2019 04:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pdp7/09fdbcc332eae59fe4e05eb6f7647c78 to your computer and use it in GitHub Desktop.
Save pdp7/09fdbcc332eae59fe4e05eb6f7647c78 to your computer and use it in GitHub Desktop.
Macchina: SWCAN with PocketBeagle and M2

Macchina PocketBeagle M2

debian@beaglebone:~$ dmesg |grep -i can |grep -v Cannot
[    1.222748] CAN device driver interface
[    1.223974] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=39)
[    1.224890] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=40)
[    1.339441] can: controller area network core (rev 20170425 abi 9)
[   36.260718] mcp251x spi2.1 can2: MCP2515 successfully initialized.
debian@beaglebone:~$ uname -r
4.14.79-ti-r82
debian@beaglebone:~$ cat /etc/dogtag 
BeagleBoard.org Debian Image 2018-11-11
debian@beaglebone:~$ cat /etc/debian_version 
9.6
debian@beaglebone:~$ sudo ip link set can2 type can bitrate 500000 listen-only on
[sudo] password for debian: 
debian@beaglebone:~$ sudo ifconfig can2 up
debian@beaglebone:~$ sudo ifconfig can2
can2: flags=193<UP,RUNNING,NOARP>  mtu 16
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 10  (UNSPEC)
        RX packets 19132  bytes 102192 (99.7 KiB)
        RX errors 848  dropped 0  overruns 0  frame 848
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
debian@beaglebone:~$ dmesg
[  593.971347] can: raw protocol (rev 20170425)

debian@beaglebone:~$ candump -cae can2,0:0,#FFFFFFFF |head -25
  can2  1DC41FE6   [8]  7F 23 71 C7 6F CF D6 FB   '.#q.o...'
  can2       1D5   [8]  remote request
  can2       5EF   [0]                            ''
  can2  1DC41FE6   [8]  7F 23 71 C7 6F CF D6 FB   '.#q.o...'
  can2       1D5   [8]  remote request
  can2  1DC41FE6   [8]  7F 23 71 C7 6F CF D6 FB   '.#q.o...'
  can2       1D5   [8]  remote request
  can2  1DC41FE6   [8]  7F 23 71 C7 6F CF D6 FB   '.#q.o...'
  can2       1D5   [8]  remote request
  can2  1DC41FE6   [8]  7F 23 71 C7 6F CF D6 FB   '.#q.o...'
  can2       5EF   [0]                            ''
  can2       1D5   [8]  remote request
  can2  1DC41FE6   [8]  7F 23 71 C7 6F CF D6 FB   '.#q.o...'
  can2       5EF   [0]                            ''
  can2       1D5   [8]  remote request
  can2  1DC41FE6   [8]  7F 23 71 C7 6F CF D6 FB   '.#q.o...'
  can2       1D5   [8]  remote request
  can2  1DC41FE6   [8]  7F 23 71 C7 6F CF D6 FB   '.#q.o...'
  can2       5EF   [0]                            ''
  can2       1D5   [8]  remote request
  can2       5EF   [0]                            ''
  can2       1D5   [8]  remote request
  can2       5EF   [0]                            ''
  can2       1D5   [8]  remote request
@pdp7
Copy link
Author

pdp7 commented Apr 19, 2019

@pdp7
Copy link
Author

pdp7 commented Apr 19, 2019

@pdp7
Copy link
Author

pdp7 commented Apr 19, 2019

Is this correct?

  • M0: P2.06
  • M1: P2.18

https://gist.github.com/pdp7/e0dcfaca4e478be000987fb0105f2560

                        P2_06_pinmux { status = "disabled"; };  /* SWC M0 */
                        P2_18_pinmux { status = "disabled"; };  /* SWC M1 */

https://gist.github.com/pdp7/c9232831cea1bc544fb9d6d1bd3df905

        fragment@0 {
                target = <&ocp>;
                __overlay__ {
/* 
M2 J4.20: SWC nINT <-> P2.8 <&gpio1 28 0>, needs GPIO input
M2 J3.6 : SWC_nRESET  <-> P2.32 GPIO 112 / PRU0.2, <&gpio3 16 0>, needs GPIO OUTPUT
M2 J4.9 : SWC_M0  <-> P2.6
M2 J4.28: SWC_M1  <-> P2.18
*/
			P1_12_pinmux { status = "disabled"; };	/* MOSI - gpio0_4 */
			P1_10_pinmux { status = "disabled"; };	/* MISO - gpio0_3 */
			P1_08_pinmux { status = "disabled"; };	/* CLK - gpio0_2 */
			P1_06_pinmux { status = "disabled"; };	/* CS - gpio0_5 */

                        P2_08_pinmux { status = "disabled"; };  /* SWC nINT */
                        P2_32_pinmux { status = "disabled"; };  /* SWC nRESET */
                };
	};

https://gist.github.com/pdp7/5741ff33c899f877ea22343980124849


Macchina SPI0 for SWCAN MCP2515 is PocketBeagle SPI1

Macchina PB adapter J3 is PB P1
Macchina PB adapter J2 is next to J3 / PB P1

Macchina PB adapter J4 is PB P2
Macchina PB adapter J1 is next to J4 / PB P2

https://github.com/macchina/pocketbeagle-adapter-hardware/blob/master/SCH-01010%20R0%20SCHEM_RELEASE.PDF
https://github.com/macchina/m2-hardware/tree/master/M2-B
https://github.com/macchina/m2-hardware/blob/master/M2-B/Interface%20Board%20PCB.pdf

M2 J3 is plugs into PB adapter J2, next to PB P1 (which is PB adapter J3)
M2 J4 is plugs into PB adapter J1, next to PB P2 (which is PB adapter J4)

M2 J4.20: SWC nINT <-> P2.8
M2 J3.6 : SWC_nRESET  <-> P2.32
M2 J4.9 : SWC_M0  <-> P2.6
M2 J4.28: SWC_M1  <-> P2.18
M2 J3.30: SWC_CLK  <-> NC
M2 J4.25: SWC_SOF  <-> NC
M2 J4.29: SWC_nRX0BF  <-> NC
M2 J4.30: SWC_nRX1BF  <-> NC

M2 J4.27: SPI0_CLK  <-> PB adapter J2.27: SPI1_CLK
M2 J4.24: SPI0_MISO <-> PB adapter J2.24: SPI1_MISO
M2 J4.26: SPI0_MOSI <-> PB adapter J2.26: SPI1_MOSI
M2 J3.25: SPI0_nCS3 <-> PB adapter J1.25: SPI1_CS

PB adapter J4.25: SPI1_MOSI <-> PB 2.25: SPI1_MOSI
PB adapter J4.27: SPI1_MISO <-> PB 2.27: SPI1_MISO
PB adapter J4.29: SPI1_CLK  <-> PB 2.29: SPI1_CLK
PB adapter J4.31: SPI1_CS   <-> PB 2.31: SPI1_CS

1006 Signals    1006 headers2    1010/PB header
SWC nRESET      J3P6             P2-32
SPI0_nCS3       J3P25            P2-31
SPI0 MISO       J4P24            P2-27
SPI0 MOSI       J4P26            P2-25
SPI0 CLK        J4P27            P2-29
SWC nINT        J4P20            P2-8
SWC nRX0BF      J4P29            NC
SWC nRX1BF      J4P30            NC
SWC SOF         J4P25            NC
SWC CLK         J3P30            NC
SWC M0          J4P9             P2-6
SWC M1          J4P28            P2-18

@pdp7
Copy link
Author

pdp7 commented Apr 20, 2019

M2 J4.20: SWC nINT <-> P2.8 <&gpio1 28 0>, needs GPIO input
M2 J3.6 : SWC_nRESET  <-> P2.32 GPIO 112 / PRU0.2, <&gpio3 16 0>, needs GPIO OUTPUT
M2 J4.9 : SWC_M0  <-> P2.6 GPIO 57, needs GPIO OUTPUT
M2 J4.28: SWC_M1  <-> P2.18 GPIO 47, needs GPIO OUTPUT

@pdp7
Copy link
Author

pdp7 commented Apr 20, 2019

Josh:

Look at PB adapter connector J3 pin 9 is M0, J3 pin 28 is M1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment