Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Beaglebone black uart4 not receiving



> On Jan 5, 2024, at 9:35 PM, Brook Milligan <brook%nmsu.edu@localhost> wrote:
> 
> I have a Beaglebone black with a comms cape and am trying to get RS-485 communication working.  The block diagram is as follows:
> 
>        userland program <—> kernel /dev/tty01 <—> BBB uart4 <—> comm cape <—> RS-485 bus <—> endpoint device
> 
> Bottom line: transmission from the board’s uart4 works, a device on the bus responds, the response is on the uart4 rx pin, but the kernel never reports bytes received to the userland application.  I’m hoping for help debugging this.  The following provides greater detail.

The problem turns out to be that the “official” (such as they are) overlay for the comms cape is incorrect.  The device tree overlay is available here

	https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BBORG_COMMS-00A2.dts

However, the definitions given for the pinctrl-single,pins are wrong; they use an old style format that was changed in 2020.

They should be defined as follows:

&am33xx_pinmux {
	bborg_comms_can_pins: pinmux_comms_can_pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_INPUT_PULLUP, MUX_MODE2)
			AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_OUTPUT_PULLUP, MUX_MODE2)
		>;
	};

	bborg_comms_rs485_pins: pinmux_comms_rs485_pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_OUTPUT, MUX_MODE6)
			AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT, MUX_MODE6)
		>;
	};
};

With that the cape works great with the BBB.

Cheers,
Brook



Home | Main Index | Thread Index | Old Index