1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 <2016> 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 <2016> 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: drvAsynSerialPort + RS485 |
From: | Florian Feldbauer <[email protected]> |
To: | Mark Rivers <[email protected]>, EPICS Tech-Talk <[email protected]> |
Date: | Thu, 25 Feb 2016 14:46:05 +0100 |
Dear Mark, thanks for the quick answer. I already have a running c code. For the BeagleBone it is a bit different. Normally the struct serial_port looks like this: struct
serial_rs485 { __u32 flags; /* RS485 feature flags */ __u32
delay_rts_before_send; /*
Delay before send (milliseconds) */
__u32 delay_rts_after_send; /* Delay after send (milliseconds) */ __u32 padding[5]; /* Memory is cheap, new structs are a royal PITA .. */ }; On the BeagleBone Black padding[0] is used to tell the kernel which GPIO is used for the data direction. I will have a look on the implementation of the current serial port driver and will add the asynOption key/value pair needed for RS485. Should I provide you a patch file, when the code is finished and tested? Florian On 02/25/2016 02:23 PM, Mark Rivers
wrote:
I think that adding additional asynOption key/value pairs for RS-485 to the existing driver would be OK. These can be implemented with ioctl calls after the device is opened, so it does not require changing the syntax of drvAsynSerialPortConfigure. Here is an example of how to do it: https://www.kernel.org/doc/Documentation/serial/serial-rs485.txt Mark ________________________________________ From: Florian Feldbauer [[email protected]] Sent: Thursday, February 25, 2016 7:11 AM To: EPICS Tech-Talk Cc: Mark Rivers Subject: drvAsynSerialPort + RS485 Hey all, we are using an ADM2682 RS485 transceiver connected to a BeagleBone Black. Data exchange is done via one of the uart interfaces. Data direction is set by a GPIO from kernel space. Is there currently a driver available for EPICS for RS485? Most settings could be done over the drvAsynSerialPort driver, but for RS485 one also needs to set the struct serial_rs485 which is not implemented in this driver. Does it make sense to add an option to use RS485 support? Or would it be better to create a clone of the serial port driver for RS485? Best regards, Florian -- ---------------------------------------- | Dr. Florian Feldbauer | | | | Helmholtz-Institut Mainz / | | Johannes Gutenberg-Universität Mainz | | Johann-Joachim-Becher-Weg 36 | | D-55128 Mainz | | | | Office: SB1 / 00-213 | | Phone: (+49)6131 / 39-29608 | ---------------------------------------- -- ---------------------------------------- | Dr. Florian Feldbauer | | | | Helmholtz-Institut Mainz / | | Johannes Gutenberg-Universität Mainz | | Johann-Joachim-Becher-Weg 36 | | D-55128 Mainz | | | | Office: SB1 / 00-213 | | Phone: (+49)6131 / 39-29608 | ---------------------------------------- |