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

Simple SPI

Hello,

I am using nrf9160 and want to test the just simple SPI function. The code that I found from github(https://github.com/Rallare/fw-nrfconnect-nrf/tree/nrf9160_samples/samples/nrf9160/spi c) is old and gives me too many errors. Are there any simple SPI code that I can try in my nrf9160 board in order to test whether I can send a simple data via SPI. I also found spi_flash_at45 however I don't have any device from at45 family to test it so another simple example would be so helpful for me. 

Thank you

Parents Reply Children
  • Hi,

    Thank you for the fast reply. I just ran the code however I am always receiving 0 in the RX_recv. Shouldn't the value in RX_recv be similar with TX_sent since this code is just tries to send a value and receive it back as far as I understood? I didn't make any change in the code yet.

    Q2:

    I want to send data from nrf9160 to an external device, in order to just make a simple test before implementing a flash driver, I want to test the pins and spi, for that I am using scana to check the signals coming from spi ports. My question here is that how can I send my data to scana rather than making a loopback. For instance first I have to ad a chip select for scana, adding ss=<13> to the overlay file can be the first step right? What should I change other than this?

    Thank you

  • Hi,

     

    verulia said:
    Thank you for the fast reply. I just ran the code however I am always receiving 0 in the RX_recv. Shouldn't the value in RX_recv be similar with TX_sent since this code is just tries to send a value and receive it back as far as I understood? I didn't make any change in the code yet.

    If you connect MISO and MOSI together, then you will receive what you send. 

     

    verulia said:
    I want to send data from nrf9160 to an external device, in order to just make a simple test before implementing a flash driver, I want to test the pins and spi, for that I am using scana to check the signals coming from spi ports. My question here is that how can I send my data to scana rather than making a loopback. For instance first I have to ad a chip select for scana, adding ss=<13> to the overlay file can be the first step right? What should I change other than this?

     This driver doesn't have the concept of a chip select pin. A "ss-pin" component is typically setup by a driver, for instance at45, using a normal gpio as output.

    When using the driver directly, you should set/clear a dedicated GPIO for ss-pin usage. The blinky example in zephyr/samples/basic/blinky shows how to set/clear a gpio.

     

    Kind regards,

    Håkon

  • Okey, I will try it right now thank you. Also can I directly wire miso to mosi on nrf9160? Is that what you mean?

  • Hi,

     

    This is the overlay file defined for the board "nrf9160dk_nrf9160ns":

    &spi3 {
    	compatible = "nordic,nrf-spim";
    	status = "okay";
    	sck-pin = <10>;
    	mosi-pin = <11>;
    	miso-pin = <12>;
    };

     

    if you connect the MOSI (master out - slave in) to the MISO (master in - slave out), then you will effectively loop back the sent data back to the nRF.

    In the above case, its P0.11 and P0.12 that needs to be connected together.

     

    Kind regards,

    Håkon

  • Hi,

    Yes! Thank you that worked. However I didn't understand your explanation for the ss-pin part. Do you mean that I should define an gpio pin manually for chip select. I just want to observe the clk, mosi and miso in scana sq50 and for that I have to provide a chip select connection to scana..

Related