UART1 speed is set on Q2687 but not on new Q2687(AirPrime)


#1

Hi,

I have one modem Wireless CPU Q2687. And for that I am changing speed for UART1 to 9600. And it works fine:

adl_atCmdCreate ("AT+IPR=9600\r", ADL_AT_PORT_TYPE(ADL_PORT_UART1,FALSE), (adl_atRspHandler_t) Res_IPR_Handler,NULL);


static bool Res_IPR_Handler( adl_atResponse_t *paras ) {
   
    //adl_atCmdCreate( "AT+IFC=0,0", ADL_AT_PORT_TYPE( ADL_AT_UART1, FALSE ),Res_IPR_Handler2, "*", NULL );
    adl_atCmdCreate("AT+IFC=2,2", ADL_AT_PORT_TYPE( ADL_AT_UART1, FALSE ), (adl_atRspHandler_t)NULL, NULL);
    return TRUE;
}

The same code I am running for newest Q2687(AirPrime). And it doesn’t change speed. UART1 is all the time 115200.

What has been change on new OS Q2687(AirPrime)? How to fix it?

firmware version for new modem Q2687(AirPrime):

Cheers,
Tom


#2

For me it’s worked fine (at least “AT+IPR=9600” on same module and firmware).


#3

you mean AT commands from terminal?

What about ADL function call:

adl_atCmdCreate ("AT+IPR=9600\r", ADL_AT_PORT_TYPE(ADL_PORT_UART1,FALSE), (adl_atRspHandler_t) Res_IPR_Handler,NULL);


static bool Res_IPR_Handler( adl_atResponse_t *paras ) {
   
    //adl_atCmdCreate( "AT+IFC=0,0", ADL_AT_PORT_TYPE( ADL_AT_UART1, FALSE ),Res_IPR_Handler2, "*", NULL );
    adl_atCmdCreate("AT+IFC=2,2", ADL_AT_PORT_TYPE( ADL_AT_UART1, FALSE ), (adl_atRspHandler_t)NULL, NULL);
    return TRUE;
}

#4

No, i mean adl_atCmdCreate() exactly as in your example.
Simple test program without any other functionality. Tested at B7.43 and R7.43 firmware.


#5

Instead of ignoring responses, why not subscribe all responses - and see what response the command is actually getting?

If it’s getting an ERROR response, that should give you a clue…


#6

Why do you put a “\r” after AT+IPR=9600? Don’t do i and give it a try!

Cheers
tom


#7

Either of the variants are correct.


#8

It should be or i would say it was. I cannot see that this is mentioned in 6.20 doc. All the samples are without '\r". I think it worths a try.


#9

I said so because already check this moment. Either way gives the same result - works fine.


#10

Again, you should look at the response form the command - that will show if it was rejected for any reason…


#11

IMHO this is a bug.

I have made tests on 2 modems:
Q2687 running -> R73_00gg.Q2687H 2087432 121208 15:34
and
AirPrime Q2687 -> R7.44.0.201008311212.Q2687RD 2146096 083110 12:12
As suggested by awneil I change the flag from FALSE to TRUE in order to get responses that are not subscribed.

adl_atCmdCreate ("AT+IPR=9600\r",ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),(adl_atRspHandler_t) Res_IPR_Handler,NULL);

And I got OK message and it has been successfully change to speed 9600.
But my goal is to not received any response on UART1.

And this function:

adl_atCmdCreate ("AT+IPR=9600\r",ADL_AT_PORT_TYPE(ADL_PORT_UART1,FALSE), (adl_atRspHandler_t)Res_IPR_Handler,NULL);

doesn’t change speed on Airprime Q2687.
For test I’ve registered timer to get every 4sec. a message. (After 22 sec. above function is called but it is still running at the same speed until I type ‘AT’ command. Then speed is changed to 9600)

adl_tmrSubscribe ( TRUE, 40, ADL_TMR_TYPE_100MS, HelloWorld_TimerHandler );

Can someone try to test this function?

Cheers.
Tom