UPP Module¶
The universal parallel port (UPP) API provides a set of functions to configure device’s UPP module. The driver provides functions to initialize the module, obtain status information and to manage interrupts. Both transmitter and receiver modes are supported.
-
group
upp_api
Defines
-
UPP_DMA_TX_MSGRAM_STARTADDR
UPP_TX_MSG_RAM_BASE¶
-
UPP_DMA_RX_MSGRAM_STARTADDR
0x00007000U¶
-
UPP_CPU_TX_MSGRAM_STARTADDR
UPP_TX_MSG_RAM_BASE¶
-
UPP_CPU_RX_MSGRAM_STARTADDR
UPP_RX_MSG_RAM_BASE¶
-
UPP_TX_MSGRAM_MAX_SIZE
0x200U¶
-
UPP_RX_MSGRAM_MAX_SIZE
0x200U¶
-
UPP_32_CYCLE_NOP
__asm(" RPT #31 || NOP")¶
-
UPP_SOFT_FREE_M
((uint16_t)UPP_PERCTL_SOFT| \
(uint16_t)
UPP_PERCTL_FREE)¶
-
UPP_TX_SIGNAL_MODE_M
UPP_IFCFG_WAITA¶
-
UPP_RX_SIGNAL_MODE_M
((uint16_t)UPP_IFCFG_STARTA| \
(uint16_t)
UPP_IFCFG_ENAA)¶
-
UPP_SIGNAL_POLARITY_M
((uint16_t)UPP_IFCFG_WAITPOLA| \
(uint16_t)
UPP_IFCFG_ENAPOLA| \
(uint16_t)
UPP_IFCFG_STARTPOLA)¶
-
UPP_INT_M
((uint16_t)UPP_ENINTST_DPEI | (uint16_t)UPP_ENINTST_UOEI| \
(uint16_t)
UPP_ENINTST_EOWI | (uint16_t)UPP_ENINTST_EOLI| \
(uint16_t)
UPP_ENINTST_DPEQ | (uint16_t)UPP_ENINTST_UOEQ| \
(uint16_t)
UPP_ENINTST_EOWQ | (uint16_t)UPP_ENINTST_EOLQ)¶
-
UPP_INT_CHI_DMA_PROG_ERR
0x0001U¶ DMA Channel I Programming Error.
-
UPP_INT_CHI_UNDER_OVER_RUN
0x0002U¶ DMA Channel I Underrun/Overrun.
-
UPP_INT_CHI_END_OF_WINDOW
0x0008U¶ DMA Channel I EndOfWindow Event.
-
UPP_INT_CHI_END_OF_LINE
0x0010U¶ DMA Channel I EndOfLine Event.
-
UPP_INT_CHQ_DMA_PROG_ERR
0x0100U¶ DMA Channel Q Programming Error.
-
UPP_INT_CHQ_UNDER_OVER_RUN
0x0200U¶ DMA Channel Q Underrun/Overrun.
-
UPP_INT_CHQ_END_OF_WINDOW
0x0800U¶ DMA Channel Q EndOfWindow Event.
-
UPP_INT_CHQ_END_OF_LINE
0x1000U¶ DMA Channel Q EndOfLine Event.
Enums
-
enum
UPP_EmulationMode
¶ Values that can be passed to UPP_setEmulationMode() as emuMode parameter.
Values:
-
enumerator
UPP_EMULATIONMODE_HARDSTOP
= 0x0U¶ uPP stops immediately
-
enumerator
UPP_EMULATIONMODE_RUNFREE
= 0x1U¶ uPP unaffected by suspend
-
enumerator
UPP_EMULATIONMODE_SOFTSTOP
= 0x2U¶ uPP stops at DMA transaction finish
-
enumerator
-
enum
UPP_OperationMode
¶ Values that can be passed to UPP_setOperationMode() as opMode parameter.
Values:
-
enumerator
UPP_RECEIVE_MODE
= 0x0U¶ uPP to be configured as Receiver
-
enumerator
UPP_TRANSMIT_MODE
= 0x1U¶ uPP to be configured as Transmitter
-
enumerator
-
enum
UPP_DataRate
¶ Values that can be passed to UPP_setDataRate() as dataRate parameter.
Values:
-
enumerator
UPP_DATA_RATE_SDR
= 0x00000U¶ uPP to operate in Single Data Rate Mode
-
enumerator
UPP_DATA_RATE_DDR
= 0x10000U¶ uPP to operate in Double Data Rate Mode
-
enumerator
-
enum
UPP_TxSDRInterleaveMode
¶ Values that can be passed to UPP_setTxSDRInterleaveMode() as mode parameter.
Values:
-
enumerator
UPP_TX_SDR_INTERLEAVE_DISABLE
= 0x0U¶ Interleaving disabled in Tx SDR.
-
enumerator
UPP_TX_SDR_INTERLEAVE_ENABLE
= 0x8U¶ Interleaving enabled in Tx SDR.
-
enumerator
-
enum
UPP_DDRDemuxMode
¶ Values that can be passed to UPP_setDDRDemuxMode() as mode parameter.
Values:
-
enumerator
UPP_DDR_DEMUX_DISABLE
= 0x00U¶ Demultiplexing disabled in DDR mode.
-
enumerator
UPP_DDR_DEMUX_ENABLE
= 0x10U¶ Demultiplexing enabled in DDR mode.
-
enumerator
-
enum
UPP_SignalPolarity
¶ Values that can be passed to UPP_setControlSignalPolarity() as waitPola, enablePola & startPola parameters.
Values:
-
enumerator
UPP_SIGNAL_POLARITY_HIGH
= 0x0U¶ Signal polarity is active high.
-
enumerator
UPP_SIGNAL_POLARITY_LOW
= 0x1U¶ Signal polarity is active low.
-
enumerator
-
enum
UPP_SignalMode
¶ Values that can be passed to UPP_setTxControlSignalMode() & UPP_setRxControlSignalMode() as waitMode & startMode, enableMode parameters respectively.
Values:
-
enumerator
UPP_SIGNAL_DISABLE
= 0x0U¶ Control Signal is disabled for uPP.
-
enumerator
UPP_SIGNAL_ENABLE
= 0x1U¶ Control Signal is enabled for uPP.
-
enumerator
-
enum
UPP_ClockPolarity
¶ Values that can be passed to UPP_setClockPolarity() as clkPolarity parameter.
Values:
-
enumerator
UPP_CLK_NOT_INVERTED
= 0x0000U¶ uPP Clock is not inverted
-
enumerator
UPP_CLK_INVERTED
= 0x1000U¶ uPP clock is inverted
-
enumerator
-
enum
UPP_TxIdleDataMode
¶ Values that can be passed to UPP_configTxIdleDataMode() as config parameter. It specifies whether the data lines will drive idle value or get tri-stated when uPP goes to idle state.
Values:
-
enumerator
UPP_TX_IDLE_DATA_IDLE
= 0x0000U¶ Data lines will drive idle val.
-
enumerator
UPP_TX_IDLE_DATA_TRISTATED
= 0x2000U¶ Data lines will be tristated.
-
enumerator
-
enum
UPP_DMAChannel
¶ Values that can be passed to UPP_setDMAReadThreshold(), UPP_getDMAChannelStatus(), UPP_setDMADescriptor(), UPP_isDescriptorPending(), UPP_isDescriptorActive() & UPP_getDMAFIFOWatermark() as channel parameter.
Values:
-
enumerator
UPP_DMA_CHANNEL_I
= 0U¶ uPP internal DMA channel I
-
enumerator
UPP_DMA_CHANNEL_Q
= 1U¶ uPP internal DMA channel Q
-
enumerator
-
enum
UPP_ThresholdSize
¶ Values that can be passed to UPP_setTxThreshold() and UPP_setDMAReadThreshold() as size parameter.
Values:
-
enumerator
UPP_THR_SIZE_64BYTE
= 0x0U¶ Tx threshold size is 64 bytes.
-
enumerator
UPP_THR_SIZE_128BYTE
= 0x1U¶ Tx threshold size is 128 bytes.
-
enumerator
UPP_THR_SIZE_256BYTE
= 0x3U¶ Tx threshold size is 256 bytes.
-
enumerator
-
enum
UPP_InputDelay
¶ Values that can be passed to UPP_setInputDelay() as delay parameter. All the following values lead to 2 cycle delay on clock pin.
Values:
-
enumerator
UPP_INPUT_DLY_4
= 0x0U¶ 4 cycle delay for data & control pins
-
enumerator
UPP_INPUT_DLY_6
= 0x2U¶ 6 cycle delay for data & control pins
-
enumerator
UPP_INPUT_DLY_9
= 0x4U¶ 9 cycle delay for data & control pins
-
enumerator
UPP_INPUT_DLY_14
= 0x6U¶ 14 cycle delay for data & control pins
-
enumerator
Functions
-
bool
UPP_isDMAActive
(uint32_t base)¶ Returns uPP internal DMA state machine status.
This function returns whether the uPP internal DMA state machine status is idle or burst transaction is active.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
Returns the DMA machine status. It can return following values:
true - DMA burst transaction is active
false - DMA is idle
-
void
UPP_performSoftReset
(uint32_t base)¶ Resets the uPP module.
This function initiates software reset in uPP.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
void
UPP_enableModule
(uint32_t base)¶ Enables the uPP module.
This function enables the uPP module.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
void
UPP_disableModule
(uint32_t base)¶ Disables the uPP module.
This function disables the uPP module.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
void
UPP_enableEmulationMode
(uint32_t base)¶ Enables real time emulation mode for uPP module.
This function enables real time emulation mode in uPP module.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
void
UPP_disableEmulationMode
(uint32_t base)¶ Disables real time emulation mode for uPP module.
This function disables real time emulation mode for uPP module.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
void
UPP_setEmulationMode
(uint32_t base, UPP_EmulationMode emuMode)¶ Sets the emulation mode for the uPP module.
This function sets the uPP module’s emulation mode. This mode determines how the uPP module is affected by an emulation suspend. Valid values for
emuMode parameter are the following:- Parameters
base
: is the configuration address of the uPP instance used.emuMode
: is the mode of operation upon an emulation suspend.
UPP_EMULATIONMODE_HARDSTOP - The uPP module stops immediately.
UPP_EMULATIONMODE_RUNFREE - The uPP module is unaffected by an emulation suspend.
UPP_EMULATIONMODE_SOFTSTOP - The uPP module stops after completing current DMA burst transaction.
- Return
None.
-
void
UPP_setOperationMode
(uint32_t base, UPP_OperationMode opMode)¶ Sets uPP mode of operation.
This function sets the uPP mode of opeartion. The
opMode parameter determines whether uPP module should be configured as transmitter or receiver. It should be passed any of the following values:UPP_RECEIVE_MODE - uPP is to be operated in Rx mode.
UPP_TRANSMIT_MODE - uPP is to be operated in Tx mode.
- Parameters
base
: is the configuration address of the uPP instance used.opMode
: is mode of operation for uPP module.
- Return
None.
-
void
UPP_setDataRate
(uint32_t base, UPP_DataRate dataRate)¶ Sets uPP data rate mode.
This function sets the data rate mode for uPP module as single data rate or double data rate mode. It should be passed any of the following values:
UPP_DATA_RATE_SDR - uPP is to be operated in single data rate mode.
UPP_DATA_RATE_DDR - uPP is to be operated in double data rate mode.
- Parameters
base
: is the configuration address of the uPP instance used.dataRate
: is the required uPP data rate mode.
- Return
None.
-
void
UPP_setTxSDRInterleaveMode
(uint32_t base, UPP_TxSDRInterleaveMode mode)¶ Sets Tx SDR interleave mode for uPP module.
This function sets the required interleave mode for SDR Tx uPP. It is valid only for Tx SDR mode & not for Rx SDR mode. The
mode parameter determines whether interleaving should be enabled or disabled for SDR Tx uPP mode. It should be passed any of the following values:UPP_TX_SDR_INTERLEAVE_DISABLE - specifies interleaving is disabled
UPP_TX_SDR_INTERLEAVE_ENABLE - specifies interleaving is enabled
- Parameters
base
: is the configuration address of the uPP instance used.mode
: is the required SDR interleave mode.
- Return
None.
-
void
UPP_setDDRDemuxMode
(uint32_t base, UPP_DDRDemuxMode mode)¶ Sets DDR de-multiplexing mode for uPP module.
This function sets the demultiplexing mode for uPP DDR mode. The
mode parameter determines whether demuliplexing to enabled or disabled in DDR mode. It should take following values:UPP_DDR_DEMUX_DISABLE - specifies demultiplexing is disabled
UPP_DDR_DEMUX_ENABLE - specifies demultiplexing is enabled
- Parameters
base
: is the configuration address of the uPP instance used.mode
: is the required DDR de-multiplexing mode.
- Return
None.
-
void
UPP_setControlSignalPolarity
(uint32_t base, UPP_SignalPolarity waitPola, UPP_SignalPolarity enablePola, UPP_SignalPolarity startPola)¶ Sets control signal polarity for uPP module.
This function sets the control signal polarity for uPP module. The
waitPola, enablePola, startPola parameters determines the control signal polarities. Valid values for these parameters are the following:UPP_SIGNAL_POLARITY_HIGH - Signal polarity to be set as active high.
UPP_SIGNAL_POLARITY_LOW - Signal polarity to be set as active low.
- Parameters
base
: is the configuration address of the uPP instance used.waitPola
: is the required wait signal polarity.enablePola
: is the required enable signal polarity.startPola
: is the required start signal polarity.
- Return
None.
-
void
UPP_setTxControlSignalMode
(uint32_t base, UPP_SignalMode waitMode)¶ Sets the mode for optional control signals for uPP module in Tx mode.
This function sets the mode for optional control signals in Tx mode for uPP module. The
waitMode parameter determine whether the wait signal is to be enabled or disabled while uPP is in transmit mode. It can take following values:UPP_SIGNAL_DISABLE - Wait signal will be disabled.
UPP_SIGNAL_ENABLE - Wait signal will be enabled.
- Parameters
base
: is the configuration address of the uPP instance used.waitMode
: is the required mode for wait signal.
- Return
None.
-
void
UPP_setRxControlSignalMode
(uint32_t base, UPP_SignalMode enableMode, UPP_SignalMode startMode)¶ Sets the mode for optional control signals for uPP module in Rx mode.
This function sets the mode for optional control signal mode in Rx mode for uPP module.The
enableMode & startMode parameter determine whether the enable & start signals are to be enabled or disabled while uPP is in receive mode. These can take following values:UPP_SIGNAL_DISABLE - Signal will be disabled.
UPP_SIGNAL_ENABLE - Signal will be enabled.
- Parameters
base
: is the configuration address of the uPP instance used.enableMode
: is the required mode for enable signal.startMode
: is the required mode for start signal.
- Return
None.
-
void
UPP_setTxClockDivider
(uint32_t base, uint16_t divider)¶ Sets the clock divider when uPP is in Tx mode.
This function configures the clock rate of uPP when it is operating in Tx mode. The
divider parameter is the value by which SYSCLK rate is divided to get the desired uPP Tx clock rate.- Parameters
base
: is the configuration address of the uPP instance used.divider
: is the value by which PLLSYSCLK (or CPU1.SYSCLK on a dual core device) is divided.
- Return
None.
-
void
UPP_setClockPolarity
(uint32_t base, UPP_ClockPolarity clkPolarity)¶ Sets the uPP clock polarity.
This function sets the uPP clock polarity. The
clkPolarity parameter in Tx mode determines whether output Tx clock is to be inverted or not, while in Rx mode it determines whether the Rx input clock is to be treated as inverted or not.- Parameters
base
: is the configuration address of the uPP instance used.clkPolarity
: is the required clock polarity.
- Return
None.
-
void
UPP_configTxIdleDataMode
(uint32_t base, UPP_TxIdleDataMode config)¶ Configures data line behaviour when uPP goes to idle state in Tx mode.
This function configures the Tx mode data line behaviour in uPP. The
config determines whether tri-state is enabled or disabled for uPP idlle time. It can take following values:UPP_TX_IDLE_DATA_IDLE - uPP will drive idle values to data lines when it goes to idle mode while operating in Tx mode.
UPP_TX_IDLE_DATA_TRISTATED - uPP will tri-state data lines when it goes to idle mode while operating in Tx mode.
- Parameters
base
: is the configuration address of the uPP instance used.config
: is the required idle mode data line behaviour.
- Return
None.
-
void
UPP_setTxIdleValue
(uint32_t base, uint16_t idleVal)¶ Sets idle value to be driven by data line when uPP goes to idle state when operating in Tx mode.
This function sets idle value to be driven in idle state while uPP is operating in Tx mode. The parameter
idleVal is the value to be driven when Tx uPP is in idle state.- Parameters
base
: is the configuration address of the uPP instance used.idleVal
: is the required idle value to be driven in Tx idle state.
- Return
None.
-
void
UPP_setTxThreshold
(uint32_t base, UPP_ThresholdSize size)¶ Sets the I/O transmit threshold.
This function sets the i/o transmit threshold. The
size parameter determines the required size for the threshold to reach in transmit buffer before the tranmission begins. It can take following values:UPP_THR_SIZE_64BYTE - Sets the Tx threshold to 64 bytes.
UPP_THR_SIZE_128BYTE - Sets the Tx threshold to 128 bytes.
UPP_THR_SIZE_256BYTE - Sets the Tx threshold to 256 bytes.
- Parameters
base
: is the configuration address of the uPP instance used.size
: is the required Tx threshold size in bytes.
- Return
None.
-
void
UPP_enableInterrupt
(uint32_t base, uint16_t intFlags)¶ Enables individual uPP module interrupts.
This function enables uPP module interrupt sources. The
intFlags parameter can be any of the following values OR’d together:UPP_INT_CHI_DMA_PROG_ERR - DMA Channel I Programming Error
UPP_INT_CHI_UNDER_OVER_RUN - DMA Channel I Underrun/Overrun
UPP_INT_CHI_END_OF_WINDOW - DMA Channel I End of Window Event
UPP_INT_CHI_END_OF_LINE - DMA Channel I End of Line Event
UPP_INT_CHQ_DMA_PROG_ERR - DMA Channel Q Programming Error
UPP_INT_CHQ_UNDER_OVER_RUN - DMA Channel Q Underrun/Overrun
UPP_INT_CHQ_END_OF_WINDOW - DMA Channel Q End of Window Event
UPP_INT_CHQ_END_OF_LINE - DMA Channel Q End of Line Event
- Parameters
base
: is the configuration address of the uPP instance used.intFlags
: is a bit mask of the interrupt sources to be enabled.
- Return
None.
-
void
UPP_disableInterrupt
(uint32_t base, uint16_t intFlags)¶ Disables individual uPP module interrupts.
This function disables uPP module interrupt sources. The
intFlags parameter can be any of the following values OR’d together:UPP_INT_CHI_DMA_PROG_ERR - DMA Channel I Programming Error
UPP_INT_CHI_UNDER_OVER_RUN - DMA Channel I Underrun/Overrun
UPP_INT_CHI_END_OF_WINDOW - DMA Channel I End of Window Event
UPP_INT_CHI_END_OF_LINE - DMA Channel I End of Line Event
UPP_INT_CHQ_DMA_PROG_ERR - DMA Channel Q Programming Error
UPP_INT_CHQ_UNDER_OVER_RUN - DMA Channel Q Underrun/Overrun
UPP_INT_CHQ_END_OF_WINDOW - DMA Channel Q End of Window Event
UPP_INT_CHQ_END_OF_LINE - DMA Channel Q End of Line Event
- Parameters
base
: is the configuration address of the uPP instance used.intFlags
: is a bit mask of the interrupt sources to be disabled.
- Return
None.
-
uint16_t
UPP_getInterruptStatus
(uint32_t base)¶ Gets the current uPP interrupt status for enabled interrupts.
This function returns the interrupt status of enabled interrupts for the uPP module.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
Returns current interrupt status for enabled interrupts, enumerated as a bit field of any of the following values:
UPP_INT_CHI_DMA_PROG_ERR - DMA Channel I Programming Error
UPP_INT_CHI_UNDER_OVER_RUN - DMA Channel I Underrun/Overrun
UPP_INT_CHI_END_OF_WINDOW - DMA Channel I End of Window Event
UPP_INT_CHI_END_OF_LINE - DMA Channel I End of Line Event
UPP_INT_CHQ_DMA_PROG_ERR - DMA Channel Q Programming Error
UPP_INT_CHQ_UNDER_OVER_RUN - DMA Channel Q Underrun/Overrun
UPP_INT_CHQ_END_OF_WINDOW - DMA Channel Q End of Window Event
UPP_INT_CHQ_END_OF_LINE - DMA Channel Q End of Line Event
-
uint16_t
UPP_getRawInterruptStatus
(uint32_t base)¶ Gets the current uPP interrupt status for all the interrupts.
This function returns the interrupt status of all the interrupts for the uPP module.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
Returns current interrupt status for all the interrupts, enumerated as a bit field of any of the following values:
UPP_INT_CHI_DMA_PROG_ERR - DMA Channel I Programming Error
UPP_INT_CHI_UNDER_OVER_RUN - DMA Channel I Underrun/Overrun
UPP_INT_CHI_END_OF_WINDOW - DMA Channel I End of Window Event
UPP_INT_CHI_END_OF_LINE - DMA Channel I End of Line Event
UPP_INT_CHQ_DMA_PROG_ERR - DMA Channel Q Programming Error
UPP_INT_CHQ_UNDER_OVER_RUN - DMA Channel Q Underrun/Overrun
UPP_INT_CHQ_END_OF_WINDOW - DMA Channel Q End of Window Event
UPP_INT_CHQ_END_OF_LINE - DMA Channel Q End of Line Event
-
void
UPP_clearInterruptStatus
(uint32_t base, uint16_t intFlags)¶ Clears individual uPP module interrupts.
This function clears uPP module interrupt flags. The
intFlags parameter can be any of the following values OR’d together:UPP_INT_CHI_DMA_PROG_ERR - DMA Channel I Programming Error
UPP_INT_CHI_UNDER_OVER_RUN - DMA Channel I Underrun/Overrun
UPP_INT_CHI_END_OF_WINDOW - DMA Channel I End of Window Event
UPP_INT_CHI_END_OF_LINE - DMA Channel I End of Line Event
UPP_INT_CHQ_DMA_PROG_ERR - DMA Channel Q Programming Error
UPP_INT_CHQ_UNDER_OVER_RUN - DMA Channel Q Underrun/Overrun
UPP_INT_CHQ_END_OF_WINDOW - DMA Channel Q End of Window Event
UPP_INT_CHQ_END_OF_LINE - DMA Channel Q End of Line Event
- Parameters
base
: is the configuration address of the uPP instance used.intFlags
: is a bit mask of the interrupt sources to be cleared.
- Return
None.
-
void
UPP_enableGlobalInterrupt
(uint32_t base)¶ Enables uPP global interrupt.
This function enables the global interrupt for uPP module which allows uPP to generate interrupts.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
void
UPP_disableGlobalInterrupt
(uint32_t base)¶ Disables uPP global interrupt.
This function disables global interrupt for uPP module which restricts uPP to generate any interrupts.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
bool
UPP_isInterruptGenerated
(uint32_t base)¶ Get uPP global interrupt status.
This function returns whether any of the uPP interrupt is generated.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
Returns global interrupt status. It can return following values:
true - Interrupt has been generated.
false - No interrupt has been generated.
-
void
UPP_clearGlobalInterruptStatus
(uint32_t base)¶ Clears uPP global interrupt status.
This function clears global interrupt status for uPP module.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
void
UPP_enableInputDelay
(uint32_t base)¶ Enables extra delay on uPP input pins.
This function enables configurable extra delay on uPP input pins.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
void
UPP_disableInputDelay
(uint32_t base)¶ Disables extra delay on uPP input pins.
This function disables extra delay on uPP input pins.
- Parameters
base
: is the configuration address of the uPP instance used.
- Return
None.
-
void
UPP_setInputDelay
(uint32_t base, UPP_InputDelay delay)¶ Configures delay for uPP input pins.
This function sets input delay for uPP input pins. The
delay parameter specifies the delay to be introduced to input & clock pins. It can take following values. All the following values lead to 2 cycle delay on clock pin.UPP_INPUT_DLY_4 - 4 cycle delay for data & control pins
UPP_INPUT_DLY_6 - 6 cycle delay for data & control pins
UPP_INPUT_DLY_9 - 9 cycle delay for data & control pins
UPP_INPUT_DLY_14 - 14 cycle delay for data & control pins
- Parameters
base
: is the configuration address of the uPP instance used.delay
: is the delay to be introduced in input & clock pins.
- Return
None.
-
void
UPP_setDMAReadThreshold
(uint32_t base, UPP_DMAChannel channel, UPP_ThresholdSize size)¶ Sets the read threshold for uPP internal DMA channels.
This function sets the read threshold for DMA channel I or Q. The
size parameter specifies the read threshold in bytes. It can following values:UPP_THR_SIZE_64BYTE - Sets the DMA read threshold to 64 bytes.
UPP_THR_SIZE_128BYTE - Sets the DMA read threshold to 128 bytes.
UPP_THR_SIZE_256BYTE - Sets the DMA read threshold to 256 bytes.
- Parameters
base
: is the configuration address of the uPP instance used.channel
: is the required uPP internal DMA channel to be configured.size
: is the required read threshold size in bytes.
- Return
None.
-
void
UPP_setDMADescriptor
(uint32_t base, UPP_DMAChannel channel, const UPP_DMADescriptor *const desc)¶ Sets uPP Internal DMA Channel Descriptors.
This function configures DMA descriptors for either channel I or Q which includes starting address of DMA transfer, line count, byte count & line offset address for DMA transfer. In Tx mode, starting address is the address of data buffer to be transmitted while in Rx mode it is the address of buffer where recieved data is to be copied. The
channel parameter can take any of the following values:UPP_DMA_CHANNEL_I - uPP DMA channel I
UPP_DMA_CHANNEL_Q - uPP DMA channel Q
- Parameters
base
: is the configuration address of the uPP instance used.channel
: is the required uPP internal DMA channel to be configured.desc
: is the required DMA descriptor setting.
- Return
None.
-
void
UPP_getDMAChannelStatus
(uint32_t base, UPP_DMAChannel channel, UPP_DMAChannelStatus *const status)¶ Returns current status of uPP internal DMA channel transfer.
This function returns the current status for either channel I or Q active transfer which includes current DMA transfer address, current line & byte number of the transfer. The
channel parameter can take any of the following values:UPP_DMA_CHANNEL_I - uPP DMA channel I
UPP_DMA_CHANNEL_Q - uPP DMA channel Q
- Parameters
base
: is the configuration address of the uPP instance used.channel
: is the required uPP internal DMA channel.status
: is current status for DMA channel returned by the api.
- Return
None.
-
bool
UPP_isDescriptorPending
(uint32_t base, UPP_DMAChannel channel)¶ Returns Pend status of uPP internal DMA channel descriptor.
This function returns the Pend status for DMA channel I or Q descriptor which specifies whether previous descriptor is copied from shadow register to original register & new descriptor can be programmed or the previous descriptor is still pending & new descriptor cannot be programmed. The
channel parameter can take following values:UPP_DMA_CHANNEL_I - uPP DMA channel I
UPP_DMA_CHANNEL_Q - uPP DMA channel Q
- Parameters
base
: is the configuration address of the uPP instance used.channel
: is the required uPP internal DMA channel.
- Return
Returns pend status of DMA channel I descriptor. It can return following values:
true - specifies that writing of new DMA descriptor is not allowed.
false - specifies that writing of new DMA descriptor is allowed.
-
bool
UPP_isDescriptorActive
(uint32_t base, UPP_DMAChannel channel)¶ Returns active status of uPP Internal DMA Channel descriptor.
This function returns the active status of uPP internal DMA channel I or Q descriptor which specifies whether the descriptor is being currently active(transferring data) or idle. The
channel parameter can take following values:UPP_DMA_CHANNEL_I - uPP DMA channel I
UPP_DMA_CHANNEL_Q - uPP DMA channel Q
- Parameters
base
: is the configuration address of the uPP instance used.channel
: is the required uPP internal DMA channel to be configured.
- Return
Returns active status of uPP internal DMA channel descriptor. It can return following values:
true - specifies that desciptor is currently active.
false - specifies that desciptor is currently idle.
-
uint16_t
UPP_getDMAFIFOWatermark
(uint32_t base, UPP_DMAChannel channel)¶ Returns watermark for FIFO block count for uPP internal DMA Channel.
This function returns watermark for FIFO block count for uPP internal DMA Channel I or Q based on
channel parameter. The channel paramter can take following values:UPP_DMA_CHANNEL_I - uPP DMA channel I
UPP_DMA_CHANNEL_Q - uPP DMA channel Q
- Parameters
base
: is the configuration address of the uPP instance used.channel
: is the required uPP internal DMA channel.
- Return
Returns active status of DMA channel I descriptor. It can return following values:
true - specifies that desciptor is currently active.
false - specifies that desciptor is currently idle.
-
void
UPP_readRxMsgRAM
(uint32_t rxBase, uint16_t array[], uint16_t length, uint16_t offset)¶ Reads the received data from uPP Rx MSG RAM.
This function reads the received data from uPP Rx MSG RAM. The sum of parameters
length & offset should be less than the size of the Rx MSG RAM.- Parameters
rxBase
: is the uPP Rx MSG RAM base address.array
: is the address of the array of words to be transmitted.length
: is the number of words in the array to be transmitted.offset
: is offset in Rx Data RAM from where data read will start.
- Return
None.
-
void
UPP_writeTxMsgRAM
(uint32_t txBase, const uint16_t array[], uint16_t length, uint16_t offset)¶ Writes the data to be transmitted in uPP Tx MSG RAM.
This function writes the data to be transmitted to uPP Rx MSG RAM. The sum of parameters
length & offset should be less than the size of the Tx MSG RAM.- Parameters
txBase
: is the uPP Tx MSG RAM base address.array
: is the address of the array of words to be transmitted.length
: is the number of words in the array to be transmitted.offset
: is offset in Tx Data RAM from where data write will start.
- Return
None.
-
struct
UPP_DMADescriptor
¶ - #include <upp.h>
Values that can be passed to UPP_setDMADescriptor() as desc parameter.
-
struct
UPP_DMAChannelStatus
¶ - #include <upp.h>
Values that can be returned by UPP_getDMAChannelStatus() as uPP internal DMA channel current status.
-
The UPP API includes functions to enable/disable uPP module, perform software reset, configure uPP as Transmitter or Receiver, set data rate to SDR or DDR,set interleaving & demultiplexing configurations, set control signal polarities, enable/disable optional control signals, set Tx clock value & polarity, configure idle Tx dataline values, enable/disable, clear & get status for uPP interrupts.
The code for this module is contained in driverlib/upp.c, with driverlib/upp.h containing the API declarations for use by applications.