Baud Rate of PCI-based RS485 card


Recently we worked on a QNX-based data monitoring system that required
dual RS-485 serial ports installed. Since our client insisted on use of PCI
card, we decided to give a try to a non-intelligent, PCI serial card
offerred by MOXA (CP132IS). Though the manufacturer’s product catalog did
not confirm card’s compatibility with QNX 4.25, we decided to give a try to
it. This particular model has been confirmed by manufacturer as working with
QNX neutrino’s standard serial driver.

After purchasing a single card for the experiment, we followed the
steps same as suggested by the manufacturer for card installation on QNX
neutrino. After installing the card on QNX 4.25 machine, we executed
“show_pci -v” to find out based address and IRQ assigned to the card. We
observed card was configured on the system as 0xD800 (first port), 0xD808
(second port) with IRQ10 for both ports. We then started Dev32.ser with
following arguments =>
Dev32.ser D800,10 D808,10 3F8,4 2F8,3 &

On checking the entries in /dev, we observed that ser1, ser2, ser3 and
ser4 were present. Ser1 and ser2 are RS485 serial ports of installed card.
Ser3, Ser4 are
onboard RS232 serial ports of our computer

We then tested the onboard RS232 serial ports which we configured as
3F8,4 2F8,3. They were found working.

We prepared 2-wire RS485 cable as per card connector specification. We
connected ser1 to ser2 with the help of Rs-485 cable. With the help of qtalk
we transmitted some characters on ser1. They were received on qtalk session
running on ser2. Similarly data transmitted on ser2 was received by serial1.
We did this test with baud rate set to 9600 for ser1 and ser2. The card has
automatic data direction facility for RS-485. We concluded that in this
manner the PCI card can be configured and used for QNX4.25.

At the time of final testing of our project, we linked up our QNX
computer to an RS-485 capable microcontroller based device. At this stage we
realised that our serial communication program running on Ser1 and Ser2
failed to communicate with the device. On checking the data transmitted on
RS485 serial port with the help of an oscilloscope, we could observe that
the baud rate set for the card was different from the baud rate specified by
us using “stty baud=9600 </dev/ser1”.

Could not figure out why same sequence of installation should work for
QNX neutrino and not for QNX4.25. What could be the difference in standard
device drivers of the two? This trick of configuring a PCI card for
Dev32.ser of QNX 4.25 had also been suggested by QSSL’s knowledgebase.

Is there any way of setting a proper baud rate from QNX 4.25? The
manufacturer has not provided PCI register details. If any of you have a
solution for this problem kindly advise.