libftdi Archives

Subject: Re: Reading DMX

From: "E.S. Rosenberg" <es.rosenberg+libftdi.i2net@xxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Date: Fri, 9 May 2014 09:20:47 +0300
2014-05-09 7:28 GMT+03:00 Ryan Tennill <rtennill@xxxxxxxxxxxxxxxx>:
I can't comment on the DMX issue but here's a handy page for the flow control signals:
http://www.ftdichip.com/Support/Knowledgebase/index.html?an232b_04flowctl.htm

RTS/CTS and DTR/DSR are harware signals where as XON/XOFF usually fall under 'software' flow control. I have only used RTS/CTS on the FT23R to date. I don't know if there's a particular reason to use DTR/DSR vs RTS/CTS unless you're interfacing with some legacy hardware that uses it.
Thanks, that was very useful!
I am communicating using EIA-485 as physical layer but DMX-512A has no concept of flowcontrol so setting it to off and RTS to off seems to be the correct thing.

I started looking at the stream reading example figuring that maybe that way I'd do the Break/MAB detection on the host but it seems the FT4232HQ doesn't support synchronous FIFO mode....
Either way the break/MAB do seem to be detected properly since as far as I can tell they don't add data (gibberish) to the captured data, it's just that I lack a way of reading instantly the moment a break is reached (and consequentially a whole packet is in the buffer).

Thanks so far,
Eli

Ryan


On 5/8/2014 5:29 PM, E.S. Rosenberg wrote:

2014-05-09 1:27 GMT+03:00 E.S. Rosenberg <es.rosenberg+libftdi.i2net@xxxxxxxxx>:
Hi all,

Several years ago Rui Barreiros already posted a question on the subject which at the time doesn't seem to have been resolved and I am running into the same problem more or less:

The DMX packet is read but ends up shifted over different amounts of bit every read.

I currently suspect that this is all dependent on when the OS issues the ftdi_read_data() call, I suspect this because when I ran my test program using gdb the shifts were a lot more extreme (almost 0.5 packet) then when it was running directly.

The packet itself is basically:
1. BREAK (>= 88us of LOW)
2. MAB (>= 8us HIGH)
3. 25-513 data slots (1b start HIGH, 8b data, 2b STOP HIGH each)

So my question is: Is there any way to 'allign' the reads to the break+mab?

attached is my modified version of the serial_test.c example.

Side questions:
- Can someone on the list explain the different flow control options?
- What is the RTS?

Thanks,
Eliyahu - אליהו

The device I am using is a USB-COM485-Plus4

Thanks,
Eli


libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx





libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx





libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx


Current Thread