14. lpc17xx_gpdma Module

General purpose DMA client library functions. Find implementation details in CMSIS-Compliant Standard Peripheral Firmware Driver Library documentation.

robovero.lpc17xx_gpdma.GPDMA_ChannelCmd(channelNum, NewState)

Enable/Disable DMA channel.

Args:

  • channelNum: GPDMA channel, should be in range from 0 to 7
  • NewState: New State of this command, should be:
    • ENABLE
    • DISABLE
class robovero.lpc17xx_gpdma.GPDMA_Channel_CFG_Type(**kwargs)

Bases: robovero.internals.cstruct

GPDMA Channel configuration structure type definition.

  • ChannelNum: DMA channel number, should be in range from 0 to 7. DMA channel 0

    has the highest priority and DMA channel 7 the lowest priority.

  • TransferSize: Length/Size of transfer

  • TransferWidth: Transfer width - used for TransferType is

    GPDMA_TRANSFERTYPE_M2M only

  • SrcMemAddr: Physical Source Address, used in case TransferType is chosen as

    GPDMA_TRANSFERTYPE_M2M or GPDMA_TRANSFERTYPE_M2P

  • DstMemAddr: Physical Destination Address, used in case TransferType is chosen

    as GPDMA_TRANSFERTYPE_M2M or GPDMA_TRANSFERTYPE_P2M

  • TransferType: Transfer Type, should be one of the following:

    • GPDMA_TRANSFERTYPE_M2M: Memory to memory - DMA control

    • GPDMA_TRANSFERTYPE_M2P: Memory to peripheral - DMA control

    • GPDMA_TRANSFERTYPE_P2M: Peripheral to memory - DMA control

    • GPDMA_TRANSFERTYPE_P2P: Source peripheral to destination

      peripheral - DMA control

  • SrcConn: Peripheral Source Connection type, used in case TransferType is

    chosen as GPDMA_TRANSFERTYPE_P2M or GPDMA_TRANSFERTYPE_P2P, should be one of:

    • GPDMA_CONN_SSP0_Tx: SSP0, Tx
    • GPDMA_CONN_SSP0_Rx: SSP0, Rx
    • GPDMA_CONN_SSP1_Tx: SSP1, Tx
    • GPDMA_CONN_SSP1_Rx: SSP1, Rx
    • GPDMA_CONN_ADC: ADC
    • GPDMA_CONN_I2S_Channel_0: I2S Channel 0
    • GPDMA_CONN_I2S_Channel_1: I2S Channel 1
    • GPDMA_CONN_DAC: DAC
    • GPDMA_CONN_UART0_Tx_MAT0_0: UART0 Tx / MAT0.0
    • GPDMA_CONN_UART0_Rx_MAT0_1: UART0 Rx / MAT0.1
    • GPDMA_CONN_UART1_Tx_MAT1_0: UART1 Tx / MAT1.0
    • GPDMA_CONN_UART1_Rx_MAT1_1: UART1 Rx / MAT1.1
    • GPDMA_CONN_UART2_Tx_MAT2_0: UART2 Tx / MAT2.0
    • GPDMA_CONN_UART2_Rx_MAT2_1: UART2 Rx / MAT2.1
    • GPDMA_CONN_UART3_Tx_MAT3_0: UART3 Tx / MAT3.0
    • GPDMA_CONN_UART3_Rx_MAT3_1: UART3 Rx / MAT3.1
  • DstConn: Peripheral Destination Connection type, used in case TransferType is

    chosen as GPDMA_TRANSFERTYPE_M2P or GPDMA_TRANSFERTYPE_P2P, should be one of:

    • GPDMA_CONN_SSP0_Tx: SSP0, Tx
    • GPDMA_CONN_SSP0_Rx: SSP0, Rx
    • GPDMA_CONN_SSP1_Tx: SSP1, Tx
    • GPDMA_CONN_SSP1_Rx: SSP1, Rx
    • GPDMA_CONN_ADC: ADC
    • GPDMA_CONN_I2S_Channel_0: I2S Channel 0
    • GPDMA_CONN_I2S_Channel_1: I2S Channel 1
    • GPDMA_CONN_DAC: DAC
    • GPDMA_CONN_UART0_Tx_MAT0_0: UART0 Tx / MAT0.0
    • GPDMA_CONN_UART0_Rx_MAT0_1: UART0 Rx / MAT0.1
    • GPDMA_CONN_UART1_Tx_MAT1_0: UART1 Tx / MAT1.0
    • GPDMA_CONN_UART1_Rx_MAT1_1: UART1 Rx / MAT1.1
    • GPDMA_CONN_UART2_Tx_MAT2_0: UART2 Tx / MAT2.0
    • GPDMA_CONN_UART2_Rx_MAT2_1: UART2 Rx / MAT2.1
    • GPDMA_CONN_UART3_Tx_MAT3_0: UART3 Tx / MAT3.0
    • GPDMA_CONN_UART3_Rx_MAT3_1: UART3 Rx / MAT3.1
  • DMALLI: Linker List Item structure data address if there’s no Linker List, set as ‘0’

  • ptr: LPC1769 memory address where structure is stored. Use this in place of the C reference operator (&).

robovero.lpc17xx_gpdma.GPDMA_ClearIntPending(int_type, channel)

Clear one or more interrupt requests on DMA channels.

Args:

  • int_type: GPDMA_STATCLR_INTTC: GPDMA Interrupt Terminal Count Request Clear

    GPDMA_STATCLR_INTERR: GPDMA Interrupt Error Clear

  • channel: GPDMA channel, should be in range from 0 to 7

robovero.lpc17xx_gpdma.GPDMA_DMACCxConfig_DestPeripheral(n)

Destination peripheral.

robovero.lpc17xx_gpdma.GPDMA_DMACCxConfig_SrcPeripheral(n)

Source peripheral.

robovero.lpc17xx_gpdma.GPDMA_DMACCxConfig_TransferType(n)

This value indicates the type of transfer.

robovero.lpc17xx_gpdma.GPDMA_DMACCxControl_DBSize(n)

Destination burst size.

robovero.lpc17xx_gpdma.GPDMA_DMACCxControl_DWidth(n)

Destination transfer width.

robovero.lpc17xx_gpdma.GPDMA_DMACCxControl_SBSize(n)

Source burst size.

robovero.lpc17xx_gpdma.GPDMA_DMACCxControl_SWidth(n)

Source transfer width.

robovero.lpc17xx_gpdma.GPDMA_DMACCxControl_TransferSize(n)

Transfer size.

robovero.lpc17xx_gpdma.GPDMA_DMACEnbldChns_Ch(n)
robovero.lpc17xx_gpdma.GPDMA_DMACIntErrClr_Ch(n)
robovero.lpc17xx_gpdma.GPDMA_DMACIntErrStat_Ch(n)
robovero.lpc17xx_gpdma.GPDMA_DMACIntStat_Ch(n)
robovero.lpc17xx_gpdma.GPDMA_DMACIntTCClear_Ch(n)
robovero.lpc17xx_gpdma.GPDMA_DMACIntTCStat_Ch(n)
robovero.lpc17xx_gpdma.GPDMA_DMACRawIntErrStat_Ch(n)
robovero.lpc17xx_gpdma.GPDMA_DMACRawIntTCStat_Ch(n)
robovero.lpc17xx_gpdma.GPDMA_DMACSoftBReq_Src(n)
robovero.lpc17xx_gpdma.GPDMA_DMACSoftLBReq_Src(n)
robovero.lpc17xx_gpdma.GPDMA_DMACSoftLSReq_Src(n)
robovero.lpc17xx_gpdma.GPDMA_DMACSoftSReq_Src(n)
robovero.lpc17xx_gpdma.GPDMA_DMACSync_Src(n)
robovero.lpc17xx_gpdma.GPDMA_DMAReqSel_Input(n)
robovero.lpc17xx_gpdma.GPDMA_Init()

Initialize GPDMA controller.

robovero.lpc17xx_gpdma.GPDMA_IntGetStatus(stat_type, channel)

Check if corresponding channel does have an active interrupt request or not.

Args:

  • stat_type: type of status, should be:
    • GPDMA_STAT_INT: GPDMA Interrupt Status
    • GPDMA_STAT_INTTC: GPDMA Interrupt Terminal Count Request Status
    • GPDMA_STAT_INTERR: GPDMA Interrupt Error Status
    • GPDMA_STAT_RAWINTTC: GPDMA Raw Interrupt Terminal Count Status
    • GPDMA_STAT_RAWINTERR: GPDMA Raw Error Interrupt Status
    • GPDMA_STAT_ENABLED_CH: GPDMA Enabled Channel Status
  • channel: GPDMA channel, should be in range from 0 to 7

Return:

  • status of DMA channel interrupt after masking
    • SET: the corresponding channel has no active interrupt request
    • RESET: the corresponding channel does have an active interrupt request
class robovero.lpc17xx_gpdma.GPDMA_LLI_Type(**kwargs)

Bases: robovero.internals.cstruct

GPDMA Linker List Item structure type definition.

  • SrcAddr: Source Address

  • DstAddr: Destination address

  • NextLLI: Next LLI address, otherwise set to ‘0’

  • Control: GPDMA Control of this LLI

  • ptr: LPC1769 memory address where structure is stored. Use this in place of

    the C reference operator (&).

robovero.lpc17xx_gpdma.GPDMA_Setup(GPDMAChannelConfig)

Setup GPDMA channel peripheral according to the specified parameters in the GPDMAChannelConfig.

Args:

  • GPDMAChannelConfig: Pointer to a GPDMA_CH_CFG_Type structure that contains the

    configuration information for the specified GPDMA channel peripheral.

Return:

  • ERROR if selected channel is enabled before
  • SUCCESS if channel is configured successfully
class robovero.lpc17xx_gpdma.GPDMA_StateClear_Type

GPDMA Interrupt clear status enumeration.

GPDMA_STATCLR_INTERR = 1
GPDMA_STATCLR_INTTC = 0
class robovero.lpc17xx_gpdma.GPDMA_Status_Type

GPDMA Status enumeration.

GPDMA_STAT_ENABLED_CH = 5
GPDMA_STAT_INT = 0
GPDMA_STAT_INTERR = 2
GPDMA_STAT_INTTC = 1
GPDMA_STAT_RAWINTERR = 4
GPDMA_STAT_RAWINTTC = 3
robovero.lpc17xx_gpdma.PARAM_GPDMA_BSIZE(n)

Macros check GPDMA burst size type.

robovero.lpc17xx_gpdma.PARAM_GPDMA_CHANNEL(n)

Macros check GPDMA channel.

robovero.lpc17xx_gpdma.PARAM_GPDMA_CONN(n)

Macros check GPDMA connection type.

robovero.lpc17xx_gpdma.PARAM_GPDMA_REQSEL(n)

Macros check GPDMA request select type.

robovero.lpc17xx_gpdma.PARAM_GPDMA_STAT(n)

Macros check GPDMA status type.

robovero.lpc17xx_gpdma.PARAM_GPDMA_STATCLR(n)

Macros check GPDMA state clear type.

robovero.lpc17xx_gpdma.PARAM_GPDMA_TRANSFERTYPE(n)

Macros check GPDMA transfer type.

robovero.lpc17xx_gpdma.PARAM_GPDMA_WIDTH(n)

Macros check GPDMA width type.