FCM: data exchange works on TMT/doesn't work on direct conn


#1

Hi all,

Could somebody help me with a problem?

I have the project to send data from a device to a server (many people from this forum did the same :slight_smile: ).

I use Fastrack Supreme 20 (firmware 72a) (also M1306B (firmware 657e) for test) and a device that can make data exchange via rs232.

For debug purpose modem and device are connected to PC and I can see trace via TMT (and via terminal emulator I can see data exchange with my device).

All work correctly: the modem connects to the server, gets data, sends it to the device, the device sends data to the modem and the modem sends it to the server.

But when modem is connected directly to the device, the device does not send data to modem. I can see it from strings sent by modem to server when there are no data from device for 30 seconds.

Logs when there are no data from device (connected directly):
BusInit nFcmHandle 0 // call adl_fcmSubscribe, returned handle is 0 (OK)
BusFcmControlHandler nEvent 0
BusFcmControlHandler nEvent 2
BusWrite nDataToBusLen 13 // send 13 bytes to device
BusFcmControlHandler nEvent 7 // (this is ADL_FCM_EVENT_MEM_RELEASE)

Logs when data comes from device (modem and device connected to PC):
Trace ADL 8 BusInit nFcmHandle 0 // call adl_fcmSubscribe, returned handle is 0 (OK)
Trace ADL 8 BusFcmControlHandler nEvent 0
Trace ADL 8 BusFcmControlHandler nEvent 2
Trace ADL 8 BusWrite nDataToBusLen 13 // send 13 bytes to device
Trace ADL 8 BusFcmControlHandler nEvent 7 // (this is ADL_FCM_EVENT_MEM_RELEASE)
Trace ADL 8 BusFcmDataHandler nDataLen 8 // receive 8 bytes from device

adl_fcmSubscribe and adl_fcmSendData return OK (success).

I set up connection speed the same as it is in terminal emulator ( “at+ipr=9600” ).

I complied my app with -release option (wmmake -release) to exclude trace flooding, but it also gave no effect.

What could I try to make data exchange between device and modem?

And something else.
According to device specification “RTS signal from PC should not be less +9V”. Does someone know which signal is on RTS by default (or where it can be found)?
And how to change it from application?

Many thanks for help.


#2

does your ‘device’ use hardware handshaking for flow control? (rts/cts/dts etc lines?)


#3

Yes, it uses rts/cts lines (i found out nothing about dtr using).
I should use “at+ifc=2,2”, am I right?

Also I tried different combinations of “at+ifc”, but there were no good results.

I will continue to RTFM, but may be someone will help me with the problem. I found out the picture about connecting of the device and PC. Sorry for russian legend on the picture.
industrialdev.ru/wp-content/uplo … kt7_17.jpg

May be it will help to advise…


#4

tx of the device is connected to tx of module?
(tx on the wavecom module is actually the receiving pin)
(same goes for rx)

i don’t know about the appropriate at commands


#5

To be precise, the “TXD” Circuit carries the data to be transmitted between a DTE and a DCE (ie, a modem)

The “TXD” Circuit connects the “TXD” pin of the DTE to the “TXD” pin of the DCE

Therefore:

  • the “TXD” pin of a DTE (any DTE) is an output;
  • the “TXD” pin of a DCE (any DCE - not just Wavecom) is an input.

#6

One step to find out a solution.

When a device is connected to PC, I see RTS and CTS signals thanks to a voltmeter, but when a device is connected to a modem, there are no RTS and CTS. The same is when data exchange should be.

Can someone test when fastrack supreme establish CTS signal? Have someone devices used hardware flow control (RTS and CTS signals)?

Many thanks for help.