Does anyone know how to use SPI with ESP-32 cam? I'm currently integrating an RFID reader with the esp-32 cam.
I have a PIN diagram here:
https://www.seeedstudio.site/media/cata ... 32cam3.jpg)
but it doesn't have the data for the SPI pins like the one I have for my other devboard here:
https://www.shenzhen2u.com/NodeMCU-32S
I did find a table for the SPI pins from the Espressif docs, but since the VSPI pins aren't in the esp32-cam, I ended up using HSPI, but it doesn't seem to work.
https://docs.espressif.com/projects/esp ... aster.html
I found a schematic diagram, but unfortunately I can't read schematics since I come from a software engineering background:
https://github.com/SeeedDocument/forum_ ... M_V1.6.pdf
However, I did try to read it to the best of my ability, and I think the top right part (P1, P2) correspond to the header pins of the devboard. Incidentally, none of them are SDA, etc. (like shown in the esp32 module standalone of the left).
Does that mean I can't use it if the header pins don't have it and it's being used by the sdcard? The blurb for the devboard says it supports SPI, but I'm not sure how to use the SPI lines if it's not exposed as a header pin.
Using SPI with AI thinker ESP-32-cam
Re: Using SPI with AI thinker ESP-32-cam
Did you ever happen to find a solution to your problem:
Thanks!
??Using SPI with AI thinker ESP-32-cam
Thanks!
Re: Using SPI with AI thinker ESP-32-cam
It's works for me:
It's all about forced initialization of the SPI bus with the given pins:
--
I hope it helps someone
Code: Select all
#include <SPI.h>
#include <MFRC522.h>
#define MISO_PIN 12
#define MOSI_PIN 13
#define SCK_PIN 14
#define SS_PIN 15
#define RST_PIN 16
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
void setup() {
delay(2000);
Serial.begin(115200); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
// void SPIClass::begin(sck, miso, mosi, ss)
SPI.begin(SCK_PIN, MISO_PIN, MOSI_PIN, SS_PIN); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
delay(40); // Optional delay. Some board do need more time after init to be ready, see Readme
mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details
Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}
void loop() {
// Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
// Dump debug info about the card; PICC_HaltA() is automatically called
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}
Code: Select all
// void SPIClass::begin(sck, miso, mosi, ss)
SPI.begin(SCK_PIN, MISO_PIN, MOSI_PIN, SS_PIN); // Init SPI bus
I hope it helps someone
Who is online
Users browsing this forum: No registered users and 94 guests