1.17. lpc17xx_i2s
Module¶
I2S client library functions. Find implementation details in LPC17xx CMSIS-Compliant Standard Peripheral Firmware Driver Library documentation.
-
class
robovero.lpc17xx_i2s.
I2S_CFG_Type
(**kwargs)¶ Bases:
robovero.internals.cstruct
I2S configuration structure definition.
- wordwidth: the number of bytes in data as follow:
- I2S_WORDWIDTH_8: 8 bit data
- I2S_WORDWIDTH_16: 16 bit data
- I2S_WORDWIDTH_32: 32 bit data
- mono: Set mono/stereo mode, should be:
- I2S_STEREO: stereo mode
- I2S_MONO: mono mode
- stop: Disables accesses on FIFOs, should be:
- I2S_STOP_ENABLE: enable stop mode
- I2S_STOP_DISABLE: disable stop mode
- reset: Asynchronously reset tje transmit channel and FIFO, should be:
- I2S_RESET_ENABLE: enable reset mode
- I2S_RESET_DISABLE: disable reset mode
- ws_sel: Set Master/Slave mode, should be:
- I2S_MASTER_MODE: I2S master mode
- I2S_SLAVE_MODE: I2S slave mode
- mute: MUTE mode: when true, the transmit channel sends only zeroes, shoule be:
- I2S_MUTE_ENABLE: enable mute mode
- I2S_MUTE_DISABLE: disable mute mode
- ptr: LPC1769 memory address where structure is stored. Use this in place of
- the C reference operator (&).
- wordwidth: the number of bytes in data as follow:
-
robovero.lpc17xx_i2s.
I2S_Config
(I2Sx, TRMode, ConfigStruct)¶ Configure I2S.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
- ConfigStruct: pointer to I2S_CFG_Type structure which will be initialized
-
robovero.lpc17xx_i2s.
I2S_DAI_WS_HALFPERIOD
(n)¶ I2S word select half period minus one (9 bits).
-
robovero.lpc17xx_i2s.
I2S_DAO_WS_HALFPERIOD
(n)¶ I2S word select half period minus one.
-
robovero.lpc17xx_i2s.
I2S_DMA1_RX_DEPTH
(n)¶ I2S set FIFO level that trigger a receive DMA request on DMA1.
-
robovero.lpc17xx_i2s.
I2S_DMA1_TX_DEPTH
(n)¶ I2S set FIFO level that trigger a transmit DMA request on DMA1.
-
robovero.lpc17xx_i2s.
I2S_DMA2_RX_DEPTH
(n)¶ I2S set FIFO level that trigger a receive DMA request on DMA2.
-
robovero.lpc17xx_i2s.
I2S_DMA2_TX_DEPTH
(n)¶ I2S set FIFO level that trigger a transmit DMA request on DMA2.
-
robovero.lpc17xx_i2s.
I2S_DMACmd
(I2Sx, DMAIndex, TRMode, NewState)¶ Enable/Disable DMA operation for I2S.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- DMAIndex: DMAIndex chose what DMA is used, should be:
- I2S_DMA_1 = 0: DMA1
- I2S_DMA_2 = 1: DMA2
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
- NewState: new state of DMA operation, should be:
- ENABLE
- DISABLE
-
class
robovero.lpc17xx_i2s.
I2S_DMAConf_Type
(**kwargs)¶ Bases:
robovero.internals.cstruct
I2S DMA configuration structure definition.
- DMAIndex: Select DMA1 or DMA2, should be:
- I2S_DMA_1: DMA1
- I2S_DMA_2: DMA2
- depth: FIFO level that triggers a DMA request
- ptr: LPC1769 memory address where structure is stored. Use this in place of
- the C reference operator (&).
- DMAIndex: Select DMA1 or DMA2, should be:
-
robovero.lpc17xx_i2s.
I2S_DMAConfig
(I2Sx, DMAConfig, TRMode)¶ Configure DMA operation for I2S.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- DMAConfig: pointer to I2S_DMAConf_Type used for configuration
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
-
robovero.lpc17xx_i2s.
I2S_DeInit
(I2Sx)¶ Deinitialize I2S transmit or receive.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
-
robovero.lpc17xx_i2s.
I2S_FreqConfig
(I2Sx, Freq, TRMode)¶ Set frequency for I2S.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- Freq: The frequency to be set. It can range from 16-96 kHz(16, 22.05, 32,
- 44.1, 48, 96kHz)
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
Return:
- Status: ERROR or SUCCESS
-
robovero.lpc17xx_i2s.
I2S_GetIRQDepth
(I2Sx, TRMode)¶ Get I2S interrupt depth. Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
Return:
- depth of FIFO level on which to create an irq request
-
robovero.lpc17xx_i2s.
I2S_GetIRQStatus
(I2Sx, TRMode)¶ Get I2S interrupt status.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
Return:
- FunctionalState should be: ENABLE or DISABLE
-
robovero.lpc17xx_i2s.
I2S_GetLevel
(I2Sx, TRMode)¶ Get I2S Buffer Level.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
Return:
- current level of Transmit/Receive Buffer
-
robovero.lpc17xx_i2s.
I2S_IRQCmd
(I2Sx, TRMode, NewState)¶ Enable/Disable IRQ for I2S.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
- NewState: ENABLE or DISABLE
-
robovero.lpc17xx_i2s.
I2S_IRQConfig
(I2Sx, TRMode, level)¶ Configure IRQ for I2S.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
- level: the FIFO level that triggers IRQ request
-
robovero.lpc17xx_i2s.
I2S_IRQ_RX_DEPTH
(n)¶ I2S set the FIFO level on which to create an irq request.
-
robovero.lpc17xx_i2s.
I2S_IRQ_TX_DEPTH
(n)¶ I2S set the FIFO level on which to create an irq request.
-
robovero.lpc17xx_i2s.
I2S_Init
(I2Sx)¶ Initialize I2S.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
-
class
robovero.lpc17xx_i2s.
I2S_MODEConf_Type
(**kwargs)¶ Bases:
robovero.internals.cstruct
I2S mode configuration structure definition.
- clksel: Clock source selection, should be:
- I2S_CLKSEL_FRDCLK: Select the fractional rate divider clock output
- I2S_CLKSEL_MCLK: Select the MCLK signal as the clock source
- fpin: Select four pin mode, should be:
- I2S_4PIN_ENABLE: 4-pin enable
- I2S_4PIN_DISABLE: 4-pin disable
- mcena: Select MCLK mode, should be:
- I2S_MCLK_ENABLE: MCLK enable for output
- I2S_MCLK_DISABLE: MCLK disable for output
- ptr: LPC1769 memory address where structure is stored. Use this in place of
- the C reference operator (&).
- clksel: Clock source selection, should be:
-
robovero.lpc17xx_i2s.
I2S_ModeConfig
(I2Sx, ModeConfig, TRMode)¶ Configuration operating mode for I2S.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- ModeConfig: pointer to I2S_MODEConf_Type used for configuration
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
-
robovero.lpc17xx_i2s.
I2S_Mute
(I2Sx, TRMode)¶ I2S Mute.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
-
robovero.lpc17xx_i2s.
I2S_Pause
(I2Sx, TRMode)¶ I2S Pause.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
-
robovero.lpc17xx_i2s.
I2S_RXBITRATE
(n)¶ Receive Bit Rate register.
-
robovero.lpc17xx_i2s.
I2S_RXMODE_CLKSEL
(n)¶ I2S Receive select clock source.
-
robovero.lpc17xx_i2s.
I2S_RXRATE_X_DIVIDER
(n)¶ I2S Receive MCLK rate denominator.
-
robovero.lpc17xx_i2s.
I2S_RXRATE_Y_DIVIDER
(n)¶ I2S Receive MCLK rate denominator.
-
robovero.lpc17xx_i2s.
I2S_Receive
(I2Sx)¶ I2S Receive Data.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
Return:
- received value
-
robovero.lpc17xx_i2s.
I2S_STATE_RX_LEVEL
(n)¶ I2S Status Current level of the Receive FIFO (5 bits).
-
robovero.lpc17xx_i2s.
I2S_STATE_TX_LEVEL
(n)¶ I2S Status Current level of the Transmit FIFO (5 bits).
-
robovero.lpc17xx_i2s.
I2S_Send
(I2Sx, BufferData)¶ I2S Send data.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- BufferData: pointer to uint32_t is the data will be send
-
robovero.lpc17xx_i2s.
I2S_SetBitRate
(I2Sx, bitrate, TRMode)¶ I2S set bitrate.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- bitrate: bitrate value should be in range: 0 .. 63
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
-
robovero.lpc17xx_i2s.
I2S_Start
(I2Sx)¶ Clear all STOP,RESET and MUTE bit, ready to operate.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
-
robovero.lpc17xx_i2s.
I2S_Stop
(I2Sx, TRMode)¶ I2S Stop.
Args:
- I2Sx: I2S peripheral selected, should be: LPC_I2S
- TRMode: Transmit/receive mode, should be:
- I2S_TX_MODE = 0: transmit mode
- I2S_RX_MODE = 1: receive mode
-
robovero.lpc17xx_i2s.
I2S_TXBITRATE
(n)¶ Transmit Bit Rate registe.
-
robovero.lpc17xx_i2s.
I2S_TXMODE_CLKSEL
(n)¶ I2S Transmit select clock source (2 bits).
-
robovero.lpc17xx_i2s.
I2S_TXRATE_X_DIVIDER
(n)¶ I2S Transmit MCLK rate denominator.
-
robovero.lpc17xx_i2s.
I2S_TXRATE_Y_DIVIDER
(n)¶ I2S Transmit MCLK rate denominator.
-
robovero.lpc17xx_i2s.
PARAM_I2S_4PIN
(n)¶ Macro check I2S 4-pin mode.
-
robovero.lpc17xx_i2s.
PARAM_I2S_BITRATE
(n)¶ Macro check I2S bit-rate value.
-
robovero.lpc17xx_i2s.
PARAM_I2S_CHANNEL
(n)¶ Macro check I2S channel type.
-
robovero.lpc17xx_i2s.
PARAM_I2S_CLKSEL
(n)¶ Macro check I2S clock select mode.
-
robovero.lpc17xx_i2s.
PARAM_I2S_DMA
(n)¶ Macro check I2S DMA mode.
-
robovero.lpc17xx_i2s.
PARAM_I2S_DMA_DEPTH
(n)¶ Macro check I2S DMA depth value.
-
robovero.lpc17xx_i2s.
PARAM_I2S_HALFPERIOD
(n)¶ Macro check I2S half-period value.
-
robovero.lpc17xx_i2s.
PARAM_I2S_IRQ_LEVEL
(n)¶ Macro check I2S irq level value.
-
robovero.lpc17xx_i2s.
PARAM_I2S_MCLK
(n)¶ Macro check I2S MCLK mode.
-
robovero.lpc17xx_i2s.
PARAM_I2S_MUTE
(n)¶ Macro check I2S reset mode.
-
robovero.lpc17xx_i2s.
PARAM_I2S_RESET
(n)¶ Macro check I2S reset mode.
-
robovero.lpc17xx_i2s.
PARAM_I2S_STOP
(n)¶ Macro check I2S stop mode.
-
robovero.lpc17xx_i2s.
PARAM_I2S_TRX
(n)¶ Macro check I2S transmit/receive mode.
-
robovero.lpc17xx_i2s.
PARAM_I2S_WORDWIDTH
(n)¶ Macro check I2S word width type.
-
robovero.lpc17xx_i2s.
PARAM_I2S_WS_SEL
(n)¶ Macro check I2S master/slave mode.
-
robovero.lpc17xx_i2s.
PARAM_I2Sx
(n)¶ Macro to determine if it is valid I2S peripheral.
-
robovero.lpc17xx_i2s.
PRAM_I2S_FREQ
(freq)¶ Macro to check Data to send valid.