3 years, 7 months ago.

frdm-k64f UART (to Sigfox TD1208)

Hello,

I have an FRDM-K64 board connected via UART to an TD-next TD1208 EVB (Sigfox modem). The connections I made between the 2: RX, TX, V, and GND.

I can successfully send some commands e.g. ATZ and AT&V. However, using similar code, a lot of other commands I try to send to the TD1208 EVB don't work. The result (in my callback function/method) in this case I get is: A▒▒▒▒▒▒

I'm completely stuck on this problem. Anyone has already been confronted with this behaviour/problem?

Many thanks. Guy

1 Answer

3 years, 7 months ago.

The unexpected result is not really showing above. Is that what you see on the PC terminal from the K64? Are you running some transparent serial port code on the K64 to interface between the modem and the Host PC? Are you sure this software is OK. Perhaps you are missing/overrunning data.

This is what I see, in my callback function, using Putty connecting to the FRDM-K64F.

Code snippet of my code (that doesn't work):

clearString() is a function to clear the output string for the callback function.

clearString();
wait_ms(1000);
TD1208.printf("AT$DP=1,32XXXXXXXXX\r");
wait_ms(5000);
clearString();
wait_ms(1000);
TD1208.printf("AT$SSMS=Hello\r");
wait_ms(5000);

Code snippet of my code that works:

clearString();
wait_ms(1000);
TD1208.printf("ATZ\r");
wait_ms(5000);
clearString();
wait_ms(1000);
TD1208.printf("AT&V\r");
wait_ms(5000);

Thanks.

posted by Guy Dillen 04 May 2016

Did you try a fully transparant setup to check that the modem behaves correctly:

#include "mbed.h"
 
Serial pc(USBTX, USBRX); // tx, rx
Serial TD1208 (pin, pin);  // tx, rx
 
int main() {
    while(1) {
        if(pc.readable()) {
            TD1208.putc(pc.getc());
        }
        if(TD1208.readable()) {
            pc.putc(TD1208.getc());
        }
    }
}
posted by Wim Huiskamp 04 May 2016