Skip to content

Commit 4d19495

Browse files
committed
Works with I2S compat mode with BCLK mode set to 0 on AK4619.
1 parent 449caf6 commit 4d19495

File tree

2 files changed

+26
-26
lines changed

2 files changed

+26
-26
lines changed

libraries/I2S/src/pio_i2s.pio

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -110,15 +110,15 @@ lastbit:
110110
; to be 32 (as per the TDM specs)
111111
; +----- WCLK
112112
; |+---- BCLK
113-
mov x, y side 0b00 [1]
113+
mov x, y side 0b01 [1]
114114
bitloop:
115-
out pins, 1 side 0b01 ; Output changes on rising edge
116-
in pins, 1 side 0b01 ; Sample input on rising edge
117-
jmp x-- bitloop side 0b00 [1]
115+
out pins, 1 side 0b00 ; Output changes on falling edge
116+
in pins, 1 side 0b00 ; Sample input on falling edge
117+
jmp x-- bitloop side 0b11 [1] ; Last bit toggles WCLK to mark frame boundary
118118

119-
lastbit: ; Last bit toggles WCLK to mark frame boundary
120-
in pins, 1 side 0b11
121-
out pins, 1 side 0b11
119+
lastbit:
120+
in pins, 1 side 0b10
121+
out pins, 1 side 0b10
122122
; Loop back to the beginning
123123

124124

@@ -128,15 +128,15 @@ lastbit: ; Last bit toggles WCLK to mark frame boundary
128128
; to be 32 (as per the TDM specs)
129129
; +----- WCLK
130130
; |+---- BCLK
131-
mov x, y side 0b00 [1]
131+
mov x, y side 0b10 [1]
132132
bitloop:
133-
out pins, 1 side 0b10 ; Output changes on rising edge
134-
in pins, 1 side 0b10 ; Sample input on rising edge
135-
jmp x-- bitloop side 0b00 [1]
133+
out pins, 1 side 0b00 ; Output changes on falling edge
134+
in pins, 1 side 0b00 ; Sample input on falling edge
135+
jmp x-- bitloop side 0b11 [1] ; Last bit toggles WCLK to mark frame boundary
136136

137-
lastbit: ; Last bit toggles WCLK to mark frame boundary
138-
in pins, 1 side 0b11
139-
out pins, 1 side 0b11
137+
lastbit:
138+
in pins, 1 side 0b01
139+
out pins, 1 side 0b01
140140
; Loop back to the beginning
141141

142142

libraries/I2S/src/pio_i2s.pio.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,12 @@ static inline pio_sm_config pio_tdm_out_swap_program_get_default_config(uint off
202202

203203
static const uint16_t pio_tdm_inout_program_instructions[] = {
204204
// .wrap_target
205-
0xa122, // 0: mov x, y side 0 [1]
206-
0x6801, // 1: out pins, 1 side 1
207-
0x4801, // 2: in pins, 1 side 1
208-
0x0141, // 3: jmp x--, 1 side 0 [1]
209-
0x5801, // 4: in pins, 1 side 3
210-
0x7801, // 5: out pins, 1 side 3
205+
0xa922, // 0: mov x, y side 1 [1]
206+
0x6001, // 1: out pins, 1 side 0
207+
0x4001, // 2: in pins, 1 side 0
208+
0x1941, // 3: jmp x--, 1 side 3 [1]
209+
0x5001, // 4: in pins, 1 side 2
210+
0x7001, // 5: out pins, 1 side 2
211211
// .wrap
212212
};
213213

@@ -239,12 +239,12 @@ static inline pio_sm_config pio_tdm_inout_program_get_default_config(uint offset
239239

240240
static const uint16_t pio_tdm_inout_swap_program_instructions[] = {
241241
// .wrap_target
242-
0xa122, // 0: mov x, y side 0 [1]
243-
0x7001, // 1: out pins, 1 side 2
244-
0x5001, // 2: in pins, 1 side 2
245-
0x0141, // 3: jmp x--, 1 side 0 [1]
246-
0x5801, // 4: in pins, 1 side 3
247-
0x7801, // 5: out pins, 1 side 3
242+
0xb122, // 0: mov x, y side 2 [1]
243+
0x6001, // 1: out pins, 1 side 0
244+
0x4001, // 2: in pins, 1 side 0
245+
0x1941, // 3: jmp x--, 1 side 3 [1]
246+
0x4801, // 4: in pins, 1 side 1
247+
0x6801, // 5: out pins, 1 side 1
248248
// .wrap
249249
};
250250

0 commit comments

Comments
 (0)