PIN konflikt Buttons und I2S gefixt

This commit is contained in:
duffyduck 2025-11-23 12:33:29 +01:00
parent 3ea3d26ee4
commit 2545bd45a2
2 changed files with 12 additions and 17 deletions

View File

@ -1,6 +1,6 @@
git init git init
git checkout -b main git checkout -b main
git add * git add *
git commit -m "first commit" git commit -m "PIN konflikt Buttons und I2S gefixt"
git remote add origin https://git.hacker-net.de/Hacker-Software/lego-esp32s3-gameboy.git git remote add origin https://git.hacker-net.de/Hacker-Software/lego-esp32s3-gameboy.git
git push -u origin main git push -u origin main

View File

@ -72,9 +72,9 @@ extern "C" {
#define I2S_SAMPLE_RATE 32000 // Hz (GameBoy: 32kHz) #define I2S_SAMPLE_RATE 32000 // Hz (GameBoy: 32kHz)
#define I2S_BITS_PER_SAMPLE 16 #define I2S_BITS_PER_SAMPLE 16
#define I2S_PIN_BCLK 41 // Bit Clock #define I2S_PIN_BCLK 35 // Bit Clock (moved from 41 - conflict fixed!)
#define I2S_PIN_LRC 42 // Left/Right Clock (WS) #define I2S_PIN_LRC 36 // Left/Right Clock (WS) (moved from 42 - conflict fixed!)
#define I2S_PIN_DIN 40 // Data In (to MAX98357A) #define I2S_PIN_DIN 37 // Data In (to MAX98357A) (moved from 40)
// No MCLK needed for MAX98357A! // No MCLK needed for MAX98357A!
#define I2S_DMA_BUF_COUNT 8 #define I2S_DMA_BUF_COUNT 8
@ -179,11 +179,13 @@ GPIO | Function | Direction | Notes
17 | LINK_SCLK | I/O | Link Cable 17 | LINK_SCLK | I/O | Link Cable
18 | LINK_SOUT | Output | Link Cable 18 | LINK_SOUT | Output | Link Cable
21 | BTN_A | Input | Pull-up 21 | BTN_A | Input | Pull-up
35 | I2S_BCLK | Output | Audio Bit Clock
36 | I2S_LRC | Output | Audio Word Select
37 | I2S_DIN | Output | Audio Data
38 | LINK_SIN | Input | Link Cable 38 | LINK_SIN | Input | Link Cable
39 | LED_STATUS | Output | Status indicator 39 | LED_STATUS | Output | Status indicator
40 | I2S_DIN | Output | Audio 41 | BTN_RIGHT | Input | Pull-up (conflict fixed!)
41 | BTN_RIGHT/I2S_BCLK| I/O | Shared! 42 | BTN_LEFT | Input | Pull-up (conflict fixed!)
42 | BTN_LEFT/I2S_LRC | I/O | Shared!
43 | UART_TX | Output | Debug 43 | UART_TX | Output | Debug
44 | UART_RX | Input | Debug 44 | UART_RX | Input | Debug
45 | BTN_SELECT | Input | Pull-up 45 | BTN_SELECT | Input | Pull-up
@ -192,10 +194,10 @@ GPIO | Function | Direction | Notes
48 | BTN_START | Input | Pull-up 48 | BTN_START | Input | Pull-up
NOTES: NOTES:
- GPIO 41/42 are SHARED between buttons and I2S! - PIN CONFLICTS FIXED! I2S moved to GPIO 35/36/37
Configure carefully or use different pins - Buttons GPIO 41/42 are now free from conflicts!
- SPI bus is shared: Display + SD Card - SPI bus is shared: Display + SD Card
Use separate CS pins! â Use separate CS pins!
- I2C0: Touch controller - I2C0: Touch controller
- I2C1: NFC reader (separate bus!) - I2C1: NFC reader (separate bus!)
- All buttons have internal pull-ups enabled - All buttons have internal pull-ups enabled
@ -207,13 +209,6 @@ NOTES:
#define VALIDATE_PIN(pin) ((pin) >= 0 && (pin) <= 48) #define VALIDATE_PIN(pin) ((pin) >= 0 && (pin) <= 48)
// Check for pin conflicts at compile time // Check for pin conflicts at compile time
#if (BTN_RIGHT == I2S_PIN_BCLK)
#warning "BTN_RIGHT and I2S_BCLK share GPIO 41!"
#endif
#if (BTN_LEFT == I2S_PIN_LRC)
#warning "BTN_LEFT and I2S_LRC share GPIO 42!"
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }