Hi all,

For days now, I've been attempting to get the Waveshare RS485/CAN Cape to 
work on Beaglebone black.

I've used kernels 4.4.x and 4.9.x-ti mainline, and encountered the same 
problem.

The cape can use any UART (have been trying with one), and requires the use 
of pin P9_42 (0x164) as an RTS pin.

The dtbo (standard from https://github.com/beagleboard/bb.org-overlays 
which uses pin P9_27) loads fine using 

   echo BB-UART4-RS485 > /sys/devices/platform/bone_capemgr/slots

A "cat /sys/devices/platform/bone_capemgr" reveals the slot has been loaded 
correctly.

The HDMI has successfully been disabled.

Three problems arise:

PROBLEM 1:
The wavheshare cape requires the pulldown of both UART pins (I used UART4), 
as it leaves the pins floating through the RS485 transceiver if left 
standard. Now, the tricky thing is, if I enable BB-UARt4-RS485 in the 
/boot/uEnv.txt file, it loads the cape fine, but will not do pulldowns. If 
I allow the beaglebone to boot, then echo the BB-UART.... at slots, the 
pulldown works and the transceiver can send a signal through, which is 
curious as it is exactly the same dtbo it loads, whether from uEnv.txt or 
echo.

PROBLEM 2:
Once loaded using echo after start, if I "cat /proc/tty/driver/serial" 
immediately after loading UART RS485 overlay, the flags I'm presented with 
are as below:

0: uart:8250 mmio:0x44E09000 irq:158 tx:8304 rx:0 RTS|CTS|DTR|DSR
1: uart:unknown port:00000000 irq:0
2: uart:unknown port:00000000 irq:0
3: uart:unknown port:00000000 irq:0
4: uart:8250 mmio:0x481A8000 irq:198 tx:0 rx:0 CTS|DSR
5: uart:unknown port:00000000 irq:0


Showing UART4 (the one I'm using) has not loaded the CTS and RTS flags 
appropriately. However, if, before performing the cat, I screen into ttyS4 
or ttyO4 or echo some characters at the port, and then I perform the "cat" 
as above, the RTS and DTR flags are both raised on 4. Thereafter, if I 
screen in on ttyO4, and then quit, the RTS flag disappears after a cat. 
Weird.

However, regardless of these results, I'm left with the following main 
problem,

PROBLEM 3:
Regardless of the flag position or whether I use the default 
BB-UART4-RS485-00A0.dtbo from the source, the RTS pin does not switch (both 
P9_27 and P9_42 are unresponsive to any efforts to communicate on the 
UART4, where the UART transmits as evidenced by the oscilliscope, but the 
oscilliscope shows that the RTS pin P9_42/27 does not move at all). I need 
to get pin 9_42 to switch for RTS during uart, else this cape (and the 
beaglebone) are useless to me.

After copious amounts of time reading up on this, it seems that its a 
common problem, and something to do with the OMAP serial driver vs the 8250 
driver malfunctioning? If someone could provide some insight to the 
problem, or a guide on how to get RTS working on this Beaglebone I'd be 
very appreciative.

Kind regards,
Matt.
 

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/925dcc4d-8281-42a8-9b3c-69d03a7be467%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to