In my C++ project I get RS485 2,5 MBod speed by using GPIO controlling of 
DE/RE and its work like a charm.

среда, 12 декабря 2018 г., 18:43:46 UTC+2 пользователь 
[email protected] написал:
>
> I'm trying to get RS485 communication on BeagleBone Black with 
> CBB-Serial-r02, but yet unable...
>
> *Problem:*
> I can't get RS485 to work because the RTS-signal (P8.33) is driven active 
> low, and the CBB-cape needs it high when using RS485 (coupled to DE/RE).
> UART4 TX (P9.13) is signaling so the UART as such is working. If I force 
> DE/RE line high, the RS485 is in fact transmitting.
> Timing between RTS and TX is critical, so I cannot rely on userspace to do 
> this - Should be in the driver itself.
>
> *Tests:*
> I've made the tests with
> # stty -F /dev/ttyO4 9600 crtscts; while true; do echo Hi >/dev/ttyO4; 
> sleep 1; done
> also tried
> # ./linux-serial-test -b 9600 -p /dev/ttyO4 -S -e -q 4 -c
>
> One strange thing I noticed is that when using "echo", the RTS becomes 
> active for each echo-transmission (passive between each loop iteration) if 
> the CBB-cape is configured for RS232, but RTS becomes active for the entire 
> loop-session when the cape is configured for RS485. I presume this has 
> something to do with CTS and RX, which are electrical active on the cape 
> when in RS232 mode.
>
> *State:*
> Using image: bone-debian-9.5-iot-armhf-2018-10-07-4gb.img.xz flashed and 
> booting of internal flash.
> Fully APT-upgraded.
>
> /dev/ttyO4 -> /dev/ttyS4
> dmesg: 481a8000.serial: ttyS4 at MMIO 0x481a8000 (irq = 34, base_baud = 
> 3000000) is a 8250
>
> Tried quite a few combinations of:
> *) uboot_overlay_addr0=/lib/firmware/cape-CBB-Serial-r01.dtbo
> *) uboot_overlay_addr0=/lib/firmware/CBB-UART4-RS485-00A0.dtbo
> *) uboot_overlay_addr0=/lib/firmware/BB-UART4-RTSCTS-00A0.dtbo
> (different addresses when combined).
>
> Only BB-UART4-RTSCTS-00A0.dtbo appears to make a difference - Enables the 
> use of RTS.
>
> I have a logic-analyser and an oscilloscope coupled to the system to see 
> what happens.
>
> *Goal:*
> I need to have RTS P8.33 (alternatively P9.15) active high during a 
> transmission (multiple characters), then go passive low within 3.5 
> character time (ModBus). I presume this just means that it should go 
> passive low after the last character in the queue has been transmitted.
> The RS485 transmitter is active when RTS is high, and passive when RTS is 
> low.
>
> I hope someone can help me out here?
>
> ~Per
>
>

-- 
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/5fe3df5d-5748-41c0-a9bd-1803e47ed70bo%40googlegroups.com.

Reply via email to