Risolto quasi :( Conflitto tra utilizzatori sul bus spi

ho un progetto che utilizza un nano rp2040 e 2 display SPI oled 1,5 " uso le librerie Adafruit_GFX.h e Adafruit_SSD1351.h
ho aggiunto al progetto un sensore magnetico angolare con all'interno as5047p
sensore questo sensore sembra funzionare benissimo con le sue librerie solo che quando inizia a funzionare mi blocca i display , e non ho trovato nessun sistema per far ripartire i display
mentre lo sketch e in esecuzione. Mi piacerebbe usare questo codice in allegato per il sensore che non utilizza nessuna libreria e anche questo blocca i display e lui continua a funzionare :thinking: l-unica cosa che mi viene in mente e che va a modificare qualcosa nel SPI E I DISPLAY NON SI TROVANO PIU

void lett_ta()
{

    
     SPI.beginTransaction(SPISettings(3000000, MSBFIRST, SPI_MODE1));
   //SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));

  //--sending the command
  digitalWrite(CS_pin_ta, LOW);
  SPI.transfer16(0b1111111111111111);
  digitalWrite(CS_pin_ta, HIGH);

  delay(10);

  //--receiving the reading
  digitalWrite(CS_pin_ta, LOW);
  rawData = SPI.transfer16(0b1111111111111111);
  digitalWrite(CS_pin_ta, HIGH);

  SPI.endTransaction();

  rawData = rawData & 0b0011111111111111; //removing the top 2 bits (PAR and EF)

  degAngle = (float)rawData / 16384.0 * 360.0; //16384 = 2^14, 360 = 360 degrees

  Serial.print("lett_ta: ");
  Serial.println(degAngle);

  
}

Anche secondo me il problema sta li.
Se guardi sorgente Adafruit_SSD1351.cpp pare la frequenza SPI per nano sia:

#elif defined(__AVR__) || defined(TEENSYDUINO)
  #define SPI_DEFAULT_FREQ 8000000 ///< AVR SPI default frequency

Inoltre la begin del display fa un initSPI(freq); ma poi non credo la rimetta a posto
Prova a mettere alla fine del codice che hai postato
SPI.beginTransaction(SPISettings(8000000, MSBFIRST, SPI_MODE0));
P.S. il primo okay, gli altri 2 parametri non sono sicuro

Anche se qui: "https://docs.arduino.cc/learn/communication/spi"
mi pare dica che i settaggi tra beginTransaction e endTransaction non dovrebbero influenzare il display

@ua6em:

I had already warned you ... we are in the ITALIAN section and if you want to write here:

  1. first please, since you didn't, introduce yourself, like everyone else (according to Italian section rules), in the appropriate presentation area

  2. you must write ONLY in Italian, other languages are not allowed.

Thank you for your cooperation.

Guglielmo

Scusa per la disattenzione! Cercherò di seguire le regole

1 Like

per adesso ho sistemato nella maniera che non mi piace :rage: (100 euro di sensori buttati via )
ho ri-cambiato sensore angolare messo un sensore con AS5600 accoppiato con una schedina TCA9548A tutto su i2c

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.