kopia lustrzana https://github.com/raspberrypi/pico-extras
i2s: support swapped LRCK / BCK pins
rodzic
0b7be7c7fc
commit
c73f2f3a2b
|
@ -61,7 +61,9 @@ const audio_format_t *audio_i2s_setup(const audio_format_t *intended_audio_forma
|
|||
pio_sm_claim(audio_pio, sm);
|
||||
|
||||
|
||||
uint offset = pio_add_program(audio_pio, &audio_i2s_program);
|
||||
const struct pio_program *program =
|
||||
config->clock_pin_swapped ? &audio_i2s_swapped_program : &audio_i2s_program;
|
||||
uint offset = pio_add_program(audio_pio, program);
|
||||
|
||||
audio_i2s_program_init(audio_pio, sm, offset, config->data_pin, config->clock_pin_base);
|
||||
|
||||
|
|
|
@ -42,6 +42,24 @@ bitloop0:
|
|||
public entry_point:
|
||||
set x, 14 side 0b11
|
||||
|
||||
.program audio_i2s_swapped
|
||||
.side_set 2
|
||||
|
||||
; /--- BCLK
|
||||
; |/-- LRCLK
|
||||
bitloop1: ; ||
|
||||
out pins, 1 side 0b01
|
||||
jmp x-- bitloop1 side 0b11
|
||||
out pins, 1 side 0b00
|
||||
set x, 14 side 0b10
|
||||
|
||||
bitloop0:
|
||||
out pins, 1 side 0b00
|
||||
jmp x-- bitloop0 side 0b10
|
||||
out pins, 1 side 0b01
|
||||
public entry_point:
|
||||
set x, 14 side 0b11
|
||||
|
||||
% c-sdk {
|
||||
|
||||
static inline void audio_i2s_program_init(PIO pio, uint sm, uint offset, uint data_pin, uint clock_pin_base) {
|
||||
|
|
|
@ -115,6 +115,7 @@ typedef struct audio_i2s_config {
|
|||
uint8_t clock_pin_base;
|
||||
uint8_t dma_channel;
|
||||
uint8_t pio_sm;
|
||||
bool clock_pin_swapped;
|
||||
} audio_i2s_config_t;
|
||||
|
||||
/** \brief Set up system to output I2S audio
|
||||
|
|
Ładowanie…
Reference in New Issue