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

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

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.