# MCBSP Module

The Multichannel Buffered Serial Port (McBSP) API provides a set of functions to configure device’s McBSP module. The driver provides functions to initialize the module, configure module Transmitter, Receiver and Sample Rate Generator, obtain status/error information and to manage interrupts. APIs are also available to configure McBSP in SPI mode.

group `mcbsp_api`

  Defines

  `MCBSP_XCR1_M` (MCBSP_XCR1_XWDLEN1_M

  | \

  MCBSP_XCR1_XFRLEN1_M)
  `MCBSP_RCR1_M` (MCBSP_RCR1_RWDLEN1_M

  | \

  MCBSP_RCR1_RFRLEN1_M)
  `MCBSP_XCR2_M` (MCBSP_XCR2_XWDLEN2_M

  | \

  MCBSP_XCR2_XFRLEN2_M)
  `MCBSP_RCR2_M` (MCBSP_RCR2_RWDLEN2_M

  | \

  MCBSP_RCR2_RFRLEN2_M)
  `MCBSP_RX_NO_ERROR` 0x0U

    No error.

  `MCBSP_RX_BUFFER_ERROR` 0x4U

    Buffer Full.

  `MCBSP_RX_FRAME_SYNC_ERROR` 0x8U

    Frame sync error.

  `MCBSP_RX_BUFFER_FRAME_SYNC_ERROR` 0xCU

    Buffer and frame sync error.

  `MCBSP_TX_NO_ERROR` 0x0U

    No error.

  `MCBSP_TX_BUFFER_ERROR` 0x4U

    Buffer overrun.

  `MCBSP_TX_FRAME_SYNC_ERROR` 0x8U

    Frame sync error.

  `MCBSP_TX_BUFFER_FRAME_SYNC_ERROR` 0xCU

    Buffer and frame sync error.

  `MCBSP_ERROR_EXCEEDED_CHANNELS` 0x1U

    Exceeded number of channels.

  `MCBSP_ERROR_2_PARTITION_A` 0x2U

    Error in 2 partition A setup.

  `MCBSP_ERROR_2_PARTITION_B` 0x4U

    Error in 2 partition B setup.

  `MCBSP_ERROR_INVALID_MODE` 0x8U

    Invalid mode.

  Enums

  enum `McBSP_RxSignExtensionMode`

    Values that can be passed to McBSP_setRxSignExtension() as the mode parameters.

    Values:

    enumerator `MCBSP_RIGHT_JUSTIFY_FILL_ZERO` = 0x0000U

      Right justify and zero fill MSB.

    enumerator `MCBSP_RIGHT_JUSTIFY_FILL_SIGN` = 0x2000U

      Right justified sign extended into MSBs.

    enumerator `MCBSP_LEFT_JUSTIFY_FILL_ZER0` = 0x4000U

      Left justifies LBS filled with zero.

  enum `McBSP_ClockStopMode`

    Values that can be passed to McBSP_setClockStopMode() as the mode parameter.

    Values:

    enumerator `MCBSP_CLOCK_MCBSP_MODE` = 0x0000U

      Disables clock stop mode.

    enumerator `MCBSP_CLOCK_SPI_MODE_NO_DELAY` = 0x1000U

      Enables clock stop mode.

    enumerator `MCBSP_CLOCK_SPI_MODE_DELAY` = 0x1800U

      Enables clock stop mode with half cycle delay.

  enum `McBSP_RxInterruptSource`

    Values that can be passed to McBSP_setRxInterruptSource() as the interruptSource parameter.

    Values:

    enumerator `MCBSP_RX_ISR_SOURCE_SERIAL_WORD` = 0x0000U

      Interrupt when Rx is ready.

    enumerator `MCBSP_RX_ISR_SOURCE_END_OF_BLOCK` = 0x0010U

      Interrupt at block end.

    enumerator `MCBSP_RX_ISR_SOURCE_FRAME_SYNC` = 0x0020U

      Interrupt when frame sync occurs.

    enumerator `MCBSP_RX_ISR_SOURCE_SYNC_ERROR` = 0x0030U

      Interrupt on frame sync error.

  enum `McBSP_EmulationMode`

    Values that can be passed to McBSP_setEmulationMode() as the emulationMode parameter.

    Values:

    enumerator `MCBSP_EMULATION_IMMEDIATE_STOP` = 0x0000U

      McBSP TX and RX stop when a breakpoint is reached.

    enumerator `MCBSP_EMULATION_SOFT_STOP` = 0x0100U

      McBSP TX stops after current word transmitted.

    enumerator `MCBSP_EMULATION_FREE_RUN` = 0x0200U

      McBSP TX and RX run ignoring the breakpoint.

  enum `McBSP_TxInterruptSource`

    Values that can be passed to McBSP_setTxInterruptSource() as the interruptSource parameter.

    Values:

    enumerator `MCBSP_TX_ISR_SOURCE_TX_READY` = 0x0000U

      Interrupt when Tx Ready.

    enumerator `MCBSP_TX_ISR_SOURCE_END_OF_BLOCK` = 0x0010U

      Interrupt at block end.

    enumerator `MCBSP_TX_ISR_SOURCE_FRAME_SYNC` = 0x0020U

      Interrupt when frame sync occurs.

    enumerator `MCBSP_TX_ISR_SOURCE_SYNC_ERROR` = 0x0030U

      Interrupt on frame sync error.

  enum `McBSP_DataPhaseFrame`

    Values that can be passed to to McBSP_setTxDataSize() and McBSP_setRxDataSize() as the dataFrame parameter.

    Values:

    enumerator `MCBSP_PHASE_ONE_FRAME` = 0x0000U

      Single Phase.

    enumerator `MCBSP_PHASE_TWO_FRAME` = 0x0001U

      Dual Phase.

  enum `McBSP_DataBitsPerWord`

    Values that can be passed as of McBSP_setTxDataSize() and McBSP_setRxDataSize() as the bitsPerWord parameter.

    Values:

    enumerator `MCBSP_BITS_PER_WORD_8` = 0x0000U

      8 bit word.

    enumerator `MCBSP_BITS_PER_WORD_12` = 0x0020U

      12 bit word.

    enumerator `MCBSP_BITS_PER_WORD_16` = 0x0040U

      16 bit word.

    enumerator `MCBSP_BITS_PER_WORD_20` = 0x0060U

      20 bit word.

    enumerator `MCBSP_BITS_PER_WORD_24` = 0x0080U

      24 bit word.

    enumerator `MCBSP_BITS_PER_WORD_32` = 0x00A0U

      32 bit word.

  enum `McBSP_CompandingMode`

    Values that can be passed to McBSP_setTxCompandingMode() and McBSP_setRxCompandingMode() as the compandingMode parameter.

    Values:

    enumerator `MCBSP_COMPANDING_NONE` = 0x0000U

      Disables companding.

    enumerator `MCBSP_COMPANDING_NONE_LSB_FIRST` = 0x0008U

      Disables companding and Enables 8 bit LSB first data reception.

    enumerator `MCBSP_COMPANDING_U_LAW_SET` = 0x0010U

      U-law companding.

    enumerator `MCBSP_COMPANDING_A_LAW_SET` = 0x0018U

      A-law companding.

  enum `McBSP_DataDelayBits`

    Values that can be passed to McBSP_setTxDataDelayBits() and McBSP_setRxDataDelayBits() as the delayBits parameter.

    Values:

    enumerator `MCBSP_DATA_DELAY_BIT_0` = 0x0000U

      O bit delay.

    enumerator `MCBSP_DATA_DELAY_BIT_1` = 0x0001U

      1 bit delay.

    enumerator `MCBSP_DATA_DELAY_BIT_2` = 0x0002U

      2 bit delay.

  enum `McBSP_SRGRxClockSource`

    Values that can be passed for SRG for McBSP_setRxSRGClockSource() as the clockSource parameter.

    Values:

    enumerator `MCBSP_SRG_RX_CLOCK_SOURCE_LSPCLK` = 0x0001U

      LSPCLK is SRG clock source.

    enumerator `MCBSP_SRG_RX_CLOCK_SOURCE_MCLKX_PIN` = 0x0003U

      MCLKx is SRG clock source.

  enum `McBSP_SRGTxClockSource`

    Values that can be passed for SRG to McBSP_setTxSRGClockSource() as the clockSource parameter.

    Values:

    enumerator `MCBSP_SRG_TX_CLOCK_SOURCE_LSPCLK` = 0x0001U

      LSPCLK is SRG clock source.

    enumerator `MCBSP_SRG_TX_CLOCK_SOURCE_MCLKR_PIN` = 0x0002U

      MCLKris SRG clock source.

  enum `McBSP_TxInternalFrameSyncSource`

    Values that can be passed to McBSP_setTxInternalFrameSyncSource() as the syncMode parameter.

    Values:

    enumerator `MCBSP_TX_INTERNAL_FRAME_SYNC_DATA` = 0x0000U

      sync source.

      Data is frame

    enumerator `MCBSP_TX_INTERNAL_FRAME_SYNC_SRG` = 0x1000U

      sync source.

      SRG is frame

  enum `McBSP_MultichannelPartition`

    Values that can be passed to McBSP_setRxMultichannelPartition() and McBSP_setTxMultichannelPartition() as the MultichannelPartition parameter.

    Values:

    enumerator `MCBSP_MULTICHANNEL_TWO_PARTITION` = 0x0000U

      Two partition.

    enumerator `MCBSP_MULTICHANNEL_EIGHT_PARTITION` = 0x0200U

      Eight partition.

  enum `McBSP_PartitionBlock`

    Values that can be passed to McBSP_setRxTwoPartitionBlock() and McBSP_setTxTwoPartitionBlock() as the block parameter.

    Values:

    enumerator `MCBSP_PARTITION_BLOCK_0` = 0x0000U

      Partition block 0.

    enumerator `MCBSP_PARTITION_BLOCK_1` = 0x0001U

      Partition block 1.

    enumerator `MCBSP_PARTITION_BLOCK_2` = 0x0002U

      Partition block 2.

    enumerator `MCBSP_PARTITION_BLOCK_3` = 0x0003U

      Partition block 3.

    enumerator `MCBSP_PARTITION_BLOCK_4` = 0x0004U

      Partition block 4.

    enumerator `MCBSP_PARTITION_BLOCK_5` = 0x0005U

      Partition block 5.

    enumerator `MCBSP_PARTITION_BLOCK_6` = 0x0006U

      Partition block 6.

    enumerator `MCBSP_PARTITION_BLOCK_7` = 0x0007U

      Partition block 7.

  enum `McBSP_RxChannelMode`

    Values that can be passed to McBSP_setRxChannelMode() as the channelMode parameter.

    Values:

    enumerator `MCBSP_ALL_RX_CHANNELS_ENABLED` = 0x0000U

      All Channels are enabled.

    enumerator `MCBSP_RX_CHANNEL_SELECTION_ENABLED` = 0x0001U

      Selected channels enabled.

  enum `McBSP_TxChannelMode`

    Values that can be passed to McBSP_setTxChannelMode() as the channelMode parameter.

    Values:

    enumerator `MCBSP_ALL_TX_CHANNELS_ENABLED` = 0x0000U

      All Channels Enabled.

    enumerator `MCBSP_TX_CHANNEL_SELECTION_ENABLED` = 0x0001U

      Selection Enabled.

    enumerator `MCBSP_ENABLE_MASKED_TX_CHANNEL_SELECTION` = 0x0002U

      Masked Tx Channel.

    enumerator `MCBSP_SYMMERTIC_RX_TX_SELECTION` = 0x0003U

      Symmetric Selection.

  enum `McBSP_TxFrameSyncSource`

    Values that can be passed to McBSP_setTxFrameSyncSource() as the syncSource parameter.

    Values:

    enumerator `MCBSP_TX_EXTERNAL_FRAME_SYNC_SOURCE` = 0x0000U

      FSR pin supplies frame sync signal.

    enumerator `MCBSP_TX_INTERNAL_FRAME_SYNC_SOURCE` = 0x0800U

      SRG supplies frame sync signal.

  enum `McBSP_RxFrameSyncSource`

    Values that can be passed to McBSP_setRxFrameSyncSource() as the syncSource parameter.

    Values:

    enumerator `MCBSP_RX_EXTERNAL_FRAME_SYNC_SOURCE` = 0x0000U

      FSR pin supplies frame sync signal.

    enumerator `MCBSP_RX_INTERNAL_FRAME_SYNC_SOURCE` = 0x0400U

      SRG supplies frame sync signal.

  enum `McBSP_TxClockSource`

    Values that can be passed to McBSP_setTxClockSource() as the Transmitter clockSource parameter.

    Values:

    enumerator `MCBSP_EXTERNAL_TX_CLOCK_SOURCE` = 0x0000U

      Clock source is external.

    enumerator `MCBSP_INTERNAL_TX_CLOCK_SOURCE` = 0x0200U

      Clock source is internal.

  enum `McBSP_RxClockSource`

    Values that can be passed toMcBSP_setRxClockSource() as the Receiver clockSource parameter.

    Values:

    enumerator `MCBSP_EXTERNAL_RX_CLOCK_SOURCE` = 0x0000U

      Clock source is external.

    enumerator `MCBSP_INTERNAL_RX_CLOCK_SOURCE` = 0x0100U

      Clock source is internal.

  enum `McBSP_TxFrameSyncPolarity`

    Values that can be passed to McBSP_setTxFrameSyncPolarity() as the Transmitter syncPolarity parameter.

    Values:

    enumerator `MCBSP_TX_FRAME_SYNC_POLARITY_HIGH` = 0x0000U

      Pulse active high.

    enumerator `MCBSP_TX_FRAME_SYNC_POLARITY_LOW` = 0x0008U

      Pulse active low.

  enum `McBSP_RxFrameSyncPolarity`

    Values that can be passed to McBSP_setRxFrameSyncPolarity() as the Receiver syncPolarity parameter.

    Values:

    enumerator `MCBSP_RX_FRAME_SYNC_POLARITY_HIGH` = 0x0000U

      Pulse active high.

    enumerator `MCBSP_RX_FRAME_SYNC_POLARITY_LOW` = 0x0004U

      Pulse active low.

  enum `McBSP_TxClockPolarity`

    Values that can be passed for Transmitter of McBSP_setTxClockPolarity() as the Transmiiter clockPolarity parameter.

    Values:

    enumerator `MCBSP_TX_POLARITY_RISING_EDGE` = 0x0000U

      TX data on rising edge.

    enumerator `MCBSP_TX_POLARITY_FALLING_EDGE` = 0x0002U

      TX data on falling edge.

  enum `McBSP_RxClockPolarity`

    Values that can be passed for Receiver of McBSP_setRxClockPolarity() as the Receiver clockPolarity parameter.

    Values:

    enumerator `MCBSP_RX_POLARITY_FALLING_EDGE` = 0x0000U

      RX data sampled falling edge.

    enumerator `MCBSP_RX_POLARITY_RISING_EDGE` = 0x0001U

      RX data sampled rising edge.

  enum `McBSP_CompandingType`

    Values that can be passed to McBSP_getLeftJustifyData() as the compandingType parameter.

    Values:

    enumerator `MCBSP_COMPANDING_U_LAW` = 0x0002U

      U-law companding.

    enumerator `MCBSP_COMPANDING_A_LAW` = 0x0003U

      A-law companding.

  Functions

  void `McBSP_disableLoopback`(uint32_t base)

    Disables digital loop back mode.

    This function disables digital loop back mode.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableLoopback`(uint32_t base)

    Enables digital loop back mode.

    This function enables digital loop back mode.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_setRxSignExtension`(uint32_t base, const McBSP_RxSignExtensionMode mode)

    Configures receiver sign extension mode.

    This function sets the sign extension mode. Valid values for mode are:

    - MCBSP_RIGHT_JUSTIFY_FILL_ZERO - right justified MSB filled with zero.

    - MCBSP_RIGHT_JUSTIFY_FILL_SIGN - right justified sign extended in MSBs.

    - MCBSP_LEFT_JUSTIFY_FILL_ZER0 - left justifies LBS filled with zero.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `mode`: is the sign extension mode.

    Return

      None.

  void `McBSP_setClockStopMode`(uint32_t base, const McBSP_ClockStopMode mode)

    Configures clock stop mode.

    This function sets the cock stop mode. Valid values for mode are

    - MCBSP_CLOCK_MCBSP_MODE disables clock stop mode.

    - MCBSP_CLOCK_SPI_MODE_NO_DELAY enables clock stop mode

    - MCBSP_CLOCK_SPI_MODE_DELAY enables clock stop mode with delay.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `mode`: is the clock stop mode.

    If an invalid value is provided, the function will exit with out altering the register bits involved.

    Return

      None.

  void `McBSP_disableDxPinDelay`(uint32_t base)

    Disables delay at DX pin.

    This function disables delay on pin DX when turning the module on.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableDxPinDelay`(uint32_t base)

    Enables delay at DX pin.

    This function enables a delay on pin DX when turning the module on. Look at McBSP timing diagrams for details.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_setRxInterruptSource`(uint32_t base, const McBSP_RxInterruptSource interruptSource)

    Configures receiver interrupt sources.

    This function sets the receiver interrupt sources. Valid values for interruptSource are:

    - MCBSP_RX_ISR_SOURCE_SERIAL_WORD - interrupt at each serial word.

    - MCBSP_RX_ISR_SOURCE_END_OF_BLOCK - interrupt at the end of block.

    - MCBSP_RX_ISR_SOURCE_FRAME_SYNC - interrupt when frame sync occurs.

    - MCBSP_RX_ISR_SOURCE_SYNC_ERROR - interrupt on frame sync error.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `interruptSource`: is the ISR source.

    Return

      None.

  void `McBSP_clearRxFrameSyncError`(uint32_t base)

    Clear the receiver frame sync error.

    This function clears the receive frame sync error.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  uint16_t `McBSP_getRxErrorStatus`(uint32_t base)

    Return receiver error.

    This function returns McBSP receiver errors.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      Returns the following error codes.

      - MCBSP_RX_NO_ERROR - if there is no error.

      - MCBSP_RX_BUFFER_ERROR - if buffergets full.

      - MCBSP_RX_FRAME_SYNC_ERROR -if unexpected frame sync occurs.

      - MCBSP_RX_BUFFER_FRAME_SYNC_ERROR - if buffer overrun and frame sync error occurs.

  bool `McBSP_isRxReady`(uint32_t base)

    Check if data is received by the receiver.

    This function returns the status of the receiver buffer , indicating if new data is available.

    Parameters

      - `base`: is the base address of the McBSP port.

    Return

      true if new data is available or if the current data was never read. false if there is no new data in the receive buffer.

  void `McBSP_resetReceiver`(uint32_t base)

    Reset McBSP receiver.

    This function resets McBSP receiver.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableReceiver`(uint32_t base)

    Enable McBSP receiver.

    This function enables McBSP receiver.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_setEmulationMode`(uint32_t base, const McBSP_EmulationMode emulationMode)

    Configures emulation mode.

    This function sets the McBSP characters when a breakpoint is encountered in emulation mode. Valid values for emulationMode are:

    - MCBSP_EMULATION_IMMEDIATE_STOP - transmitter and receiver both stop when a breakpoint is reached.

    - MCBSP_EMULATION_SOFT_STOP - transmitter stops after current word is transmitted. Receiver is not affected.

    - MCBSP_EMULATION_FREE_RUN - McBSP runs ignoring the breakpoint.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `emulationMode`: is the McBSP emulation character.

    Return

      None.

  void `McBSP_resetFrameSyncLogic`(uint32_t base)

    Reset frame sync logic.

    Resets frame sync logic.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableFrameSyncLogic`(uint32_t base)

    Enable frame sync logic.

    Enables frame sync logic.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_resetSampleRateGenerator`(uint32_t base)

    Reset sample rate generator.

    Resets sample rate generator by clearing GRST bit.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

  void `McBSP_enableSampleRateGenerator`(uint32_t base)

    Enable sample rate generator.

    Enables sample rate generator by setting GRST bit.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_setTxInterruptSource`(uint32_t base, const McBSP_TxInterruptSource interruptSource)

    Configures transmitter interrupt sources.

    This function sets the transmitter interrupt sources. Valid values for interruptSource are:

    - MCBSP_TX_ISR_SOURCE_TX_READY - interrupt when transmitter is ready to accept data.

    - MCBSP_TX_ISR_SOURCE_END_OF_BLOCK - interrupt at the end of block.

    - MCBSP_TX_ISR_SOURCE_FRAME_SYNC - interrupt when frame sync occurs.

    - MCBSP_TX_ISR_SOURCE_SYNC_ERROR - interrupt on frame sync error.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `interruptSource`: is the ISR source.

    Return

      None.

  uint16_t `McBSP_getTxErrorStatus`(uint32_t base)

    Return Transmitter error.

    This function returns McBSP transmitter errors.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      Returns the following error codes.

      - MCBSP_TX_NO_ERROR - if buffer overrun occurs.

      - MCBSP_TX_BUFFER_ERROR -if unexpected frame sync occurs.

      - MCBSP_TX_FRAME_SYNC_ERROR - if there is no error.

      - MCBSP_TX_BUFFER_FRAME_SYNC_ERROR - if buffer overrun and frame sync error occurs.

  void `McBSP_clearTxFrameSyncError`(uint32_t base)

    Clear the Transmitter frame sync error.

    This function clears the transmitter frame sync error.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  bool `McBSP_isTxReady`(uint32_t base)

    Check if Transmitter is ready.

    This function returns the status of the transmitter ready buffer, indicating if data can be written to the transmitter.

    Parameters

      - `base`: is the base address of the McBSP port.

    Return

      true if transmitter is ready to accept new data. false if transmitter is not ready to accept new data.

  void `McBSP_resetTransmitter`(uint32_t base)

    Reset McBSP transmitter.

    This functions resets McBSP transmitter.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableTransmitter`(uint32_t base)

    Enable McBSP transmitter.

    This function enables McBSP transmitter.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_disableTwoPhaseRx`(uint32_t base)

    Disable 2 Phase operation for data reception.

    This function disables 2 phase reception.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableTwoPhaseRx`(uint32_t base)

    Enable 2 Phase operation for data Reception.

    This function enables 2 phase reception.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_setRxCompandingMode`(uint32_t base, const McBSP_CompandingMode compandingMode)

    Configure receive data companding.

    This function configures the receive companding logic. The following are valid compandingMode values:

    Parameters

      - `base`: is the base address of the McBSP module.

      - `compandingMode`: is the companding mode to be used.

    - MCBSP_COMPANDING_NONE disables companding.

    - MCBSP_COMPANDING_NONE_LSB_FIRST disables companding and enables 8 bit LSB first data reception.

    - MCBSP_COMPANDING_U_LAW_SET enables U-law companding.

    - MCBSP_COMPANDING_A_LAW_SET enables A-law companding.

    Return

      None.

  void `McBSP_disableRxFrameSyncErrorDetection`(uint32_t base)

    Disables receiver unexpected frame sync error detection.

    This function disables unexpected frame sync error detection in the receiver.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableRxFrameSyncErrorDetection`(uint32_t base)

    Enable receiver unexpected frame sync error detection.

    This function enables unexpected frame sync error detection in the receiver.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_setRxDataDelayBits`(uint32_t base, const McBSP_DataDelayBits delayBits)

    Sets the receive bit data delay.

    This functions sets the bit delay after the frame sync pulse as specified by delayBits. Valid delay bits are

    MCBSP_DATA_DELAY_BIT_0, MCBSP_DATA_DELAY_BIT_1 or MCBSP_DATA_DELAY_BIT_2 corresponding to 0, 1 or 2 bit delay respectively.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `delayBits`: is the number of bits to delay.

    Return

      None.

  void `McBSP_disableTwoPhaseTx`(uint32_t base)

    Disable 2 Phase operation for data Transmission.

    This function disables 2 phase transmission.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableTwoPhaseTx`(uint32_t base)

    Enable 2 Phase operation for data Transmission.

    This function enables 2 phase transmission.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_setTxCompandingMode`(uint32_t base, const McBSP_CompandingMode compandingMode)

    Configure transmit data companding.

    This function configures the transmit companding logic. The following are valid compandingMode values:

    Parameters

      - `base`: is the base address of the McBSP module.

      - `compandingMode`: is the companding mode to be used.

    - MCBSP_COMPANDING_NONE disables companding.

    - MCBSP_COMPANDING_NONE_LSB_FIRST disables companding and enables 8 bit LSB first data reception.

    - MCBSP_COMPANDING_U_LAW_SET enables U-law companding.

    - MCBSP_COMPANDING_A_LAW_SET enables A-law companding.

    Return

      None.

  void `McBSP_disableTxFrameSyncErrorDetection`(uint32_t base)

    Disables transmitter unexpected frame sync error detection.

    This function disables unexpected frame sync error detection in the transmitter.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableTxFrameSyncErrorDetection`(uint32_t base)

    Enable transmitter unexpected frame sync error detection.

    This function enables unexpected frame sync error detection in the transmitter.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_setTxDataDelayBits`(uint32_t base, const McBSP_DataDelayBits delayBits)

    Sets the transmit bit delay.

    This function sets the bit delay after the frame sync pulse as specified by delayBits. Valid delay bits are

    MCBSP_DATA_DELAY_BIT_0, MCBSP_DATA_DELAY_BIT_1 or MCBSP_DATA_DELAY_BIT_2 corresponding to 0, 1 or 2 bit delay respectively.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `delayBits`: is the number of bits to delay.

    Return

      None.

  void `McBSP_setFrameSyncPulsePeriod`(uint32_t base, uint16_t frameClockDivider)

    Sets the period for frame synchronisation pulse.

    This function sets the sample rate generator clock divider for the McBSP frame sync clock(FSG). FSG = CLKG / (frameClockDivider + 1). frameClockDivider determines the period count.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `frameClockDivider`: is the divider count for the sync clock.

    Return

      None.

  void `McBSP_setFrameSyncPulseWidthDivider`(uint32_t base, uint16_t pulseWidthDivider)

    Sets the frame sync pulse width divider value.

    This function sets the pulse width divider bits for the McBSP frame sync clock(FSG). (pulseWidthDivider + 1) is the pulse width in CLKG cycles. pulseWidthDivider determines the pulse width (the on count).

    Parameters

      - `base`: is the base address of the McBSP module.

      - `pulseWidthDivider`: is the divider count for sync clock pulse.

    Return

      None.

  void `McBSP_setSRGDataClockDivider`(uint32_t base, uint16_t dataClockDivider)

    Sets the data clock divider values.

    This function sets the sample rate generator clock divider for the McBSP data clock(CLKG). CLKG = CLKSRG / (clockDivider + 1). Valid ranges for clockDivider are 0 to 0xFF.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `dataClockDivider`: is the divider count for the data rate.

    Return

      None.

  void `McBSP_disableSRGSyncFSR`(uint32_t base)

    Disables external clock sync with sample generator.

    This function disables CLKG and FSG sync with the external pulse on pin FSR.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableSRGSyncFSR`(uint32_t base)

    Enables external clock to synch with sample generator.

    This function enables CLKG and FSG to sync with the external pulse on pin FSR.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_setRxSRGClockSource`(uint32_t base, const McBSP_SRGRxClockSource srgClockSource)

    Configures receiver input clock source for sample generator.

    This functions sets the clock source for the sample rate generator. Valid values for

    clockSource are

    - MCBSP_SRG_RX_CLOCK_SOURCE_LSPCLK for LSPCLK.

    - MCBSP_SRG_RX_CLOCK_SOURCE_MCLKX_PIN for external clock at MCLKX pin. MCLKR pin will be an output driven by sample rate generator.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `srgClockSource`: is clock source for the sample generator.

    Return

      None.

  void `McBSP_setTxSRGClockSource`(uint32_t base, const McBSP_SRGTxClockSource srgClockSource)

    Configures transmitter input clock source for sample generator.

    This functions sets the clock source for the sample rate generator. Valid values for

    clockSource are

    - MCBSP_SRG_TX_CLOCK_SOURCE_LSPCLK for LSPCLK.

    - MCBSP_SRG_TX_CLOCK_SOURCE_MCLKR_PIN for external clock at MCLKR pin. MCLKX pin will be an output driven by sample rate generator.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `srgClockSource`: is clock source for the sample generator.

    Return

      None.

  void `McBSP_setTxInternalFrameSyncSource`(uint32_t base, const McBSP_TxInternalFrameSyncSource syncMode)

    Sets the mode for transmitter internal frame sync signal.

    This function sets the frame sync signal generation mode. The signal can be generated based on clock divider as set in

    McBSP_setFrameSyncPulsePeriod() function or when data is transferred from DXR registers to XSR registers. Valid input for syncMode are:
    Parameters

      - `base`: is the base address of the McBSP module.

      - `syncMode`: is the frame sync mode.

    - MCBSP_TX_INTERNAL_FRAME_SYNC_DATA - frame sync signal is generated when data is transferred from DXR registers to XSR registers.

    - MCBSP_TX_INTERNAL_FRAME_SYNC_SRG - frame sync signal is generated based on the clock counter value as defined in McBSP_setFrameSyncPulsePeriod() function.

    Return

      None.

  void `McBSP_setRxMultichannelPartition`(uint32_t base, const McBSP_MultichannelPartition partition)

    Set Multichannel receiver partitions.

    This function sets the partitions for Multichannel receiver. Valid values for partition are

    MCBSP_MULTICHANNEL_TWO_PARTITION or MCBSP_MULTICHANNEL_EIGHT_PARTITION for 2 and 8 partitions respectively.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `partition`: is the number of partitions.

    Return

      None.

  void `McBSP_setRxTwoPartitionBlock`(uint32_t base, const McBSP_PartitionBlock block)

    Sets block to receiver in two partition configuration.

    This function assigns the block the user provides to the appropriate receiver partition. If user sets the value of block to 0,2,4 or 6 the API will assign the blocks to partition A. If values 1,3,5,or 7 are set to block, then the API assigns the block to partition B.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `block`: is the block to assign to the partition.

    Note

      This function should be used with the two partition configuration only and not with eight partition configuration.

    Return

      None.

  uint16_t `McBSP_getRxActiveBlock`(uint32_t base)

    Returns the current active receiver block number.

    This function returns the current active receiver block involved in McBSP reception.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      Active block in McBSP reception. Returned values range from 0 to 7 representing the respective active block number .

  void `McBSP_setRxChannelMode`(uint32_t base, const McBSP_RxChannelMode channelMode)

    Configure channel selection mode for receiver.

    This function configures the channel selection mode. The following are valid values for channelMode:

    Parameters

      - `base`: is the base address of the McBSP module.

      - `channelMode`: is the channel selection mode.

    - MCBSP_ALL_RX_CHANNELS_ENABLED - enables all channels.

    - MCBSP_RX_CHANNEL_SELECTION_ENABLED - lets the user enable desired channels by using McBSP_enableRxChannel().

    Return

      None.

  void `McBSP_setTxMultichannelPartition`(uint32_t base, const McBSP_MultichannelPartition partition)

    Set Multichannel transmitter partitions.

    This function sets the partitions for Multichannel transmitter. Valid values for partition are

    MCBSP_MULTICHANNEL_TWO_PARTITION or MCBSP_MULTICHANNEL_EIGHT_PARTITION for 2 and 8 partitions respectively.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `partition`: is the number of partitions.

    Return

      None.

  void `McBSP_setTxTwoPartitionBlock`(uint32_t base, const McBSP_PartitionBlock block)

    Sets block to transmitter in two partition configuration.

    This function assigns the block the user provides to the appropriate transmitter partition. If user sets the value of block to 0,2,4 or 6 the API will assign the blocks to partition A. If values 1,3,5,or 7 are set to block, then the API assigns the block to partition B.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `block`: is the block to assign to the partition.

    Note

      This function should be used with the two partition configuration only and not with eight partition configuration.

    Return

      None.

  uint16_t `McBSP_getTxActiveBlock`(uint32_t base)

    Returns the current active transmitter block number.

    This function returns the current active transmitter block involved in McBSP transmission.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      Active block in McBSP transmission. Returned values range from 0 to 7 representing the respective active block number.

  void `McBSP_setTxChannelMode`(uint32_t base, const McBSP_TxChannelMode channelMode)

    Configure channel selection mode for transmitter.

    This function configures the channel selection mode. The following are valid values for channelMode:

    Parameters

      - `base`: is the base address of the McBSP module.

      - `channelMode`: is the channel selection mode.

    - MCBSP_ALL_TX_CHANNELS_ENABLED - enables and unmasks all channels

    - MCBSP_TX_CHANNEL_SELECTION_ENABLED - lets the user enable and unmask desired channels by using McBSP_enableTxChannel()

    - MCBSP_ENABLE_MASKED_TX_CHANNEL_SELECTION - All channels enables but until enabled by McBSP_enableTxChannel()

    - MCBSP_SYMMERTIC_RX_TX_SELECTION - Symmetric transmission and reception.

    Return

      None.

  void `McBSP_setTxFrameSyncSource`(uint32_t base, const McBSP_TxFrameSyncSource syncSource)

    Select the transmitter frame sync signal source.

    This function sets external or internal sync signal source based on the syncSource selection. Valid input for syncSource are:

    Parameters

      - `base`: is the base address of the McBSP module.

      - `syncSource`: is the transmitter frame sync source.

    - MCBSP_TX_EXTERNAL_FRAME_SYNC_SOURCE - frame sync signal is supplied externally by pin FSX.

    - MCBSP_TX_INTERNAL_FRAME_SYNC_SOURCE - frame sync signal is supplied internally.

    Return

      None.

  void `McBSP_setRxFrameSyncSource`(uint32_t base, const McBSP_RxFrameSyncSource syncSource)

    Select receiver frame sync signal source.

    This function sets external or internal sync signal source based on the syncSource selection. Valid input for syncSource are:

    Parameters

      - `base`: is the base address of the McBSP module.

      - `syncSource`: is the receiver frame sync source.

    - MCBSP_RX_EXTERNAL_FRAME_SYNC_SOURCE - frame sync signal is supplied externally by pin FSR.

    - MCBSP_RX_INTERNAL_FRAME_SYNC_SOURCE - frame sync signal is supplied by SRG.

    Return

      None.

  void `McBSP_setTxClockSource`(uint32_t base, const McBSP_TxClockSource clockSource)

    Configures the Transmit clock source.

    This function configures the clock source for the transmitter. Valid input for rxClockSource are:

    - MCBSP_INTERNAL_TX_CLOCK_SOURCE - internal clock source. SRG is the source.

    - MCBSP_EXTERNAL_TX_CLOCK_SOURCE - external clock source.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `clockSource`: is clock source for the transmission pin.

    Return

      None.

  void `McBSP_setRxClockSource`(uint32_t base, const McBSP_RxClockSource clockSource)

    Configures the Receive clock source.

    This function configures the clock source for the receiver. Valid input for base are:

    - MCBSP_INTERNAL_RX_CLOCK_SOURCE - internal clock source. Sample Rate Generator will be used.

    - MCBSP_EXTERNAL_RX_CLOCK_SOURCE - external clock will drive the data.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `clockSource`: is clock source for the reception pin.

    Return

      None.

  void `McBSP_setTxFrameSyncPolarity`(uint32_t base, const McBSP_TxFrameSyncPolarity syncPolarity)

    Sets transmitter frame sync polarity.

    This function sets the polarity (rising or falling edge)of the frame sync on FSX pin. Use

    MCBSP_TX_FRAME_SYNC_POLARITY_LOW for active low frame sync pulse and MCBSP_TX_FRAME_SYNC_POLARITY_HIGH for active high sync pulse.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `syncPolarity`: is the polarity of frame sync pulse.

    Return

      None.

  void `McBSP_setRxFrameSyncPolarity`(uint32_t base, const McBSP_RxFrameSyncPolarity syncPolarity)

    Sets receiver frame sync polarity.

    This function sets the polarity (rising or falling edge)of the frame sync on FSR pin. Use

    MCBSP_RX_FRAME_SYNC_POLARITY_LOW for active low frame sync pulse and MCBSP_RX_FRAME_SYNC_POLARITY_HIGH for active high sync pulse.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `syncPolarity`: is the polarity of frame sync pulse.

    Return

      None.

  void `McBSP_setTxClockPolarity`(uint32_t base, const McBSP_TxClockPolarity clockPolarity)

    Sets transmitter clock polarity when using external clock source.

    This function sets the polarity (rising or falling edge) of the transmitter clock on MCLKX pin. Valid values for clockPolarity are:

    - MCBSP_TX_POLARITY_RISING_EDGE for rising edge.

    - MCBSP_TX_POLARITY_FALLING_EDGE for falling edge.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `clockPolarity`: is the polarity of external clock.

    Return

      None.

  void `McBSP_setRxClockPolarity`(uint32_t base, const McBSP_RxClockPolarity clockPolarity)

    Sets receiver clock polarity when using external clock source.

    This function sets the polarity (rising or falling edge) of the receiver clock on MCLKR pin. If external clock is used, the polarity will affect CLKG signal. Valid values for clockPolarity are:

    - MCBSP_RX_POLARITY_RISING_EDGE for rising edge.

    - MCBSP_RX_POLARITY_FALLING_EDGE for falling edge.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `clockPolarity`: is the polarity of external clock.

    Return

      None.

  uint16_t `McBSP_read16bitData`(uint32_t base)

    Read 8,12 or 16 bit data word from McBSP data receive registers.

    This function returns the data value in data receive register.

    Parameters

      - `base`: is the base address of the McBSP port.

    Return

      received data.

  uint32_t `McBSP_read32bitData`(uint32_t base)

    Read 20, 24 or 32 bit data word from McBSP data receive registers.

    This function returns the data values in data receive registers.

    Parameters

      - `base`: is the base address of the McBSP port.

    Return

      received data.

  void `McBSP_write16bitData`(uint32_t base, uint16_t data)

    Write 8,12 or 16 bit data word to McBSP data transmit registers.

    This function writes 8,12 or 16 bit data to data transmit register.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `data`: is the data to be written.

    Return

      None.

  void `McBSP_write32bitData`(uint32_t base, uint32_t data)

    Write 20, 24 or 32 bit data word to McBSP data transmit registers.

    This function writes 20, 24 or 32 bit data to data transmit registers.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `data`: is the data to be written.

    Return

      None.

  uint16_t `McBSP_getLeftJustifyData`(uint16_t data, const McBSP_CompandingType compandingType)

    Return left justified for data for U Law or A Law companding.

    This functions returns U law or A law adjusted word.

    Parameters

      - `data`: is the 14 bit word.

      - `compandingType`: specifies the type comapnding desired.

    Return

      U law or A law left justified word.

  void `McBSP_enableRxInterrupt`(uint32_t base)

    Enable Recieve Interrupt.

    This function enables Recieve Interrupt on RRDY.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_disableRxInterrupt`(uint32_t base)

    Disable Recieve Interrupt.

    This function disables Recieve Interrupt on RRDY.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_enableTxInterrupt`(uint32_t base)

    Enable Transmit Interrupt.

    This function enables Transmit Interrupt on XRDY.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_disableTxInterrupt`(uint32_t base)

    Disable Transmit Interrupt.

    This function disables Transmit Interrupt on XRDY.

    Parameters

      - `base`: is the base address of the McBSP module.

    Return

      None.

  void `McBSP_transmit16BitDataNonBlocking`(uint32_t base, uint16_t data)

    Write 8,12 or 16 bit data word to McBSP data transmit registers

    This function sends 16 bit or less data to the transmitter buffer.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `data`: is the data to be written.

    Return

      None.

    Return

      None.

  void `McBSP_transmit16BitDataBlocking`(uint32_t base, uint16_t data)

    Write 8,12 or 16 bit data word to McBSP data transmit registers

    This function sends 16 bit or less data to the transmitter buffer. If transmit buffer is not ready the function will wait until transmit buffer is empty. If the transmitter buffer is empty the data will be written to the data registers.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `data`: is the data to be written.

    Return

      None.

  void `McBSP_transmit32BitDataNonBlocking`(uint32_t base, uint32_t data)

    Write 20 , 24 or 32 bit data word to McBSP data transmit registers

    This function sends 20 , 24 or 32 bit data to the transmitter buffer. If the transmitter buffer is empty the data will be written to the data registers.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `data`: is the data to be written.

    Return

      None.

  void `McBSP_transmit32BitDataBlocking`(uint32_t base, uint32_t data)

    Write 20 , 24 or 32 bit data word to McBSP data transmit registers

    This function sends 20 , 24 or 32 bit data to the transmitter buffer. If transmit buffer is not ready the function will wait until transmit buffer is empty. If the transmitter buffer is empty the data will be written to the data registers.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `data`: is the data to be written.

    Return

      None.

  void `McBSP_receive16BitDataNonBlocking`(uint32_t base, uint16_t *receiveData)

    Read 8,12 or 16 bit data word from McBSP data receive registers

    This function reads 8,12 or 16 bit data from the receiver buffer. If the receiver buffer has new data, the data will be read.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `receiveData`: is the pointer to the receive data.

    Return

      None.

  void `McBSP_receive16BitDataBlocking`(uint32_t base, uint16_t *receiveData)

    Read 8,12 or 16 bit data word from McBSP data receive registers

    This function reads 8,12 or 16 bit data from the receiver buffer. If receiver buffer is not ready the function will wait until receiver buffer has new data. If the receiver buffer has new data, the data will be read.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `receiveData`: is the pointer to the receive data.

    Return

      None.

  void `McBSP_receive32BitDataNonBlocking`(uint32_t base, uint32_t *receiveData)

    Read 20, 24 or 32 bit data word from McBSP data receive registers

    This function reads 20, 24 or 32 bit data from the receiver buffer. If the receiver buffer has new data, the data will be read.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `receiveData`: is the pointer to the receive data.

    Return

      None.

  void `McBSP_receive32BitDataBlocking`(uint32_t base, uint32_t *receiveData)

    Read 20, 24 or 32 bit data word from McBSP data receive registers

    This function reads 20, 24 or 32 bit data from the receiver buffer. If receiver buffer is not ready the function will wait until receiver buffer has new data. If the receiver buffer has new data, the data will be read.

    Parameters

      - `base`: is the base address of the McBSP port.

      - `receiveData`: is the pointer to the receive data.

    Return

      None.

  void `McBSP_setRxDataSize`(uint32_t base, const McBSP_DataPhaseFrame dataFrame, const McBSP_DataBitsPerWord bitsPerWord, uint16_t wordsPerFrame)

    Sets number of words per frame and bits per word for data Reception.

    This function sets the number of bits per word and the number of words per frame for the given phase. Valid inputs for phase are

    MCBSP_PHASE_ONE_FRAME or MCBSP_PHASE_TWO_FRAME representing the first or second frame phase respectively. Valid value for bitsPerWord are:

    - MCBSP_BITS_PER_WORD_8 8 bit word.

    - MCBSP_BITS_PER_WORD_12 12 bit word.

    - MCBSP_BITS_PER_WORD_16 16 bit word.

    - MCBSP_BITS_PER_WORD_20 20 bit word.

    - MCBSP_BITS_PER_WORD_24 24 bit word.

    - MCBSP_BITS_PER_WORD_32 32 bit word. The maximum value for wordsPerFrame is 127 (128 - 1)representing 128 words.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `dataFrame`: is the data frame phase.

      - `bitsPerWord`: is the number of bits per word.

      - `wordsPerFrame`: is the number of words per frame per phase.

    Return

      None.

  void `McBSP_setTxDataSize`(uint32_t base, const McBSP_DataPhaseFrame dataFrame, const McBSP_DataBitsPerWord bitsPerWord, uint16_t wordsPerFrame)

    Sets number of words per frame and bits per word for data Transmission.

    This function sets the number of bits per word and the number of words per frame for the given phase. Valid inputs for phase are

    MCBSP_PHASE_ONE_FRAME or MCBSP_PHASE_TWO_FRAME representing single or dual phase respectively. Valid values for bitsPerWord are:

    - MCBSP_BITS_PER_WORD_8 8 bit word.

    - MCBSP_BITS_PER_WORD_12 12 bit word.

    - MCBSP_BITS_PER_WORD_16 16 bit word.

    - MCBSP_BITS_PER_WORD_20 20 bit word.

    - MCBSP_BITS_PER_WORD_24 24 bit word.

    - MCBSP_BITS_PER_WORD_32 32 bit word. The maximum value for wordsPerFrame is 127 (128 - 1)representing 128 words.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `dataFrame`: is the data frame phase.

      - `bitsPerWord`: is the number of bits per word.

      - `wordsPerFrame`: is the number of words per frame per phase.

    Return

      None.

  void `McBSP_disableRxChannel`(uint32_t base, const McBSP_MultichannelPartition partition, uint16_t channel)

    Disables a channel in an eight partition receiver

    This function disables the given receiver channel number for the partition provided. Valid values for partition are

    MCBSP_MULTICHANNEL_TWO_PARTITION or MCBSP_MULTICHANNEL_EIGHT_PARTITION for 2 or 8 partitions respectively. Valid values for channel range from 0 to 127.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `partition`: is the partition of the channel.

      - `channel`: is the receiver channel number to be enabled.

    Return

      None.

  void `McBSP_enableRxChannel`(uint32_t base, const McBSP_MultichannelPartition partition, uint16_t channel)

    Enables a channel for eight partition receiver

    This function enables the given receiver channel number for the partition provided. Valid values for partition are

    MCBSP_MULTICHANNEL_TWO_PARTITION or MCBSP_MULTICHANNEL_EIGHT_PARTITION for 2 or 8 partitions respectively. Valid values for channel range from 0 to 127.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `partition`: is the partition of the channel.

      - `channel`: is the receiver channel number to be enabled.

    Return

      None.

  void `McBSP_disableTxChannel`(uint32_t base, const McBSP_MultichannelPartition partition, uint16_t channel)

    Disables a channel in an eight partition transmitter

    This function disables the given transmitter channel number for the partition provided. Valid values for partition are

    MCBSP_MULTICHANNEL_TWO_PARTITION or MCBSP_MULTICHANNEL_EIGHT_PARTITION for 2 or 8 partitions respectively. Valid values for channel range from 0 to 127.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `partition`: is the partition of the channel.

      - `channel`: is the transmitter channel number to be enabled.

    Return

      None.

  void `McBSP_enableTxChannel`(uint32_t base, const McBSP_MultichannelPartition partition, uint16_t channel)

    Enables a channel for eight partition transmitter

    This function enables the given transmitter channel number for the partition provided. Valid values for partition are

    MCBSP_MULTICHANNEL_TWO_PARTITION or MCBSP_MULTICHANNEL_EIGHT_PARTITION for 2 or 8 partitions respectively. Valid values for channel range from 0 to 127.
    Parameters

      - `base`: is the base address of the McBSP module.

      - `partition`: is the partition of the channel.

      - `channel`: is the transmitter channel number to be enabled.

    Return

      None.

  void `McBSP_configureTxClock`(uint32_t base, const McBSP_ClockParams *ptrClockParams)

    Configures transmitter clock

    Note

      Make sure the clock divider is such that, the McBSP clock is not running faster than 1/2 the speed of the source clock.

    Return

      None.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrClockParams`: is a pointer to a structure containing clock parameters McBSP_ClockParams. This function sets up the transmitter clock. The following are valid values and ranges for the parameters of the McBSP_TxFsyncParams.

        - clockSRGSyncFSR - true to sync with signal on FSR pin, false to ignore signal on FSR pin. the pulse on FSR pin.

        - clockSRGDivider - Maximum valid value is 255.

        - clockSource - MCBSP_EXTERNAL_TX_CLOCK_SOURCE or MCBSP_INTERNAL_TX_CLOCK_SOURCE

        - clockTxSRGSource - MCBSP_SRG_TX_CLOCK_SOURCE_LSPCLK or MCBSP_SRG_TX_CLOCK_SOURCE_MCLKR_PIN

        - clockMCLKXPolarity - Output polarity on MCLKX pin.

          - MCBSP_TX_POLARITY_RISING_EDGE

          - MCBSP_TX_POLARITY_FALLING_EDGE

        - clockMCLKRPolarity - Input polarity on MCLKR pin (if SRG is sourced from MCLKR pin).

          - MCBSP_RX_POLARITY_FALLING_EDGE

          - MCBSP_RX_POLARITY_RISING_EDGE

  void `McBSP_configureRxClock`(uint32_t base, const McBSP_ClockParams *ptrClockParams)

    Configures receiver clock

    Note

      Make sure the clock divider is such that, the McBSP clock is not running faster than 1/2 the speed of the source clock.

    Return

      None.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrClockParams`: is a pointer to a structure containing clock parameters McBSP_ClockParams. This function sets up the receiver clock. The following are valid values and ranges for the parameters of the McBSP_TxFsyncParams.

        - clockSRGSyncFlag - true to sync with signal on FSR pin, false to ignore the pulse on FSR pin.

        - clockSRGDivider - Maximum valid value is 255.

        - clockSource - MCBSP_EXTERNAL_RX_CLOCK_SOURCE or MCBSP_INTERNAL_RX_CLOCK_SOURCE

        - clockRxSRGSource - MCBSP_SRG_RX_CLOCK_SOURCE_LSPCLK or MCBSP_SRG_RX_CLOCK_SOURCE_MCLKX_PIN

        - clockMCLKRPolarity- output polarity on MCLKR pin.

          - MCBSP_RX_POLARITY_FALLING_EDGE or

          - MCBSP_RX_POLARITY_RISING_EDGE

        - clockMCLKXPolarity- Input polarity on MCLKX pin (if SRG is sourced from MCLKX pin).

          - MCBSP_TX_POLARITY_RISING_EDGE or

          - MCBSP_TX_POLARITY_FALLING_EDGE

  void `McBSP_configureTxFrameSync`(uint32_t base, const McBSP_TxFsyncParams *ptrFsyncParams)

    Configures transmitter frame sync.

    Return

      None.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrFsyncParams`: is a pointer to a structure containing frame sync parameters McBSPTxFsyncParams. This function sets up the transmitter frame sync. The following are valid values and ranges for the parameters of the McBSPTxFsyncParams.

        - syncSRGSyncFSRFlag - true to sync with signal on FSR pin, false to ignore the pulse on FSR pin.This value has to be similar to the value of McBSP_ClockParams.clockSRGSyncFlag.

        - syncErrorDetect - true to enable frame sync error detect. false to disable.

        - syncClockDivider - Maximum valid value is 4095.

        - syncPulseDivider - Maximum valid value is 255.

        - syncSourceTx - MCBSP_TX_INTERNAL_FRAME_SYNC_SOURCE or MCBSP_TX_EXTERNAL_FRAME_SYNC_SOURCE

        - syncIntSource - MCBSP_TX_INTERNAL_FRAME_SYNC_DATA or MCBSP_TX_INTERNAL_FRAME_SYNC_SRG

        - syncFSXPolarity - MCBSP_TX_FRAME_SYNC_POLARITY_LOW or MCBSP_TX_FRAME_SYNC_POLARITY_HIGH.

  void `McBSP_configureRxFrameSync`(uint32_t base, const McBSP_RxFsyncParams *ptrFsyncParams)

    Configures receiver frame sync.

    Return

      None.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrFsyncParams`: is a pointer to a structure containing frame sync parameters McBSP_RxFsyncParams. This function sets up the receiver frame sync. The following are valid values and ranges for the parameters of the McBSPTxFsyncParams.

        - syncSRGSyncFSRFlag - true to sync with signal on FSR pin, false to ignore the pulse on FSR pin. This value has to be similar to the value of McBSP_ClockParams.clockSRGSyncFlag.

        - syncErrorDetect - true to enable frame sync error detect. false to disable.

        - syncClockDivider - Maximum valid value is 4095.

        - syncPulseDivider - Maximum valid value is 255.

        - syncSourceRx - MCBSP_RX_INTERNAL_FRAME_SYNC_SOURCE or MCBSP_RX_EXTERNAL_FRAME_SYNC_SOURCE

        - syncFSRPolarity - MCBSP_RX_FRAME_SYNC_POLARITY_LOW or MCBSP_RX_FRAME_SYNC_POLARITY_HIGH

  void `McBSP_configureTxDataFormat`(uint32_t base, const McBSP_TxDataParams *ptrDataParams)

    Configures transmitter data format.

    Return

      None.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrDataParams`: is a pointer to a structure containing data format parameters McBSPTxDataParams. This function sets up the transmitter data format and properties. The following are valid values and ranges for the parameters of the McBSPTxDataParams.

        - loopbackModeFlag - true for digital loop-back mode. false for no loop-back mode.

        - twoPhaseModeFlag - true for two phase mode. false for single phase mode.

        - pinDelayEnableFlag - true to enable DX pin delay. false to disable DX pin delay.

        - phase1FrameLength - maximum value of 127.

        - phase2FrameLength - maximum value of 127.

        - clockStopMode - MCBSP_CLOCK_SPI_MODE_NO_DELAY or MCBSP_CLOCK_SPI_MODE_DELAY

        - phase1WordLength - MCBSP_BITS_PER_WORD_x , x = 8,12,16,20,24,32

        - phase2WordLength - MCBSP_BITS_PER_WORD_x , x = 8,12,16,20,24,32

        - compandingMode - MCBSP_COMPANDING_NONE, MCBSP_COMPANDING_NONE_LSB_FIRST MCBSP_COMPANDING_U_LAW_SET or MCBSP_COMPANDING_A_LAW_SET.

        - dataDelayBits - MCBSP_DATA_DELAY_BIT_0, MCBSP_DATA_DELAY_BIT_1 or MCBSP_DATA_DELAY_BIT_2

        - interruptMode - MCBSP_TX_ISR_SOURCE_TX_READY, MCBSP_TX_ISR_SOURCE_END_OF_BLOCK, MCBSP_TX_ISR_SOURCE_FRAME_SYNC or MCBSP_TX_ISR_SOURCE_SYNC_ERROR

          Note - When using companding,phase1WordLength and phase2WordLength must be 8 bits wide.

  void `McBSP_configureRxDataFormat`(uint32_t base, const McBSP_RxDataParams *ptrDataParams)

    Configures receiver data format.

    Return

      None.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrDataParams`: is a pointer to a structure containing data format parameters McBSP_RxDataParams. This function sets up the transmitter data format and properties. The following are valid values and ranges for the parameters of the McBSP_RxDataParams.

        - loopbackModeFlag - true for digital loop-back mode. false for non loop-back mode.

        - twoPhaseModeFlag - true for two phase mode. false for single phase mode.

        - phase1FrameLength - maximum value of 127.

        - phase2FrameLength - maximum value of 127.

        - phase1WordLength - MCBSP_BITS_PER_WORD_x , x = 8,12,16,20,24,32

        - phase2WordLength - MCBSP_BITS_PER_WORD_x , x = 8,12,16,20,24,32

        - compandingMode - MCBSP_COMPANDING_NONE, MCBSP_COMPANDING_NONE_LSB_FIRST MCBSP_COMPANDING_U_LAW_SET or MCBSP_COMPANDING_A_LAW_SET.

        - dataDelayBits - MCBSP_DATA_DELAY_BIT_0, MCBSP_DATA_DELAY_BIT_1 or MCBSP_DATA_DELAY_BIT_2

        - signExtMode - MCBSP_RIGHT_JUSTIFY_FILL_ZERO, MCBSP_RIGHT_JUSTIFY_FILL_SIGN or MCBSP_LEFT_JUSTIFY_FILL_ZER0

        - interruptMode - MCBSP_RX_ISR_SOURCE_SERIAL_WORD, MCBSP_RX_ISR_SOURCE_END_OF_BLOCK, MCBSP_RX_ISR_SOURCE_FRAME_SYNC or MCBSP_RX_ISR_SOURCE_SYNC_ERROR

          Note - When using companding,phase1WordLength and phase2WordLength must be 8 bits wide.

  uint16_t `McBSP_configureTxMultichannel`(uint32_t base, const McBSP_TxMultichannelParams *ptrMchnParams)

    Configures transmitter multichannel.

    This function sets up the transmitter multichannel mode. The following are valid values and ranges for the parameters of the

    McBSP_TxMultichannelParams.

    - channelCount - Maximum value of 128 for partition 8 Maximum value of 32 for partition 2

    - ptrChannelsList - Pointer to an array of size channelCount that has unique channels.

    - multichannelMode - MCBSP_ALL_TX_CHANNELS_ENABLED, MCBSP_TX_CHANNEL_SELECTION_ENABLED, MCBSP_ENABLE_MASKED_TX_CHANNEL_SELECTION or MCBSP_SYMMERTIC_RX_TX_SELECTION

    - partition - MCBSP_MULTICHANNEL_TWO_PARTITION or MCBSP_MULTICHANNEL_EIGHT_PARTITION

      Note

        - In 2 partition mode only channels that belong to a single even or odd block number should be listed. It is valid to have an even and odd channels. For example you can have channels [48 -63] and channels [96 - 111] enables as one belongs to an even block and the other to an odd block or two partitions. But not channels [48 - 63] and channels [112 - 127] since they both are even blocks or similar partitions.

      Return

        returns the following error codes.

        - MCBSP_ERROR_EXCEEDED_CHANNELS - number of channels exceeds 128

        - MCBSP_ERROR_2_PARTITION_A - invalid channel combination for partition A

        - MCBSP_ERROR_2_PARTITION_B - invalid channel combination for partition B

        - MCBSP_ERROR_INVALID_MODE - invalid transmitter channel mode.

      Return

        Returns the following error codes.

    - MCBSP_ERROR_EXCEEDED_CHANNELS - Exceeded number of channels.

    - MCBSP_ERROR_2_PARTITION_A - Error in 2 partition A setup.

    - MCBSP_ERROR_2_PARTITION_B - Error in 2 partition B setup.

    - MCBSP_ERROR_INVALID_MODE - Invalid mode.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrMchnParams`: is a pointer to a structure containing multichannel parameters McBSP_TxMultichannelParams.

  uint16_t `McBSP_configureRxMultichannel`(uint32_t base, const McBSP_RxMultichannelParams *ptrMchnParams)

    Configures receiver multichannel.

    This function sets up the receiver multichannel mode. The following are valid values and ranges for the parameters of the McBSPMultichannelParams.

    - channelCount - Maximum value of 128 for partition 8 Maximum value of 32 for partition 2

    - ptrChannelsList - Pointer to an array of size channelCount that has unique channels.

    - multichannelMode - MCBSP_ALL_RX_CHANNELS_ENABLED, MCBSP_RX_CHANNEL_SELECTION_ENABLED,

    - partition - MCBSP_MULTICHANNEL_TWO_PARTITION or MCBSP_MULTICHANNEL_EIGHT_PARTITION

      Note

        - In 2 partition mode only channels that belong to a single even or odd block number should be listed. It is valid to have an even and odd channels. For example you can have channels [48 - 63] and channels [96 - 111] enables as one belongs to an even block and the other to an odd block or two partitions. But not channels [48 - 63]and channels [112 - 127] since they both are even blocks or similar partitions.

      Return

        returns the following error codes.

        - MCBSP_ERROR_EXCEEDED_CHANNELS - number of channels exceeds 128

        - MCBSP_ERROR_2_PARTITION_A - invalid channel combination for partition A

        - MCBSP_ERROR_2_PARTITION_B - invalid channel combination for partition B

        - MCBSP_ERROR_INVALID_MODE - invalid transmitter channel mode.

      Return

        Returns the following error codes.

    - MCBSP_ERROR_EXCEEDED_CHANNELS - Exceeded number of channels.

    - MCBSP_ERROR_2_PARTITION_A - Error in 2 partition A setup.

    - MCBSP_ERROR_2_PARTITION_B - Error in 2 partition B setup.

    - MCBSP_ERROR_INVALID_MODE - Invalid mode.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrMchnParams`: is a pointer to a structure containing multichannel parameters McBSP_RxMultiChannelParams.

  void `McBSP_configureSPIMasterMode`(uint32_t base, const McBSP_SPIMasterModeParams *ptrSPIMasterMode)

    Configures McBSP in SPI master mode

    Note

      Make sure the clock divider is such that, the McBSP clock is not running faster than 1/2 the speed of the source clock.

    Return

      None.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrSPIMasterMode`: is a pointer to a structure containing SPI parameters McBSP_SPIMasterModeParams. This function sets up the McBSP module in SPI master mode.The following are valid values and ranges for the parameters of the McBSP_SPIMasterModeParams.

        - loopbackModeFlag - true for digital loop-back false for no loop-back

        - clockStopMode - MCBSP_CLOCK_SPI_MODE_NO_DELAY or MCBSP_CLOCK_SPI_MODE_DELAY

        - wordLength - MCBSP_BITS_PER_WORD_x , x = 8,12,16,20,24,32

        - spiMode It represents the clock polarity can take values:

          - MCBSP_TX_POLARITY_RISING_EDGE or MCBSP_TX_POLARITY_FALLING_EDGE

        - clockSRGDivider - Maximum valid value is 255.

  void `McBSP_configureSPISlaveMode`(uint32_t base, const McBSP_SPISlaveModeParams *ptrSPISlaveMode)

    Configures McBSP in SPI slave mode

    Return

      None.

    Parameters

      - `base`: is the base address of the McBSP module.

      - `ptrSPISlaveMode`: is a pointer to a structure containing SPI parameters McBSP_SPISlaveModeParams. This function sets up the McBSP module in SPI slave mode.The following are valid values and ranges for the parameters of the McBSP_SPISlaveModeParams.

        - loopbackModeFlag - true for digital loop-back false for no loop-back

        - clockStopMode - MCBSP_CLOCK_SPI_MODE_NO_DELAY or MCBSP_CLOCK_SPI_MODE_DELAY

        - wordLength - MCBSP_BITS_PER_WORD_x , x = 8,12,16,20,24,32

        - spiMode It represents the clock polarity and can take values:

          - MCBSP_RX_POLARITY_FALLING_EDGE or MCBSP_RX_POLARITY_RISING_EDGE

  struct `McBSP_ClockParams`
    #include <mcbsp.h>

    Values that can be passed to McBSP_configureRxClock() and McBSP_configureTxClock() as the clock parameters.

  struct `McBSP_TxFsyncParams`
    #include <mcbsp.h>

    Values that can be passed to McBSP_configureTxFrameSync() as the Transmitter frameSync parameters.

  struct `McBSP_RxFsyncParams`
    #include <mcbsp.h>

    Values that can be passed to McBSP_configureTxDataFormat() as the Receiver frameSync parameters.

  struct `McBSP_TxDataParams`
    #include <mcbsp.h>

    Values that can be passed to McBSP_configureRxDataFormat() as the Transmitter data parameters.

  struct `McBSP_RxDataParams`
    #include <mcbsp.h>

    Values that can be passed to McBSP_configureRxDataFormat() as the Receiver data parameters.

  struct `McBSP_RxMultichannelParams`
    #include <mcbsp.h>

    Values that can be passed to McBSP_configureRxMultichannel() as the Receiver multichannel parameters.

  struct `McBSP_TxMultichannelParams`
    #include <mcbsp.h>

    Values that can be passed to McBSP_configureTxMultichannel() as the Transmitter multichannel parameters.

  struct `McBSP_SPIMasterModeParams`
    #include <mcbsp.h>

    Values that can be passed to McBSP_configureSPIMasterMode() as the SPIMasterMode parameters.

  struct `McBSP_SPISlaveModeParams`
    #include <mcbsp.h>

    Values that can be passed to McBSP_configureSPISlaveMode() as the SPISlaveMode parameters.

Before initializing the McBSP module, the user should first put the module transmitter, receiver, sample rate generator & frame sync logic into the reset state.

Next McBSP module should be initialised as per application requirement to set properties like Tx/Rx/sample rate generator/frame sync logic clock source, data delay, tx/rx data format, enable/disable loopback, clock stop mode. McBSP can be configured either in normal McBSP mode or in SPI mode.

After initializing the modules, delay equivalent to 2 SRG cycles must be given before enabling the modules. Nest the sample rate generator must be enabled and after that delay equivalent to 2 CLKG cycles must be given. Next Tx/Rx/frame-sync module must be enabled to complete the configuration.

To transmit data, there are a few options. McBSP_transmit16BitDataNonBlocking, McBSP_transmit32BitDataNonBlocking() will simply write the specified 16/32-bit data to transmit buffer and return. It is left up to the user to check beforehand that the module is ready for a new piece of data to be written to the buffer. The other option is to use one of the two functions McBSP_transmit16BitDataBlocking() & McBSP_transmit32BitDataBlocking() that will wait in a while-loop for the module to be ready.

When receiving data, again, there are a few options. McBSP_receive16BitDataNonBlocking() & McBSP_receive32BitDataNonBlocking() will immediately return the contents of the receive buffer.The user should check that there is in fact data ready by checking the Rx-ready flag. McBSP_receive16BitDataBlocking() and McBSP_receive32BitDataBlocking(),however, will wait in a while-loop for data to become available.

The code for this module is contained in driverlib/mcbsp.c, with driverlib/mcbsp.h containing the API declarations for use by applications.