I am using a customized PCB (nrf52840) and I have been successfully set up the SPI communication in between the nrf and lsm6dso
I used 0.11 as clk , 0.27 as MISO and 0.25 as MOSI , I have attached the code i used in the overlay file, and it was working
&spi0{ compatible = "nordic,nrf-spi"; status = "okay"; // cs-gpios = < &gpio0 13 GPIO_ACTIVE_LOW>; pinctrl-0 = <&spi0_default>; pinctrl-1 = <&spi0_sleep>; pinctrl-names = "default","sleep"; }; &spi1{ compatible = "nordic,nrf-spi"; status = "okay"; // cs-gpios = < &gpio0 4 GPIO_ACTIVE_LOW>; pinctrl-0 = <&spi1_default>; pinctrl-1 = <&spi1_sleep>; pinctrl-names = "default","sleep"; }; &pinctrl { spi0_default: spi0_default { group1{ psels = <NRF_PSEL(SPIM_SCK, 0, 11)>, <NRF_PSEL(SPIM_MISO, 0, 27)>, <NRF_PSEL(SPIM_MOSI, 0, 25)>; }; }; spi0_sleep: spi0_sleep { group1{ psels = <NRF_PSEL(SPIM_SCK, 0, 11)>, <NRF_PSEL(SPIM_MISO, 0, 27)>, <NRF_PSEL(SPIM_MOSI, 0, 25)>; }; }; spi1_default: spi1_default { group1{ psels = <NRF_PSEL(SPIM_SCK, 0, 6)>, <NRF_PSEL(SPIM_MISO, 0, 8)>, <NRF_PSEL(SPIM_MOSI, 0, 7)>; }; }; spi1_sleep: spi1_sleep { group1{ psels = <NRF_PSEL(SPIM_SCK, 0, 6)>, <NRF_PSEL(SPIM_MISO, 0, 8)>, <NRF_PSEL(SPIM_MOSI, 0, 7)>; }; }; };
However, when I modify my PCB and change to the following list of pins , it stops working , and gives 0xFF
0.11 as clk, 0.7 as MISO , 0.25 as MOSI
Any pin that I should not use or need to have additional setup ?
&spi0{ compatible = "nordic,nrf-spi"; status = "okay"; // cs-gpios = < &gpio0 13 GPIO_ACTIVE_LOW>; pinctrl-0 = <&spi0_default>; pinctrl-1 = <&spi0_sleep>; pinctrl-names = "default","sleep"; }; &pinctrl { spi0_default: spi0_default { group1{ psels = <NRF_PSEL(SPIM_SCK, 0, 11)>, <NRF_PSEL(SPIM_MISO, 0, 7)>, <NRF_PSEL(SPIM_MOSI, 0, 25)>; }; }; spi0_sleep: spi0_sleep { group1{ psels = <NRF_PSEL(SPIM_SCK, 0, 11)>, <NRF_PSEL(SPIM_MISO, 0, 7)>, <NRF_PSEL(SPIM_MOSI, 0, 25)>; }; }; };
I am using nRF Connect SDK v2.5.2
2. Another question that I asked before and is solved by I did not get the reason, hope to clarify again
/ {
user_dbg_pin: user-dbg-pin {
compatible = "nordic,gpio-pins";
gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
&gpio0 {
status = "okay";
};
// &gpiote0 {
// status = "okay";
// };
I used the above way to pull up P0.08 but the gpiote0 set up does not work. and I commented it out and it works.
undefined node label 'gpiote0'
.
in which case I can use the set up below to turn on P0.08
#define MY_GPIO0 DT_NODELABEL(gpio0)
#define MY_GPIO1 DT_NODELABEL(gpio1)
gpio_pin_configure(gpio0_dev, GPIO_0_CS, GPIO_OUTPUT);
gpio_pin_configure(gpio1_dev, GPIO_1_INT1, GPIO_OUTPUT);
// gpio_pin_set(gpio0_dev, GPIO_0_CS, 1);
gpio_pin_set(gpio1_dev, GPIO_1_INT1, 0);