3.9 KiB
I2S Module
Since | Origin / Contributor | Maintainer | Source |
---|---|---|---|
2017-04-29 | zelll | Arnim Läuger | i2s.c |
The I2S module provides access to the in-built two I2S controllers.
!!! note "DAC mode configuration" DACs are only available for DAC built-in mode on I2S peripheral 0.
!!! note "ADC mode configuration" Only ADC1 is available for ADC built-in mode.
i2s.mute()
Mute the I2S channel. The hardware buffer is instantly filled with silence.
Syntax
`i2s.mute(i2s_num)
Parameters
i2s_num
I2S peripheral 0 or 1
Returns
nil
An error is thrown in case of invalid parameters or if the i2s driver failed.
i2s.read()
Read data from I2S receive buffer.
Syntax
i2s.read(i2s_num, size[, wait_ms])
Parameters
i2s_num
I2S peripheral 0 or 1size
Bytes to readwait_ms
Millisecond to wait if data is not ready. Optional, defaults to 0 (not to wait) when omitted.
Returns
Data read from data-in pin. If data is not ready in wait_ms
millisecond, less than size
bytes can be returned.
An error is thrown in case of invalid parameters or if the i2s driver failed.
i2s.start()
Configuration and start I2S bus.
Syntax
i2s.start(i2s_num, cfg, cb)
Parameters
i2s_num
I2S peripheral 0 or 1cfg
table containing configuration data:mode
I2S work mode. Optional, defaults toi2s.MODE_MASTER + i2s.MODE_TX
when omitted.i2s.MODE_MASTER
i2s.MODE_SLAVE
i2s.MODE_TX
i2s.MODE_RX
i2s.MODE_DAC_BUILT_IN
i2s.MODE_ADC_BUILT_IN
i2s.MODE_PDM
rate
audio sample rate. Optional, defauls to 44100 when omitted.bits
bits per sample. Optional, defaults to 16 when omitted.channel
channel format of I2S stream. Optional, defaults toi2s.CHANNEL_RIGHT_LEFT
when omitted.i2s.CHANNEL_RIGHT_LEFT
i2s.CHANNEL_ALL_LEFT
i2s.CHANNEL_ONLY_LEFT
i2s.CHANNEL_ALL_RIGHT
i2s.CHANNEL_ONLY_RIGHT
format
communication format. Optional, defaults toi2s.FORMAT_I2S + i2s.FORMAT_I2S_MSB
when omitted.i2s.FORMAT_I2S
i2s.FORMAT_I2S_MSB
i2s.FORMAT_I2S_LSB
i2s.FORMAT_PCM
i2s.FORMAT_PCM_SHORT
i2s.FORMAT_PCM_LONG
buffer_count
number of dma buffers. Optional, defaults to 2 when omitted.buffer_len
size of one dma buffer. Optional, defaults to rate/100 when omitted.bck_pin
clock pin, optionalws_pin
WS pin, optionaldata_out_pin
data output pin, optionaldata_in_pin
data input pin, optionaldac_mode
DAC mode configuration. Optional, defaults toi2s.DAC_CHANNEL_DISABLE
when omitted.i2s.DAC_CHANNEL_DISABLE
i2s.DAC_CHANNEL_RIGHT
i2s.DAC_CHANNEL_LEFT
i2s.DAC_CHANNEL_BOTH
adc1_channel
ADC1 channel number 0..7. Optional, defaults to off when omitted.
cb
function called when transmit data is requested or received data is available- the function is called with parameters
i2s_num
anddir
dir
is "tx" for TX data request. Function shall calli2s.write()
.dir
is "rx" for RX data available. Function shall calli2s.read()
.
- the function is called with parameters
Returns
nil
An error is thrown in case of invalid parameters or if the i2s driver failed.
i2s.stop()
Stop I2S bus.
Syntax
i2s.stop(i2s_num)
Parameters
i2s_num
I2S peripheral 0 or 1
Returns
nil
An error is thrown in case of invalid parameters or if the i2s driver failed.
i2s.write()
Write to I2S transmit buffer.
Syntax
i2s.write(i2s_num, data)
Parameters
i2s_num
I2S peripheral 0 or 1data
string containing I2S stream data
Returns
nil
An error is thrown in case of invalid parameters or if the channel failed.