SPI pinout of this ESP32

Hi all ,

Please who has idea of the pinout (MISO, MOSI, CS and CLK) of this ESP-C3-13/13U kit

Back
The link is

I dont know if it works for the C3 exactly, but on the other ESP32s the SPI pins can just be defined to any of the digital I\O pins. .

have a look at esp-c3-13-kit-v1.0_specification

Depends on HSPI or VSPI --

Thanks for the link. I uploaded the code and here is the output. The I2C pins are working very well but the SPI output are zeros

MISO: 5
SCK: 4
SS: 7
ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd5810,len:0x438
load:0x403cc710,len:0x91c
load:0x403ce710,len:0x25b0
entry 0x403cc710
MOSI: 6
MISO: 5
SCK: 4
SS: 7
SDA: 8
SCL: 9

Where's that "SPI not working" sketch posted?

I used this library on the board with the above pinout.



#include<ADXL345_WE.h>
#include<SPI.h>
#define CS_PIN 7   // Chip Select Pin
//In case you want to change the default SPI pins (e.g. for ESP32), uncomment and adjust:
  #define MOSI_PIN 6
  #define MISO_PIN 5
  #define SCK_PIN 4

bool spi = true;    // flag indicating that SPI shall be used

/* There are three ways to create your ADXL345 object in SPI mode:
 * ADXL345_WE myAcc = ADXL345_WE(CS_PIN, spi)     -> uses SPI, spi is just a flag, see SPI example
 * ADXL345_WE myAcc = ADXL345_WE(&SPI, CS_PIN, spi) -> uses SPI / passes the SPI object, spi is just a flag, see SPI example
 * ADXL345_WE myAcc = ADXL345_WE(&SPI, CS_PIN, spi, MOSI_PIN, MISO_PIN, SCK_PIN) -> like the latter, but also changes the SPI pins  
 */

ADXL345_WE myAcc = ADXL345_WE(CS_PIN, spi);

void setup(){
  Serial.begin(9600);
  Serial.println("ADXL345_Sketch - Basic Data");
  if(!myAcc.init()){
    Serial.println("ADXL345 not connected!");
  }

/* You can set the SPI clock speed. Default is 8 MHz. */
//  myAcc.setSPIClockSpeed(4000000);
   
/* Choose the data rate         Hz
    ADXL345_DATA_RATE_3200    3200
    ADXL345_DATA_RATE_1600    1600
    ADXL345_DATA_RATE_800      800
    ADXL345_DATA_RATE_400      400
    ADXL345_DATA_RATE_200      200
    ADXL345_DATA_RATE_100      100
    ADXL345_DATA_RATE_50        50
    ADXL345_DATA_RATE_25        25
    ADXL345_DATA_RATE_12_5      12.5  
    ADXL345_DATA_RATE_6_25       6.25
    ADXL345_DATA_RATE_3_13       3.13
    ADXL345_DATA_RATE_1_56       1.56
    ADXL345_DATA_RATE_0_78       0.78
    ADXL345_DATA_RATE_0_39       0.39
    ADXL345_DATA_RATE_0_20       0.20
    ADXL345_DATA_RATE_0_10       0.10
*/
  myAcc.setDataRate(ADXL345_DATA_RATE_12_5);
  delay(100);
  Serial.print("Data rate: ");
  Serial.print(myAcc.getDataRateAsString());

/* In full resolution the size of the raw values depend on the
    range: 2g = 10 bit; 4g = 11 bit; 8g = 12 bit; 16g =13 bit;
    uncomment to change to 10 bit for all ranges. 
 */
  // myAcc.setFullRes(false);

/* Choose the measurement range
    ADXL345_RANGE_16G    16g     
    ADXL345_RANGE_8G      8g     
    ADXL345_RANGE_4G      4g   
    ADXL345_RANGE_2G      2g
*/ 
  myAcc.setRange(ADXL345_RANGE_4G);
  Serial.print("  /  g-Range: ");
  Serial.println(myAcc.getRangeAsString());
  Serial.println();

/* Uncomment to enable Low Power Mode. It saves power but slightly
    increases noise. LowPower only affetcs Data Rates 12.5 Hz to 400 Hz.
*/
  // myAcc.setLowPower(true);
}

/* The LSB of the Data registers is 3.9 mg (milli-g, not milligramm).
    This value is used calculating g from raw. However, this is an ideal
    value which you might want to calibrate. 
*/

void loop() {
  xyzFloat raw = myAcc.getRawValues();
  xyzFloat g = myAcc.getGValues();
  
  Serial.print("Raw-x = ");
  Serial.print(raw.x);
  Serial.print("  |  Raw-y = ");
  Serial.print(raw.y);
  Serial.print("  |  Raw-z = ");
  Serial.println(raw.z);

  Serial.print("g-x   = ");
  Serial.print(g.x);
  Serial.print("  |  g-y   = ");
  Serial.print(g.y);
  Serial.print("  |  g-z   = ");
  Serial.println(g.z);

  Serial.println();
  
  delay(1000);
  
}

and this output didn't change


Raw-x = -3801.00  |  Raw-y = -8289.00  |  Raw-z = 8446.00
g-x   = -14.82  |  g-y   = -32.33  |  g-z   = 32.94

Raw-x = -3801.00  |  Raw-y = -8289.00  |  Raw-z = 8446.00
g-x   = -14.82  |  g-y   = -32.33  |  g-z   = 32.94

Raw-x = -3801.00  |  Raw-y = -8289.00  |  Raw-z = 8446.00
g-x   = -14.82  |  g-y   = -32.33  |  g-z   = 32.94

Raw-x = -3801.00  |  Raw-y = -8289.00  |  Raw-z = 8446.00
g-x   = -14.82  |  g-y   = -32.33  |  g-z   = 32.94

Raw-x = -3801.00  |  Raw-y = -8289.00  |  Raw-z = 8446.00
g-x   = -14.82  |  g-y   = -32.33  |  g-z   = 32.94

Try replacing
ADXL345_WE myAcc = ADXL345_WE(CS_PIN, spi);
with
ADXL345_WE myAcc = ADXL345_WE(&SPI, CS_PIN, spi, MOSI_PIN, MISO_PIN, SCK_PIN);

I got


Raw-x = 0.00  |  Raw-y = 0.00  |  Raw-z = 0.00
g-x   = -1.56  |  g-y   = 5.99  |  g-z   = 0.09

Raw-x = 16227.00  |  Raw-y = 6336.00  |  Raw-z = 0.00
g-x   = 0.11  |  g-y   = 0.00  |  g-z   = 0.00

Raw-x = 16227.00  |  Raw-y = 6592.00  |  Raw-z = 0.00
g-x   = 31.18  |  g-y   = 0.89  |  g-z   = 0.36

Raw-x = 0.00  |  Raw-y = 512.00  |  Raw-z = 48.00
g-x   = -3.61  |  g-y   = 24.21  |  g-z   = 0.00

Raw-x = 7968.00  |  Raw-y = 224.00  |  Raw-z = 195.00
g-x   = -1.72  |  g-y   = 8.24  |  g-z   = 0.00

Raw-x = 0.00  |  Raw-y = 512.00  |  Raw-z = 48.00

after few seconds , the values doesnt change and I have used the three ADXL345 object in SPI mode

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