A couple of things you may want to investigate before you use the OMAP driver vs. the 8250:
1) According to an older Wiki from TI, the OMAP serial driver doesn't use DMA in serial transfer, but 8250 does. Not sure if this is still the case?? http://processors.wiki.ti.com/index.php/Sitara_Linux_UART_-_Switching_to_8250_Driver#Overview 2) For this experiment, we coupled an unrelated GPIO signal (for the RTS signal) with a given UART through the device tree and found that Python can only toggle the RTS line when connected to an OMAP driver as opposed to 8250 driver. Note: We didn't try picking a pinmux/IOSET which already has an RTS/CTS signal defined for a given UART. The 8250 driver might allow that use case to work.... Will let you know what we find out.. Thanks! Jeff On Thursday, November 16, 2017 at 5:19:25 PM UTC-6, Jeff Andich wrote: > > I'm fairly confident the answer to my question about whether the 8250 > driver implements "partial 485 capability", (allowing Python or a C#/.net > application to manually control the RTS line for a given UART via the > driver) is NO. But the OMAP driver DOES appear to allow this. > > When I toggle the serial driver defines in kernel 4.4.y's defconfig file ( > see below), re-build the kernel, and deploy to my target (along with the > device tree which couples a given GPIO on my custom board to UART5) I'm > only able to toggle the RTS line from within Python (to enable/disable the > 485 chip's transmit) when I open the /dev/ttyO4 device in Python, but not > with the /dev/ttyS4 device. > > Additionally, the device tree containing the fragment below appears to be > successfully coupling gpio5_8 and UART5, so this appears to be a driver > issue rather than a device tree user error issue. > > > I built the RCN 4.4.y kernel both ways: > > In paches/defconfig: > > (1) {CONFIG_SERIAL_8250_OMAP=n, CONFIG_SERIAL_OMAP=y} > (2) {CONFIG_SERIAL_8250_OMAP=y, CONFIG_SERIAL_OMAP=n} > > *** Also worth noting is I lost my serial console until I enabled, > CONFIG_SERIAL_OMAP_CONSOLE=y *** > > Ironically enough, my current build (built using configuration (1) above) > appears to have BOTH the OMAP and 8250 devices which isn't what I would > expect.. I've only tried writing to /dev/ttyO4 at this point. There maybe > some other defines which need to be changed in the defconfig to switch off > the 8250, named serial device files in the /dev/ directory. Film at 11 on > that one.. > > > ****************** > Listing of serial devices with kernel 4.4.y built with configuration (1) > ****************** > > debian@BeagleBoard-X15:~$ ls -l /dev/ttyO* > crw-rw---- 1 root dialout 248, 0 Nov 16 19:28 /dev/ttyO0 > crw------- 1 debian tty 248, 2 Nov 16 19:28 /dev/ttyO2 > crw-rw---- 1 root dialout 248, 4 Nov 16 19:28 /dev/ttyO4 > crw-rw---- 1 root dialout 248, 7 Nov 16 19:28 /dev/ttyO7 > > debian@BeagleBoard-X15:~$ ls -l /dev/ttyS* > crw-rw---- 1 root dialout 4, 64 Nov 16 19:28 /dev/ttyS0 > crw-rw---- 1 root dialout 4, 65 Nov 16 19:28 /dev/ttyS1 > crw-rw---- 1 root dialout 4, 66 Nov 16 19:28 /dev/ttyS2 > crw-rw---- 1 root dialout 4, 67 Nov 16 19:28 /dev/ttyS3 > crw-rw---- 1 root dialout 4, 68 Nov 16 19:28 /dev/ttyS4 > crw-rw---- 1 root dialout 4, 69 Nov 16 19:28 /dev/ttyS5 > > > ***************** > Python snippet and brief description of test results > ***************** > ser = serial.Serial('/devlttyO4') > ser.ctsrts = False > ser.write(b'I wish the BeagleBone folks would produce a pocket Beagle with > an am5728') > > I see Tx data from my 2 wire 485 chip on the scope. > > ser.ctsrts = True > I see nothing from my 2 wire 485 chip on the scope. > > > *************** > Build Configuration > *************** > Started from the console build for BB-X15 with debian 8.9 on elinux Robert > referred me to a few weeks ago. > Followed the instructions on eewiki for rebuilding BB-X15 kernel, but > checked out branch origin/4.4.y, and built kernel using build_kernel.sh. > > debian@BeagleBoard-X15:~$ uname -r > 4.4.83-ti-r119 > debian@BeagleBoard-X15:~$ cat /etc/dogtag > BeagleBoard.org Debian Image 2017-10-02 > debian@BeagleBoard-X15:~$ > > Regards and thanks! > > Jeff > > > On Tuesday, November 14, 2017 at 6:44:22 PM UTC-6, Jeff Andich wrote: >> >> Hi, >> >> Will the 8250 driver still allow "manual" control of the RTS line for a >> given UART from an application like Python or C# (where the application >> toggles the state of the RTS line, rather than driver, after sending a >> request message in order to toggle the 485 XCVR), or is the OMAP driver (in >> place of the 8250 driver) needed for this as well? >> >> I've attempted to associate the RTS line for UART5 with GPIO5_8 (which is >> connected to the DE toggle on a 485 chip) via the device tree (kernel >> 4.4.y), followed by calling setRTS(True/False) from Python, but that >> doesn't appear to be switching the 485 XCVR. However, I can still use >> sysfs commands to toggle the GPIO5_8 connected to the 485 chip to control >> the direction of transmission. >> >> In order to help differentiate between an incorrect device tree >> configuration vs. needing to recompile the kernel with the OMAP driver >> instead of the 8250 driver, I'm wondering if you know whether the 8250 >> driver will support what we're trying here. Everything I've read (including >> https://groups.google.com/forum/#!msg/beagleboard/nMtRpdWSJu0/EDSXqGpiBAAJ) >> seems to suggest that the 8250 doesn't yet handle toggling the RTS/CTS >> lines on its own based on delays between characters, but I haven't seen >> anything about manual control. >> >> >> Following is a snippet/fragment from my device tree. ***LATE >> DISCLOSURE*** From UART5_8, you can see that this is for the BB-X15, but I >> believe the same issue pertains to both the BBB and the BB-X15: >> >> &uart5 { >> pinctrl-names = "default"; >> pinctrl-0 = <&uart5_pins>; >> status = "okay"; >> rts-gpio = <&gpio5 8 GPIO_ACTIVE_HIGH>; >> rs485-rts-active-high; >> rs485-rts-delay = <0 0>; >> linux,rs485-enabled-at-boot-time; >> }; >> >> Thanks!!! >> >> On Monday, November 13, 2017 at 3:04:51 PM UTC-6, Rnd Mpt wrote: >>> >>> We used the rs485 version/branch of the modbus on github. Sorry i meant >>> to say rts instead of cts. >>> >>> I used my github as notes. Follow readmes and see if it helps. Its been >>> a while since we did this. Let me know if more help is needed >>> >>> https://github.com/rwdutoit/beaglebone?files=1 >>> >>> On Mon, 13 Nov 2017, 16:33 , <[email protected]> wrote: >>> >>>> https://github.com/RobertCNelson/bb-kernel/issues/38 >>>> >>>> >>>> 2017. november 10., péntek 20:33:49 UTC+1 időpontban [email protected] >>>> a következőt írta: >>>> >>>>> Did you ever get this to work >>>>> >>>>> I am using the Nelson yakbuild kernel 4.9.45 and disabled the 8250 and >>>>> enabled omap serial in kernel configuration >>>>> >>>>> using same rs485 dtso overkay I can not get RTS to work >>>>> and nothing transmits. >>>>> >>>>> I can not find anything on web to solve this. >>>>> Do you have a solution procedure? >>>>> >>>>> >>>>> dennis >>>>> >>>> [email protected] >>>> >>>> -- >>>> For more options, visit http://beagleboard.org/discuss >>>> --- >>>> You received this message because you are subscribed to a topic in the >>>> Google Groups "BeagleBoard" group. >>>> To unsubscribe from this topic, visit >>>> https://groups.google.com/d/topic/beagleboard/JGIm0Ej6jDI/unsubscribe. >>>> To unsubscribe from this group and all its topics, send an email to >>>> [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/beagleboard/702f3cd1-c887-4003-9993-aa70998a5b1a%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/beagleboard/702f3cd1-c887-4003-9993-aa70998a5b1a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- 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/0112ef50-5fae-4e13-844f-01866d28ea1a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
