Ja, vielleicht sollte ich erstmal von Anfang an berichten Ich hatte ehrlich gesagt nicht so schnell mit einer Antwort gerechnet, daher hier diverse Infos.
Hardware
- Esp32-WROOM-32D, auf der Unterseite steht „ESP32_Devkitc_V4 AZ-Delivery“, also vermutlich dieses hier?
- PN5189 RFID Reader, aktualisiert auf Firmware 4.1 via PN5180_Updater_ESP32
- Micro-SD Kartenleser mit entferntem Widerstand am MISO-Pin, im
SD_MMC_1BIT_MODE
- MAX98357 für’s Audio
- Rotary Encoder
- ein alter Lautsprecher, ein 24er LED-Ring, Buttons (bisher nur Platzhalter via Dupont-Kabel)
Ich habe das ganze bisher nur auf dem Breadboard zusammengesteckt und benutze damit das Profil vom Lolin 32D (HAL
3).
Software
Genutzt wird der Software-Stand der refactoring
Branch, im lolin_d32
Environment. Aber auch das az-delivery-devkit-v4
zeigt das gleiche Verhalten.
Das Problem hatte ich auch, hatte mir offenbar einen ungeeigneten Pin ausgesucht. Mit der „36“ gehts jetzt.
Damit meint sobald ich #define PN5180_ENABLE_LPCD
aktiviere. Egal, ob ich eine 14er oder eine 15er RFID-Karte nehme, ich bekomme ihn daraus nicht mehr geweckt.
Logic-level at PN5180's IRQ-PIN: 0
Kartenerkennung via 'low power' erfolgreich durchgeführt
ESP32 wurde vom Kartenleser aus dem Deepsleep aufgeweckt. Allerdings wurde keine ISO-14443-Karte gefunden. Gehe zurück in den Deepsleep...
ets Jun 8 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
Ohne den PN180 Deep Sleep bootet er vollständig und landet im Idle mit rotierenden LEDs. Die 15er Tags funktionieren damit aber trotzdem nicht (Passwort habe ich angepasst).
Maximale Inaktivitätszeit wurde aus NVS geladen: 10
Initiale LED-Helligkeit wurde aus NVS geladen: 16
LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2
_____ ____ ____ _
| ____| / ___| | _ \ _ _ (_) _ __ ___
| _| \__ \ | |_) | | | | | | | | '_ \ / _ \
| |___ ___) | | __/ | |_| | | | | | | | | (_) |
|_____| |____/ |_| \__,_| |_| |_| |_| \___/
Rfid-controlled musicplayer
Rev 20210705-1
Wakeup was not caused by deep sleep: 0
Versuche SD-Karte wird im SD_MMC-Modus (1 Bit) zu mounten...
SD card type: SDHC
FTP-User wurde aus NVS geladen: esp32
FTP-Passwort wurde aus NVS geladen: esp32
Lautstärke vor dem letzten Shutdown wird wiederhergestellt. Dies überschreibt die Einstellung der initialen Lautstärke aus der
GUI.
Initiale Lautstärke wurde aus NVS geladen: 3
Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 21
Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.00 V
Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 4.20 V
Spannungslevel (Batterie) fuer Warnung via Neopixel aus NVS geladen: 3.40 V
Zyklus für Spannungsmessung (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 10 Minuten
Hostname aus NVS geladen: musikbox
.Aktuelle IP: 192.168.188.95
Freier Heap-Speicher nach Setup-Routine: 128560
PSRAM: 0 bytes
Flash-size: 4194304 bytes
Firmware version=4.1
RFID-Tags koennen jetzt gescannt werden...
Neue Lautstärke empfangen via Queue: 3
Aktuelle Batteriespannung: 6.05 V
Am Drehencoder habe ich die Pins CLK, DT, SW (habe ich als Switch interpretiert, für den Button), +, GND. Auf der Platine sind 3 Stellen für 10k Widerstände zu sehen, aber R1 ist scheinbar frei.
// RFID
#define RFID_CS 21 // GPIO for chip select (RFID)
#define RFID_MOSI 23 // GPIO for master out slave in (RFID)
#define RFID_MISO 19 // GPIO for master in slave out (RFID)
#define RFID_SCK 18 // GPIO for clock-signal (RFID)
#define RFID_BUSY 16 // PN5180 BUSY PIN
#define RFID_RST 22 // PN5180 RESET PIN
#define RFID_IRQ 39 // PN5180 IRQ PIN (only needed for low power card detection)
// Rotary encoder
#define ROTARYENCODER_CLK 34 // If you want to reverse encoder's direction, just switch GPIOs of CLK with DT (in software or hardware)
#define ROTARYENCODER_DT 33 // Info: Lolin D32 is using 35 for battery-voltage-monitoring!
#define ROTARYENCODER_BUTTON 32 // (set to 99 to disable; 0->39 for GPIO; 100->115 for port-expander)
// Buttons
#define NEXT_BUTTON 4 // Button 0: GPIO to detect next
#define PREVIOUS_BUTTON 36 // Button 1: GPIO to detect previous (Important: as of 19.11.2020 changed from 33 to 2; make sure to change in SD-MMC-mode)
#define PAUSEPLAY_BUTTON 5 // Button 2: GPIO to detect pause/play