Results 1 to 8 of 8

Thread: How to disable default assertion of DTR and RTS on CP210x device?

  1. #1
    Join Date
    Mar 2010
    Beans
    21
    Distro
    Ubuntu 10.04 Lucid Lynx

    How to disable default assertion of DTR and RTS on CP210x device?

    I am in the same boat as the author of this blog post:

    http://eksfiles.net/2008/01/rigblast...in-ubuntu-710/

    I am not able to use the workaround mentioned by the blog post author, so I was hoping to fix the actual problem.

    This device uses a Silicon Labs CP2102 device for its USB-serial conversion. Is there anything I can do (up to and including rebuilding the driver with changes) to prevent RTS and DTR from being asserted by default when the device is open()'ed?

    Ideally it would still be possible to assert and deassert RTS and DTR but if the only fix is to completely disable them for this device I'm okay with that.

    Thanks in advance!

  2. #2
    Join Date
    Jul 2010
    Beans
    5

    Re: How to disable default assertion of DTR and RTS on CP210x device?

    Did you ever have any luck with this? I'm in the same boat: starting last fall (2009) with a kernel upgrade, it seems that RTS is now always asserted at boot. Yay.

    With about 10 minutes of investigation, it seems that the "new" (1990-ish) RS-232 specification calls for RTS to always be asserted for full-duplex devices. The problem is when dealing with real-world half-duplex devices, like a radio. When the machine boots, RTS is asserted, the radio keys up, and at best you only jam the channel and don't burn up your transmitter.

    I would love to see a configuration parameter built into the kernel that could put the device into half-duplex mode. My guess is that newer programmers don't believe anyone would actually have a half-duplex device these days, so they just changed the protocol from the older RS-232 standard to the new always-RTS mode.

  3. #3
    Join Date
    Jan 2010
    Location
    Hyperborea
    Beans
    1,400
    Distro
    Ubuntu

    Re: How to disable default assertion of DTR and RTS on CP210x device?

    It has been a long time since I dabbled with serial ports. Could you not just cut off the 9 pin "D" plug then solder on a new one but don't connect the RTS pin?
    Voila! semi-duplex!!

  4. #4
    Join Date
    Jul 2010
    Beans
    5

    Re: How to disable default assertion of DTR and RTS on CP210x device?

    @coldraven:

    Thanks for the reply. Yes, this would work, but that pin serves a very important purpose. Asserting RTS turns on the radio transmitter. In order to send data via the radio, the protocol is to assert RTS, send the data, and then turn RTS off. Basically, the radio interface obeys old-style RS-232 flow control.

    Since posting this note just a few days ago, a kernel update appears to have limited (but not fixed) the problem. Now RTS is raised after boot for probably 15 seconds or so. It seems there is some kind of timeout that then disables the signal automatically.

    I still would very much like to prevent any activation of the radio, but can't find a setting or parameter that would allow me to do so. The kernel driver for the CP210x devices does not, itself, raise this line. Thus the problem is higher in the USB and/or serial protocol layers and I have not had time to trace that code yet. All suggestions welcome!

  5. #5
    Join Date
    Jul 2010
    Beans
    5

    Re: How to disable default assertion of DTR and RTS on CP210x device?

    This problem has been addressed in the latest Ubuntu: 10.04. Kernel is 2.6.32-24.

  6. #6
    Join Date
    Jul 2010
    Beans
    5

    Re: How to disable default assertion of DTR and RTS on CP210x device?

    Quote Originally Posted by wmfa View Post
    This problem has been addressed in the latest Ubuntu: 10.04. Kernel is 2.6.32-24.
    I take it back. Fresh after install, it worked. After a software update, it's turning my radio on again. This is driving me crazy.

  7. #7
    Join Date
    Jul 2010
    Beans
    5

    Re: How to disable default assertion of DTR and RTS on CP210x device?

    Yeah, it's a very stale thread. But there is a definitive fix.

    Firstly, read https://bugzilla.redhat.com/show_bug.cgi?id=771010

    The problem is due to ModemManager. You could remove it, but there is a better way. The following is specifically for the West Mountain Radio Rigblaster PnP, but this is easily generalized using the USB attributes for a particular device.

    Place the following into /etc/udev/rules.d/50-rigblaster-pnp.rules
    # Rules for a West Mountain Radio RigBlaster PnP
    # 1) force the device to appear as /dev/rigblaster
    # 2) prevent ModemManager from activating PTT at boot time
    ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="814a", NAME:="rigblaster", ENV{ID_MM_DEVICE_IGNORE}="1"

  8. #8
    Join Date
    Feb 2008
    Location
    Texas
    Beans
    14,640
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: How to disable default assertion of DTR and RTS on CP210x device?

    Thanks for sharing and please do not post in threads that have not had activity for a year or longer, since this is an old thread it has been closed.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •