UART2/GPIO Multiplexing on OASIS 2.10


#1

I am not a smart programmer and had spent a quite amount of time to port the code from OAT425 to OASIS 2.10.
But one issue that wasted me a lot of time appeared to be a backward change.

In OAT425(FW 663c), if my Q2687 is powered on with UART2 set enabled, I can use AT+WMFM=0,0,2 to switch off UART2, followed by subscribing UART2’s pins as I/Os.

In OASIS2.10 (FW R_72), however , I need to do a software reset even after sending AT+WMFM=0,0,2 command, otherwise I cannot subscribe UART2 pins. This makes me have to do an extra software reset for one application. :frowning:


#2

I haven’t checked the particular problem you describe, but some additional information would be welcome.

Is it adl_ioSubscribe that returns with an error code? If so, which one?
If the call to adl_ioSubscribe returns OK, what is the value for each of the GPIO’s in the adl_ioDefs_t struct after the call to adl_ioSubscribe?
What information do you get from the adl_ioGetCapabilitiesList function regarding the GPIO you are interested in?

And lastly, after using WMFM to close UART2, do you subscribe only those IO that you just freed (other IO allocated earlier or not at all)?


#3

Hi tobias,

Sorry I have erased my trial program.

The test is quite simple.

  1. Start Q2687 with UART2 open (+WMFM: 0,2,2,1),
  2. then inside the OpenAT program issue the command AT+WMFM=0,0,2 (to disbale UART2),
  3. then call adl_ioGetCapabilitiesList ().
  4. It will be found that I/O pins multiplexed with UART2 (pin 30 to 33) are not available on the list.
  5. If module is power on with UART2 close (+WMFM: 0,2,2,0) adl_ioGetCapabilitiesList () will include pin 30 to 33

With OpenAT 4.25 the above flow can subscribe those pins.


#4

it says in the datasheet that multiplexed pins wont be available as gpio before a restart of the module.
From AT command user guide for 7.2

so yes…
it’s a backwards change…