3.5 KiB
3.5 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.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 omittedi2s.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 omittedbits
bits per sample. Optional, defaults to 16 when omittedchannel
channel format of I2S stream. Optional, defaults toi2s.CHANNEL_RIGHT_LEFT
when omittedi2s.CHANNEL_RIGHT_LEFT
i2s.CHANNEL_ALL_LEFT
i2s.CHANNEL_ONLY_LEFT
i2s.CHANNEL_ALL_RIGHT
i2s.CHANNEL_ONLY_RIGHT
format
communicarion format. Optional, defaults toi2s.FORMAT_I2S + i2s.FORMAT_I2S_MSB
when omittedi2s.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 omittedbuffer_len
size of one dma buffer. Optional, defaults to rate/100bck_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
if omittedi2s.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 is 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 channel 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 channel failed.
i2s.read()
Read data from data-in
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) if omitted.
Returns
Data read from data-in pin. If data is not ready in wait_ms
millisecond, less than size
bytes can be returned.
i2s.write()
Write to I2S bus.
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.