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);
|
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);
|
audio_i2s_program_init(audio_pio, sm, offset, config->data_pin, config->clock_pin_base);
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,24 @@ bitloop0:
|
||||||
public entry_point:
|
public entry_point:
|
||||||
set x, 14 side 0b11
|
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 {
|
% c-sdk {
|
||||||
|
|
||||||
static inline void audio_i2s_program_init(PIO pio, uint sm, uint offset, uint data_pin, uint clock_pin_base) {
|
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 clock_pin_base;
|
||||||
uint8_t dma_channel;
|
uint8_t dma_channel;
|
||||||
uint8_t pio_sm;
|
uint8_t pio_sm;
|
||||||
|
bool clock_pin_swapped;
|
||||||
} audio_i2s_config_t;
|
} audio_i2s_config_t;
|
||||||
|
|
||||||
/** \brief Set up system to output I2S audio
|
/** \brief Set up system to output I2S audio
|
||||||
|
|
Ładowanie…
Reference in New Issue