NRF24L01 et SD Card

Bonjour,

J'essaye désespérément de faire fonctionner ensemble une module NRF024L01 et un lecteur de carte SD en vain... J'utilise un arduino pro mini en 3,3 volts:

  • Nrf024L01 sur le port SPI - CE,CSN sur les ports 8 et 9
  • SD sur le port SPI - CS sur le port 7

Pour NRF, j’utilise la bibliothèque RF24, lorsqu'elle est branché seule ==> ok ça fonctionne Pour la carte SD, j'utilise la bibliothèque standard, lorsqu'elle est branché seule ==> ok ça fonctionne

Quand les 2 sont branché, la NRF ne répond plus, la SD oui. Quelqu'un pourrait-il m'aider ??

Merci par avance

Alain

SAlut,

Code ?

Bjr,

Voila mon code :

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
#include <SD.h>

RF24 radio(8,9);

Sd2Card card;
SdVolume volume;
SdFile root;

const int chipSelect = 7;

void setup(void) {
  Serial.begin(9600);
  printf_begin();
  radio.begin();
  radio.printDetails();

  Serial.print("\nInitializing SD card...");

  if (!card.init(SPI_HALF_SPEED, chipSelect)) {
    Serial.println("initialization failed. Things to check:");
    Serial.println("* is a card is inserted?");
    Serial.println("* Is your wiring correct?");
    Serial.println("* did you change the chipSelect pin to match your shield or module?");
    return;
  } else {
   Serial.println("Wiring is correct and a card is present."); 
  }

  Serial.print("\nCard type: ");
  switch(card.type()) {
    case SD_CARD_TYPE_SD1:
      Serial.println("SD1");
      break;
    case SD_CARD_TYPE_SD2:
      Serial.println("SD2");
      break;
    case SD_CARD_TYPE_SDHC:
      Serial.println("SDHC");
      break;
    default:
      Serial.println("Unknown");
  }

  if (!volume.init(card)) {
    Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
    return;
  }


  uint32_t volumesize;
  Serial.print("\nVolume type is FAT");
  Serial.println(volume.fatType(), DEC);
  Serial.println();
  
  volumesize = volume.blocksPerCluster();    // clusters are collections of blocks
  volumesize *= volume.clusterCount();       // we'll have a lot of clusters
  volumesize *= 512;                            // SD card blocks are always 512 bytes
  Serial.print("Volume size (bytes): ");
  Serial.println(volumesize);
  Serial.print("Volume size (Kbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);
  Serial.print("Volume size (Mbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);

  
  Serial.println("\nFiles found on the card (name, date and size in bytes): ");
  root.openRoot(volume);
  
  root.ls(LS_R | LS_DATE | LS_SIZE);


}

void loop(void) {
}

Dans le cas ou seul la NRF est branché j’obtiens :

STATUS		 = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1	 = 0xe7e7e7e7e7 0xc2c2c2c2c2
RX_ADDR_P2-5	 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR		 = 0xe7e7e7e7e7
RX_PW_P0-6	 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA		 = 0x3f
EN_RXADDR	 = 0x03
RF_CH		 = 0x4c
RF_SETUP	 = 0x07
CONFIG		 = 0x0c
DYNPD/FEATURE	 = 0x00 0x00
Data Rate	 = 1MBPS
Model		 = nRF24L01+
CRC Length	 = 16 bits
PA Power	 = PA_HIGH

Initializing SD card...initialization failed. Things to check:
* is a card is inserted?
* Is your wiring correct?
* did you change the chipSelect pin to match your shield or module?[/tt]

Dans le cas ou les 2 sont branchés, j’obtiens :

STATUS		 = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0
RX_ADDR_P0-1	 = 0x0000000000 0x0000000000
RX_ADDR_P2-5	 = 0x00 0x00 0x00 0x00
TX_ADDR		 = 0x0000000000
RX_PW_P0-6	 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA		 = 0x00
EN_RXADDR	 = 0x00
RF_CH		 = 0x00
RF_SETUP	 = 0x00
CONFIG		 = 0x00
DYNPD/FEATURE	 = 0x00 0x00
Data Rate	 = 1MBPS
Model		 = nRF24L01
CRC Length	 = Disabled
PA Power	 = PA_MIN

Initializing SD card...Wiring is correct and a card is present.

Card type: SD2

Volume type is FAT32

Volume size (bytes): 1972690944
Volume size (Kbytes): 1926456
Volume size (Mbytes): 1881

Files found on the card (name, date and size in bytes): 
123.BMP       2014-04-05 16:49:00 230454
HIBISCUS.BMP  2013-08-15 18:53:08 230454
TEST.BMP      2013-08-15 18:53:08 230456

On se rend compte que les registre du NRF ne sont pas initialisé …

Je ne comprend pas pourquoi !!!

Merci à vous

Bonjour,

-> code entre balise code (bouton #), merci.

Vu le nombre de 0 dans le second rapport je pencherai pour un problème de câblage ou de conflit de brochage.

Quand tu dis "dans le cas où les deux sont branchés", tu veux dire que quand la SD n'était pas branché, c'était carrément le module qui ne l'était pas ou bien tu enlevais la carte ?

et on est bien d'accord que dans les deux tu utilises le même code ?

Bjr,

Dans les 2 cas, j’utilise le même code.

C’est bien le module que je débranchais et pas seulement la carte

Merci

Dans ce cas essaye sans la carte mais module SD branché