Current consumption for SPI and UART

Hi Support Team 

It seems that there is no current consumption information for SPI and UART of nRF54L15 in data sheet. We want to know the current consumption when SPI and UART run at 2Mbps. Could you provide us the information for evaluation? Many thanks.

Parents Reply
  • Tom, 

    Yes, only the high speed UARTE can support speeds higher than 1Mbps.

    I can suggest you these two sample for testing high speed UART and SPI if you change the overlay files to suit the high speed instances, clock frequencies and pin numbers you are using.

    // For UART try async sample
    west build -b nrf54l15dk/nrf54l15/cpuapp zephyr/samples/drivers/uart/async_api -- -DOVERLAY_CONFIG=prj.conf
    
    // SPI loopback test
    west build -b nrf54l15dk/nrf54l15/cpuapp ntg/tests/drivers/spi/spi_loopback
    

Children
  • Hi Susheel

    I find that only the UARTE00 support high speed UART. I configure the nrf54l15dk_nrf54l15_cpuapp.overlay file of async_api like the following screenshot and it can build successfully. I check the zephyr.dts file the uart00 node has been configured successfully. But the nRF54L15 DK has no output. Could you help check is there anything else I need to do? Many thanks.

    async_api.7z

  • Hi Susheel

    Sorry for interruption. Due to a customer is waiting for the results I measure. Could you help analyze the issue of high speed UART configuration? I want to measure the current consumption of UART at 2Mbps on nRF54L15 DK. Thank you so much.

  • The pinctrl-0 and pinctrl-1 are using the definitions of pf pinctrl define for UART20? why is that, there seems to be some pin conflict in your declaration.
    UArt00 instance should be assigned to P2 pins and  not P1 pins.

  • Hi Susheel

    It seems that the current consumption of UART send/receive data is the same as the current consumption of UART  dosen't send/receive any data.

    The following screenshot is the current consumption for uart dosen't send/receive any data.

    The following screenshot is the current consumption for the uart send and receive data every second with 2Mbps.

    The attachment is current data saved from PPK2.

    UART_Send_and_Receive_data.csv

    I select the Source meter mode of PPK2 for testing. 

    The VOUT of PPK2 connects the nRF54L15 DK's nRF54 pin(the middle pin of nRF54L15 DK's P6 connector);

    The GND of PPK2 connects the GND pin of nRF54L15 DK's P6 connector. And nRF54L15 DK doesn't connect PC with USB cable.

    And I also disable all other periperals which not used in this project.

    Can I think of the current consumption of uart operate in 2Mbps as 3.10mA?

    The following screenshot is the code simplified for testing.

    async_api.zip

  • You are keeping the UART RX always enabled which should be keeping the HFCLK active all the time. The UART transfer itself add very small currents but the main current you are seeing is the HFCLK regulator being on all the time. 

    Change little bit of your code like this

    -#define RECEIVE_TIMEOUT 100
    +#define RECEIVE_TIMEOUT 100
    
    -    uart_rx_enable(uart_dev, rx_buf, sizeof rx_buf, SYS_FOREVER_US);
    +    uart_rx_enable(uart_dev, rx_buf, sizeof rx_buf, RECEIVE_TIMEOUT);
    
    
     case UART_RX_RDY:
         uart_tx(uart_dev, &evt->data.rx.buf[evt->data.rx.offset],
                 evt->data.rx.len, SYS_FOREVER_US);
    +    uart_rx_disable(uart_dev);
         break;

    And when you finish your transmit,then the uart rx should be disabled to release its dependency on the HFCLK. If no other peripheral is using HFCLK, then the HFCLK is turned off automatically.

Related