This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF9160 AT client UART0 pins reassignment issue

Hi,

I have a custom board based on nRF9160 for which I created custom .dts following porting guide.
It seems TX isn't sending anything (stay close to 0V) - config I have is: tx-pin = <8>; rx-pin = <9>; 
for &uart0, no handshake, reset level at 2.7V.
Checked prj.conf and .config they settings there seem alright. Please advise, what I might be missing here?
Thanks.

Parents
  • Could you upload your sample or a simplified version of it? Then I'll test it myself and see if there is something wrong with the DTS files or the configuration.

    Best regards,

    Simon

  • Thanks Simon,

    The Tx, Rx pin settings reflected in various config/ build files that you pointed to - they all seem to check out ok in my case.
    Still no luck sending data; so couple of follow-up questions: 
    1) When I try this same SLM app on nRF9160-DK (v0.9.0), built with its own (nrf9160dk_nrf9160_common.dts) profile.
        It works well. Though what I noticed, there I need to select COM15 in Link Monitor (VCOM14,15,16 associated with this 
        DK). Is VCOM15 associated with/ mapped to UART0 or UART1 on nRF9160-SiP? BTW my prj.conf for this build too, is
        calling for UART0. Also, what does "CONFIG_UART_0_NRF_HW_ASYNC_TIMER=2" (i.e. Async and Timer=2) mean?
    2) UART0 in  nrf9160dk_nrf9160_common.dts specify RTS, CTS, which I don't use in my custom profile (.dts). Could that 
        mean original SLM app (DK build) is calling for/ require handshaking? which I'm not using - that will explain unable to
        send too.

    Tried your suggestion about setting breakpoints inside uart_rx_handler() from slm_at_host.c. One breakpoint set right after entering rx handler and another right after "send:" label. None of the break points are hit when I send a simple AT\r\n. So, I 
    am trying to trace where it's lost? I can see/ by probing P0.09 of nRF9160-SiP from an external USB serial connection that 
    correct command stream does hit rx-pin (P0.09) = 0x41 0x54 0x0D 0x0A. Now the only things left to suspect is TX signal level (2.6V) that's connected to rx-pin (P0.09) - it should be valid (VIH) level for proper rx-pin detection, but please confirm 
    that for me. As mentioned the external processor I am using to interface with nRF9160-SiP - IO levels on that are 2.7v nominal. I do have a level shifter on nRF91 tx-pin so as to not violate 2.7V rx input on the external processor host. 

    Please advise. Thanks again. 

    Best,
    SE

  • Here are some more inputs -- I think this might explain how failing (stopped) RX could hold back TX (missing response to AT command). Not sure what's the root cause of these warnings emanating from uart_callback()

    Guess the question is - what might cause this to happen, what's different in my (custom .dts) case compared  to DK/ profile?

    Please advise.

      

  • Hi Simon,

    Following Erase All in nRF connect/ programmer - do I need to flash modem f/w, before flashing my app (SLM or AT client) hex?

    Best,
    SE

  • Could you try to configure the UART according to External MCU configuration?

    It says that flow control should be used, so you could try to either add RTS and CTS in your custom board folder or through an overlay file.

    You could test it with an nRF52 DK first, to make sure it's working, then swap it with your external MCU.

    Best regards,

    Simon

Reply Children
No Data
Related