McBSP serial communication between 2 Beagleboards xm

Hello,

kernel v4.9
I’m trying to establish a communication between 2 Beagleboards xm boards via McBSP1 interface.
I have configured McBSP1 as master for TX and slave for RX in both the boards. I can able to send and receive the data in looback mode.
But in case of board to board communication i’m unable to receive the data. I can see the data transmission in the scope.

Below is the registers dump

[ 4.562713] **** McBSP255 regs ****
[ 4.562713] DRR: 0x7f76ec9a
[ 4.562713] DXR: 0x0000
[ 4.562744] SPCR2: 0x02c3
[ 4.562744] SPCR1: 0x2001
[ 4.562744] RCR2: 0x0001
[ 4.562744] RCR1: 0x00a0
[ 4.562744] XCR2: 0x0001
[ 4.562774] XCR1: 0x00a0
[ 4.562774] SRGR2: 0x0020
[ 4.562774] SRGR1: 0x0060
[ 4.562774] PCR: 0x0a01
[ 4.562774] XCCR: 0x1008
[ 4.562805] RCCR: 0x0808
[ 4.562805] SYSCON: 0x0014

Any additional Register configurations required?

pinmuxing

    mcbsp1_pins: pinmux_mcbsp1_pins {
            pinctrl-single,pins = <
                    OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE0)        /* mcbsp1_fsx */
                    OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE0)        /* mcbsp1_clkx */ 
                    OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT | MUX_MODE0)         /* mcbsp1_dr */
                    OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE0)        /* mcbsp1_dx */
                    OMAP3_CORE1_IOPAD(0x218e, PIN_INPUT | MUX_MODE0)         /* mcbsp1_fsr */
                    OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT | MUX_MODE0)        /* mcbsp1_clkr */
            >;
    };

Can any one help me out to solve this issue .

Regards
khaleel

Hi, you are crossing the TX/RX wires? That is what it sounds like if loop-back is working on both boards.

Hi lakeweb,

Sorry for the confusion i’m not crossing TX/RX wires.
Done a loop-back by enabling DLB(Digital loop back) bit in XCCR register,
So that CLKX,FSX & DX internally connected to CLKR,FSR & DR pins.