RaspberryPi Pico SPI и nrf24l01

spi nrf24l01+ raspberrypi-pico

Я программирую пико RaspberryPi с помощью Arduino IDE. Работает довольно хорошо, но теперь я пытаюсь управлять модулем nrf24l01.

Мой код компилируется, но я не знаю, на какие контакты должна быть подключена шина SPI. Я попытался подключиться к разным контактам в соответствии с выводом https://datasheets.raspberrypi.org/pico/Pico-R3-A4-Pinout.pdf (например, 2 sck, 3 мисо, 4 mosi), но до сих пор ничего не работало.

Кто-нибудь знает, каковы контакты по умолчанию или как ими управлять? Я также хотел бы управлять другим оборудованием SPI, например дисплеем.

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

const uint64_t address = 0x1;
byte sendData[1];


#define CSN_PIN  5
#define CE_PIN   6
RF24 radio(CE_PIN, CSN_PIN); 

byte counter = 0;
 
void setup()   
{
  Serial.begin(115200);
  Serial.println("radio starting");

  if (!radio.begin()) 
  {
    Serial.println("radio hardware is not responding!!");
    while (1) {} 
  }  
  radio.openWritingPipe(address);
}

void loop()   
{
  Serial.print("Counter: ");
  Serial.println(counter);
  
  sendData[0] = counter;
  
  radio.write( sendData, sizeof(sendData));
  
  counter++;
}

, 👍0

Обсуждение

Успешно ли вы запустили его как для передачи, так и для приема? Какой конденсатор вы используете? Мой опыт показывает, что при использовании Raspberry Pi Pico + NRF24L01 и на Micropython он работает, НО не работает при программировании на Arduino, @Cypress Tower


1 ответ


4
  1. Для ядра Arduino-pico

    ** МИСО - контактный GP16

    ** MOSI - контактный GP19

    ** CS - контактный GP17

    ** SCK - контактный GP18

  2. Ядро Arduino-mbed

    ** МИСО - контактный GP4

    ** MOSI - контактный GP3

    ** CS - контактный GP5

    ** SCK - контактный GP2

,

Фантастика, это работает!, @qubit

Исходный код и другие контакты, жестко запрограммированные на пико: https://github.com/arduino/ArduinoCore-mbed/blob/8e0a044330e88bde781eb4c509875ce94980659f/variants/RASPBERRY_PI_PICO/pins_arduino.h, @dGRAMOP