LIN Module¶
The local interconnect network (LIN) API provides a set of functions for configuring and using the LIN serial network protocol. Functions provided allow configuration of the LIN module operating modes and options, ability to send and receive data, and setup interrupt event handling.
-
group
lin_api
Defines
-
LIN_IO_DFT_KEY
(0xAU)¶ LIN IO DFT Key.
-
LIN_WAKEUP_KEY
(0xF0U)¶ LIN Wakeup Key.
-
LIN_ID0
(0x1U)¶ LIN Parity ID0 Mask.
-
LIN_ID1
(0x2U)¶ LIN Parity ID1 Mask.
-
LIN_ID2
(0x4U)¶ LIN Parity ID2 Mask.
-
LIN_ID3
(0x8U)¶ LIN Parity ID3 Mask.
-
LIN_ID4
(0x10U)¶ LIN Parity ID4 Mask.
-
LIN_ID5
(0x20U)¶ LIN Parity ID5 Mask.
-
LIN_INT_WAKEUP
(0x00000002U)¶ Wakeup.
-
LIN_INT_TO
(0x00000010U)¶ Time out.
-
LIN_INT_TOAWUS
(0x00000040U)¶ Time out after wakeup signal.
-
LIN_INT_TOA3WUS
(0x00000080U)¶ Time out after 3 wakeup signals.
-
LIN_INT_TX
(0x00000100U)¶ Transmit buffer ready.
-
LIN_INT_RX
(0x00000200U)¶ Receive buffer ready.
-
LIN_INT_ID
(0x00002000U)¶ Received matching identifier.
-
LIN_INT_PE
(0x01000000U)¶ Parity error.
-
LIN_INT_OE
(0x02000000U)¶ Overrun error.
-
LIN_INT_FE
(0x04000000U)¶ Framing error.
-
LIN_INT_NRE
(0x08000000U)¶ No response error.
-
LIN_INT_ISFE
(0x10000000U)¶ Inconsistent sync field error.
-
LIN_INT_CE
(0x20000000U)¶ Checksum error.
-
LIN_INT_PBE
(0x40000000U)¶ Physical bus error.
-
LIN_INT_BE
(0x80000000U)¶ Bit error.
-
LIN_INT_ALL
(0xFF0023D2U)¶ All interrupts.
-
LIN_FLAG_BREAK
(LIN_SCIFLR_BRKDT)¶ Break-Detect.
-
LIN_FLAG_WAKEUP
(LIN_SCIFLR_WAKEUP)¶ Wakeup.
-
LIN_FLAG_IDLE
(LIN_SCIFLR_IDLE)¶ Bus Idle.
-
LIN_FLAG_BUSY
(LIN_SCIFLR_BUSY)¶ Busy.
-
LIN_FLAG_TO
(LIN_SCIFLR_TIMEOUT)¶ Time out.
-
LIN_FLAG_TOAWUS
(LIN_SCIFLR_TOAWUS)¶ signal
Time out after wakeup
-
LIN_FLAG_TOA3WUS
(LIN_SCIFLR_TOA3WUS)¶ signals
Time out after 3 wakeup
-
LIN_FLAG_TXRDY
(LIN_SCIFLR_TXRDY)¶ Transmit Buffer ready.
-
LIN_FLAG_RXRDY
(LIN_SCIFLR_RXRDY)¶ Receive Buffer ready.
-
LIN_FLAG_TXWAKE
(LIN_SCIFLR_TXWAKE)¶ Method Select.
Transmitter Wakeup
-
LIN_FLAG_TXEMPTY
(LIN_SCIFLR_TXEMPTY)¶ Transmitter Empty.
-
LIN_FLAG_RXWAKE
(LIN_SCIFLR_RXWAKE)¶ Receiver Wakeup detect.
-
LIN_FLAG_TXID
(LIN_SCIFLR_IDTXFLAG)¶ ID on Transmit.
-
LIN_FLAG_RXID
(LIN_SCIFLR_IDRXFLAG)¶ ID on Receive.
-
LIN_FLAG_PE
(LIN_SCIFLR_PE)¶ Parity Error.
-
LIN_FLAG_OE
(LIN_SCIFLR_OE)¶ Overrun Error.
-
LIN_FLAG_FE
(LIN_SCIFLR_FE)¶ Framing Error.
-
LIN_FLAG_NRE
(LIN_SCIFLR_NRE)¶ No-Response Error.
-
LIN_FLAG_ISFE
(LIN_SCIFLR_ISFE)¶ Error.
Inconsistent Sync Field
-
LIN_FLAG_CE
(LIN_SCIFLR_CE)¶ Checksum Error.
-
LIN_FLAG_PBE
(LIN_SCIFLR_PBE)¶ Physical Bus Error.
-
LIN_FLAG_BE
(LIN_SCIFLR_BE)¶ Bit Error.
-
LIN_VECT_NONE
(0x00)¶ No Interrupt.
-
LIN_VECT_WAKEUP
(0x01)¶ Wakeup.
-
LIN_VECT_ISFE
(0x02)¶ Inconsistent-sync-field Error.
-
LIN_VECT_PE
(0x03)¶ Parity Error.
-
LIN_VECT_ID
(0x04)¶ ID Interrupt.
-
LIN_VECT_PBE
(0x05)¶ Physical Bus Error.
-
LIN_VECT_FE
(0x06)¶ Frame Error.
-
LIN_VECT_BREAK
(0x07)¶ Break detect.
-
LIN_VECT_CE
(0x08)¶ Checksum Error.
-
LIN_VECT_OE
(0x09)¶ Overrun Error.
-
LIN_VECT_BE
(0x0A)¶ Bit Error.
-
LIN_VECT_RX
(0x0B)¶ Receive Interrupt.
-
LIN_VECT_TX
(0x0C)¶ Transmit Interrupt.
-
LIN_VECT_NRE
(0x0D)¶ No-response Error.
-
LIN_VECT_TOAWUS
(0x0E)¶ Timeout after wakeup signal.
-
LIN_VECT_TOA3WUS
(0x0F)¶ Timeout after 3 wakeup signals.
-
LIN_VECT_TO
(0x10)¶ Timeout (Bus Idle)
-
LIN_ALL_ERRORS
(0xF0000000U)¶ All module errors.
-
LIN_BIT_ERROR
(0x80000000U)¶ Bit Error.
-
LIN_BUS_ERROR
(0x40000000U)¶ Physical Bus Error.
-
LIN_CHECKSUM_ERROR
(0x20000000U)¶ Checksum Error.
-
LIN_ISF_ERROR
(0x10000000U)¶ Inconsistent Synch Field Error.
-
LIN_SCI_ALL_ERRORS
(0x7000000U)¶ All module errors.
-
LIN_SCI_FRAME_ERROR
(0x4000000U)¶ Frame Error.
-
LIN_SCI_PARITY_ERROR
(0x2000000U)¶ Parity Error.
-
LIN_SCI_BREAK_ERROR
(0x1000000U)¶ Break Detect Error.
-
LIN_SCI_INT_BREAK
(0x1U)¶ Break Detect.
-
LIN_SCI_INT_WAKEUP
(0x2U)¶ Wakeup.
-
LIN_SCI_INT_TX
(0x100U)¶ Transmit Buffer.
-
LIN_SCI_INT_RX
(0x200U)¶ Receive Buffer.
-
LIN_SCI_INT_TX_DMA
(0x10000U)¶ DMA Transmit.
-
LIN_SCI_INT_RX_DMA
(0x20000U)¶ DMA Receive.
-
LIN_SCI_INT_PARITY
(0x1000000U)¶ Parity Error.
-
LIN_SCI_INT_OVERRUN
(0x2000000U)¶ Overrun Error.
-
LIN_SCI_INT_FRAME
(0x4000000U)¶ Framing Error.
-
LIN_SCI_INT_ALL
(0x7000303U)¶ All Interrupts.
Enums
-
enum
LIN_LoopbackType
¶ The following are defines for the type parameter of the LIN_enableExtLoopback() function.
Values:
-
enumerator
LIN_LOOPBACK_DIGITAL
= 0U¶ Digital Loopback Mode.
-
enumerator
LIN_LOOPBACK_ANALOG
= 2U¶ Analog Loopback Mode.
-
enumerator
-
enum
LIN_AnalogLoopback
¶ The following are defines for the path parameter of the LIN_enableExtLoopback() function.
Values:
-
enumerator
LIN_ANALOG_LOOP_NONE
= 0U¶ Default path for digital loopback mode.
-
enumerator
LIN_ANALOG_LOOP_TX
= 0U¶ Analog loopback through transmit pin.
-
enumerator
LIN_ANALOG_LOOP_RX
= 1U¶ Analog loopback through receive pin.
-
enumerator
-
enum
LIN_CommMode
¶ The following are defines for the mode parameter of the LIN_setCommMode() function.
Values:
-
enumerator
LIN_COMM_LIN_USELENGTHVAL
= 0x0000U¶ Use the length indicated in the LENGTH field of the SCIFORMAT register.
-
enumerator
LIN_COMM_LIN_ID4ID5LENCTL
= 0x0001U¶ Use ID4 and ID5 to convey the length.
-
enumerator
-
enum
LIN_SCICommMode
¶ The following are defines for the mode parameter of the LIN_setSCICommMode() function.
Values:
-
enumerator
LIN_COMM_SCI_IDLELINE
= 0x0000U¶ Idle-line mode is used.
-
enumerator
LIN_COMM_SCI_ADDRBIT
= 0x0001U¶ Address bit mode is used.
-
enumerator
-
enum
LIN_LINMode
¶ The following are defines for the mode parameter of the LIN_setLINMode() function.
Values:
-
enumerator
LIN_MODE_LIN_SLAVE
= 0x0000U¶ The node is in slave mode.
-
enumerator
LIN_MODE_LIN_MASTER
= 0x0020U¶ The node is in master mode.
-
enumerator
-
enum
LIN_InterruptLine
¶ The following are defines for the line parameter of the LIN_enableGlobalInterrupt(), LIN_disableGlobalInterrupt(), LIN_clearGlobalInterruptStatus(), and LIN_getGlobalInterruptStatus() functions.
Values:
-
enumerator
LIN_INTERRUPT_LINE0
= 0x0U¶ Interrupt line 0.
-
enumerator
LIN_INTERRUPT_LINE1
= 0x1U¶ Interrupt line 1.
-
enumerator
-
enum
LIN_MessageFilter
¶ The following are defines for the type parameter of the LIN_setMessageFiltering() function.
Values:
-
enumerator
LIN_MSG_FILTER_IDBYTE
= 0x0U¶ LIN Message ID Byte Filtering.
-
enumerator
LIN_MSG_FILTER_IDSLAVE
= 0x1U¶ Slave Task ID Byte Filtering.
-
enumerator
-
enum
LIN_ChecksumType
¶ The following are defines for the type parameter of the LIN_setChecksumType() function.
Values:
-
enumerator
LIN_CHECKSUM_CLASSIC
= 0x0U¶ Checksum Classic.
-
enumerator
LIN_CHECKSUM_ENHANCED
= 0x1U¶ Checksum Enhanced.
-
enumerator
-
enum
LIN_DebugMode
¶ The following are defines for the mode parameter of the LIN_setDebugSuspendMode() function.
Values:
-
enumerator
LIN_DEBUG_FROZEN
= 0x0U¶ Freeze module during debug.
-
enumerator
LIN_DEBUG_COMPLETE
= 0x1U¶ Complete Tx/Rx before Freezing.
-
enumerator
-
enum
LIN_PinSampleMask
¶ The following are defines for the mask parameter of the LIN_setPinSampleMask() function.
Values:
-
enumerator
LIN_PINMASK_NONE
= 0x0U¶ No Pin Mask.
-
enumerator
LIN_PINMASK_CENTER
= 0x1U¶ Invert Tx Pin value at T-bit center.
-
enumerator
LIN_PINMASK_CENTER_SCLK
= 0x2U¶ Invert Tx Pin value at T-bit center + SCLK.
-
enumerator
LIN_PINMASK_CENTER_2SCLK
= 0x3U¶ Invert Tx Pin value at T-bit center + 2 SCLK.
-
enumerator
-
enum
LIN_SCIParityType
¶ The following are defines for the parity parameter of the LIN_enableSCIParity() function.
Values:
-
enumerator
LIN_SCI_PAR_ODD
= 0x0U¶ Odd parity.
-
enumerator
LIN_SCI_PAR_EVEN
= 0x1U¶ Even parity.
-
enumerator
-
enum
LIN_SCIStopBits
¶ The following are defines for the number parameter of the LIN_setSCIStopBits() function.
Values:
-
enumerator
LIN_SCI_STOP_ONE
= 0x0U¶ Use One Stop bit.
-
enumerator
LIN_SCI_STOP_TWO
= 0x1U¶ Use Two Stop bits.
-
enumerator
Functions
-
void
LIN_setLINMode
(uint32_t base, LIN_LINMode mode)¶ Sets the LIN mode
In LIN mode only, this function sets the mode of the LIN mode to either slave or master. The
mode parameter should be passed a value of LIN_MODE_LIN_SLAVE or LIN_MODE_LIN_MASTER to configure the mode of the LIN module specified by base.- Parameters
base
: is the LIN module base addressmode
: is the desired mode (slave or master)
- Return
None.
-
void
LIN_setMaximumBaudRate
(uint32_t base, uint32_t clock)¶ Set Maximum Baud Rate Prescaler
In LIN mode only, this function is used to set the maximum baud rate prescaler used during synchronization phase of a slave module if the ADAPT bit is set. The maximum baud rate prescaler is used by the wakeup and idle timer counters for a constant 4 second expiration time relative to a 20kHz rate.
- Parameters
base
: is the LIN module base addressclock
: is the device system clock (Hz)
- Note
Use LIN_enableAutomaticBaudrate() to set the ADAPT bit and enable automatic bit rate mod detection.
- Return
None.
-
void
LIN_setMessageFiltering
(uint32_t base, LIN_MessageFilter type)¶ Set Message filtering Type
In LIN mode only, this function sets the message filtering type. The
type parameter can be one of the following values:LIN_MSG_FILTER_IDBYTE - Filtering uses LIN message ID Byte
LIN_MSG_FILTER_IDSLAVE - Filtering uses the Slave Task ID Byte
- Parameters
base
: is the LIN module base addresstype
: is the mask filtering comparison type
- Return
None.
-
void
LIN_enableParity
(uint32_t base)¶ Enable Parity mode.
In LIN mode only, this function enables the parity check.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_disableParity
(uint32_t base)¶ Disable Parity mode.
In LIN mode only, this function disables the parity check.
- Parameters
base
: is the LIN module base address
- Return
None.
-
uint16_t
LIN_generateParityID
(uint16_t identifier)¶ Generate Parity Identifier
In LIN mode only, this function generates the identifier parity bits and appends them to the identifier.
- Parameters
identifier
: is the LIN header ID byte
- Note
An ID must be generated with parity before header generation in LIN master mode when parity is enabled using the function LIN_enableParity().
- Return
Returns the identifier appended with parity bits.
-
void
LIN_setIDByte
(uint32_t base, uint16_t identifier)¶ Set ID Byte
In LIN mode only, this function sets the message ID byte. In master mode, writing to this ID initiates a header transmission. In slave task, this ID is used for message filtering when HGENCTRL is 0.
- Parameters
base
: is the LIN module base addressidentifier
: is the LIN header ID byte
- Return
None.
-
void
LIN_setIDSlaveTask
(uint32_t base, uint16_t identifier)¶ Set ID-SlaveTask
In LIN mode only, this function sets the identifier to which the received ID of an incoming Header will be compared in order to decide whether a RX response, a TX response, or no action is required.
- Parameters
base
: is the LIN module base addressidentifier
: is the Received ID comparison ID
- Return
None.
-
void
LIN_sendWakeupSignal
(uint32_t base)¶ Send LIN wakeup signal
In LIN mode only, this function sends the LIN wakeup signal to terminate the sleep mode of any LIN node connected to the bus.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_enterSleep
(uint32_t base)¶ Enter LIN Sleep Mode.
In LIN mode only, this function puts the LIN module into a low-power, sleep mode. This can also be called to forcefully enter sleep when there is no activity on the bus.
- Parameters
base
: is the LIN module base address
- Note
If this function is called while the receiver is actively receiving data and the wakeup interrupt is disabled, then the module will delay sleep mode from being entered until completion of reception.
- Return
None.
-
void
LIN_sendChecksum
(uint32_t base)¶ Send Checksum Byte
In LIN mode only, this function enables the transmitter with extended frames to send a checkbyte.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_triggerChecksumCompare
(uint32_t base)¶ Trigger Checksum Compare
In LIN mode only, this function enables the receiver for extended frames to trigger a checksum compare.
- Parameters
base
: is the LIN module base address
- Return
None.
-
bool
LIN_isTxReady
(uint32_t base)¶ Check Tx buffer ready flag
In LIN mode only, this function checks to see if the Tx ready flag is set indicating that the Tx buffer(s) is/are ready to get another character.
- Parameters
base
: is the LIN module base address
- Return
Returns true if the TX ready flag is set, else returns false
-
void
LIN_setFrameLength
(uint32_t base, uint16_t length)¶ Set LIN Frame Length
In LIN mode only, this function sets the number of bytes in the response field.
- Parameters
base
: is the LIN module base addresslength
: is the number of bytes.
The length parameter must be in a range between 1 and 8.
- Return
None.
-
void
LIN_setCommMode
(uint32_t base, LIN_CommMode mode)¶ Set LIN communication mode
In LIN mode only, this function is used to choose how the length of data is conveyed. This choice relates to the version of LIN being used. The
mode parameter can have one of two values:LIN_COMM_LIN_USELENGTHVAL will use the length set with the LIN_setFrameLength() function.
LIN_COMM_LIN_ID4ID5LENCTL will use ID4 and ID5 for length control.
- Parameters
base
: is the LIN module base addressmode
: is the selected communication mode
- Return
None.
-
void
LIN_setTxMask
(uint32_t base, uint16_t mask)¶ Sets the transmit ID mask
In LIN mode only, this function sets the mask used for filtering an incoming ID message to determine if the TX ID flag should be set.
- Parameters
base
: is the LIN module base addressmask
: is the mask value to be set
- Return
None.
-
void
LIN_setRxMask
(uint32_t base, uint16_t mask)¶ Sets the receive ID mask
In LIN mode only, this function sets the mask used for filtering an incoming ID message to determine if the ID RX flag should be set.
- Parameters
base
: is the LIN module base addressmask
: is the mask value to be set
- Return
None.
-
uint16_t
LIN_getTxMask
(uint32_t base)¶ Gets the transmit ID mask
In LIN mode only, this function gets the mask used for filtering an incoming ID message to determine if the TX ID flag should be set.
- Parameters
base
: is the LIN module base address
- Return
Returns the Transmit ID Mask.
-
uint16_t
LIN_getRxMask
(uint32_t base)¶ Gets the receive ID mask
In LIN mode only, this function gets the mask used for filtering an incoming ID message to determine if the ID RX flag should be set.
- Parameters
base
: is the LIN module base address
- Return
Returns the Receive ID Mask.
-
bool
LIN_isRxReady
(uint32_t base)¶ Check if Rx data is ready
In LIN mode only, checks to see if the Rx ready bit is set indicating that a valid message frame has been received.
- Parameters
base
: is the LIN module base address
- Return
Returns true if the Rx ready flag is set, else returns false.
-
uint16_t
LIN_getRxIdentifier
(uint32_t base)¶ Get last received identifier
In LIN mode only, this function gets the last received identifier.
- Parameters
base
: is the LIN module base address
- Return
Returns the Received Identifier.
-
bool
LIN_isTxMatch
(uint32_t base)¶ Checks for Tx ID Match Received
In LIN mode only, this function checks if an ID is received with a TX match and no ID-parity error.
- Parameters
base
: is the LIN module base address
- Return
Returns true if a valid ID is matched, else returns false.
-
bool
LIN_isRxMatch
(uint32_t base)¶ Checks for Rx ID Match Received
In LIN mode only, this function checks if an ID is received with a RX match and no ID-parity error.
- Parameters
base
: is the LIN module base address
- Return
Returns true if a valid ID is matched, else returns false.
-
void
LIN_enableInterrupt
(uint32_t base, uint32_t intFlags)¶ Enable interrupts
In LIN mode only, this function enables the interrupts for the specified interrupt sources.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of the interrupt sources to be enabled.
The intFlags parameter can be set to the following value to set all the flag bits:
LIN_INT_ALL - All Interrupts
To set individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_INT_WAKEUP - Wakeup
LIN_INT_TO - Time out
LIN_INT_TOAWUS - Time out after wakeup signal
LIN_INT_TOA3WUS - Time out after 3 wakeup signals
LIN_INT_TX - Transmit buffer ready
LIN_INT_RX - Receive buffer ready
LIN_INT_ID - Received matching identifier
LIN_INT_PE - Parity error
LIN_INT_OE - Overrun error
LIN_INT_FE - Framing error
LIN_INT_NRE - No response error
LIN_INT_ISFE - Inconsistent sync field error
LIN_INT_CE - Checksum error
LIN_INT_PBE - Physical bus error
LIN_INT_BE - Bit error
- Return
None.
-
void
LIN_disableInterrupt
(uint32_t base, uint32_t intFlags)¶ Disable interrupts
In LIN mode only, this function disables the interrupts for the specified interrupt sources.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of the interrupt sources to be disabled.
The intFlags parameter can be set to the following value to disable all the flag bits:
LIN_INT_ALL - All Interrupts
To disable individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_INT_WAKEUP - Wakeup
LIN_INT_TO - Time out
LIN_INT_TOAWUS - Time out after wakeup signal
LIN_INT_TOA3WUS - Time out after 3 wakeup signals
LIN_INT_TX - Transmit buffer ready
LIN_INT_RX - Receive buffer ready
LIN_INT_ID - Received matching identifier
LIN_INT_PE - Parity error
LIN_INT_OE - Overrun error
LIN_INT_FE - Framing error
LIN_INT_NRE - No response error
LIN_INT_ISFE - Inconsistent sync field error
LIN_INT_CE - Checksum error
LIN_INT_PBE - Physical bus error
LIN_INT_BE - Bit error
- Return
None.
-
void
LIN_clearInterruptStatus
(uint32_t base, uint32_t intFlags)¶ Clear interrupt status
In LIN mode only, this function clears the specified status flags.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of the interrupt sources to be cleared.
The intFlags parameter can be set to the following value to clear all the flag bits:
LIN_INT_ALL - All Interrupts
To clear individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_INT_WAKEUP - Wakeup
LIN_INT_TO - Time out
LIN_INT_TOAWUS - Time out after wakeup signal
LIN_INT_TOA3WUS - Time out after 3 wakeup signals
LIN_INT_TX - Transmit buffer ready
LIN_INT_RX - Receive buffer ready
LIN_INT_ID - Received matching identifier
LIN_INT_PE - Parity error
LIN_INT_OE - Overrun error
LIN_INT_FE - Framing error
LIN_INT_NRE - No response error
LIN_INT_ISFE - Inconsistent sync field error
LIN_INT_CE - Checksum error
LIN_INT_PBE - Physical bus error
LIN_INT_BE - Bit error
- Return
None.
-
void
LIN_setInterruptLevel0
(uint32_t base, uint32_t intFlags)¶ Set interrupt level to 0
In LIN mode only, this function sets the specified interrupt sources to level 0.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of interrupt sources to be configured
The intFlags parameter can be set to the following value to set all the flag bits:
LIN_INT_ALL - All Interrupts
To set individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_INT_WAKEUP - Wakeup
LIN_INT_TO - Time out
LIN_INT_TOAWUS - Time out after wakeup signal
LIN_INT_TOA3WUS - Time out after 3 wakeup signals
LIN_INT_TX - Transmit buffer ready
LIN_INT_RX - Receive buffer ready
LIN_INT_ID - Received matching identifier
LIN_INT_PE - Parity error
LIN_INT_OE - Overrun error
LIN_INT_FE - Framing error
LIN_INT_NRE - No response error
LIN_INT_ISFE - Inconsistent sync field error
LIN_INT_CE - Checksum error
LIN_INT_PBE - Physical bus error
LIN_INT_BE - Bit error
- Return
None.
-
void
LIN_setInterruptLevel1
(uint32_t base, uint32_t intFlags)¶ Set interrupt level to 1
In LIN mode only, this function sets the specified interrupt sources to level 1.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of interrupt sources to be configured
The intFlags parameter can be set to the following value to set all the flag bits:
LIN_INT_ALL - All Interrupts
To set individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_INT_WAKEUP - Wakeup
LIN_INT_TO - Time out
LIN_INT_TOAWUS - Time out after wakeup signal
LIN_INT_TOA3WUS - Time out after 3 wakeup signals
LIN_INT_TX - Transmit buffer ready
LIN_INT_RX - Receive buffer ready
LIN_INT_ID - Received matching identifier
LIN_INT_PE - Parity error
LIN_INT_OE - Overrun error
LIN_INT_FE - Framing error
LIN_INT_NRE - No response error
LIN_INT_ISFE - Inconsistent sync field error
LIN_INT_CE - Checksum error
LIN_INT_PBE - Physical bus error
LIN_INT_BE - Bit error
- Return
None.
-
void
LIN_enableModuleErrors
(uint32_t base, uint32_t errors)¶ Enable Module Errors for Testing
In LIN mode only, this function enables the specified errors in the module for testing. The
errors parameter can be a logical OR-ed result of the following values or LIN_ALL_ERRORS can be used to enable all of them:LIN_BIT_ERROR - Simulates a bit error
LIN_BUS_ERROR - Simulates a physical bus error
LIN_CHECKSUM_ERROR - Simulates a checksum error
LIN_ISF_ERROR - Simulates an inconsistent synch field error
- Parameters
base
: is the LIN module base addresserrors
: is the specified errors to be enabled
- Note
To disable these errors, use the LIN_disableModuleErrors() function.
- Return
None.
-
void
LIN_disableModuleErrors
(uint32_t base, uint32_t errors)¶ Disable Module Errors for Testing
In LIN mode only, this function disables the specified errors in the module for testing. The
errors parameter can be a logical OR-ed result of the following values or LIN_ALL_ERRORS can be used to disable all of them:LIN_BIT_ERROR - Simulates a bit error
LIN_BUS_ERROR - Simulates a physical bus error
LIN_CHECKSUM_ERROR - Simulates a checksum error
LIN_ISF_ERROR - Simulates an inconsistent synch field error
- Parameters
base
: is the LIN module base addresserrors
: is the specified errors to be disabled
- Return
None.
-
void
LIN_enableAutomaticBaudrate
(uint32_t base)¶ Enable Automatic Baudrate Adjustment
In LIN mode only, this function enables the automatic baudrate adjustment mode during the detection of the Synch Field.
- Parameters
base
: is the LIN module base address
- Note
The baudrate selection register will be updated automatically by a slave node if this mode is enabled.
- Return
None.
-
void
LIN_disableAutomaticBaudrate
(uint32_t base)¶ Disable Automatic Baudrate Adjustment
In LIN mode only, this function disables the automatic baudrate adjustment mode during the detection of the Synch Field. This results in a fixed baud rate.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_stopExtendedFrame
(uint32_t base)¶ Stops LIN Extended Frame Communication
In LIN mode only, this function stops the extended frame communication. Once stopped, the bit is automatically cleared.
- Parameters
base
: is the LIN module base address
- Note
This function can only be called during extended frame communication.
- Return
None.
-
void
LIN_setChecksumType
(uint32_t base, LIN_ChecksumType type)¶ Set Checksum Type
In LIN mode only, this function sets the checksum type. The
type parameter can be one of the following two values:LIN_CHECKSUM_CLASSIC - Checksum Classic
LIN_CHECKSUM_ENHANCED - Checksum Enhanced
- Parameters
base
: is the LIN module base addresstype
: is the checksum type
- Return
None.
-
void
LIN_setSyncFields
(uint32_t base, uint16_t syncBreak, uint16_t delimiter)¶ Set Sync Break Extend and Delimiter
In LIN mode only, this function sets the 3-bit sync break extend value and the 2-bit sync delimiter compare value.
- Parameters
base
: is the LIN module base addresssyncBreak
: is the sync break extend valuedelimiter
: is the sync delimiter value
The break parameter can be a value between 0 to 7. Details:
0 - Sync Break has no additional T-bit
1 - Sync Break has 1 additional T-bit
…
7 - Sync Break has 7 additional T-bits
The delimiter parameter can be a value between 1 to 4. Details:
1 - Delimiter has 1 T-bit
2 - Delimiter has 2 T-bits
3 - Delimiter has 3 T-bits
4 - Delimiter has 4 T-bits
- Return
None.
-
void
LIN_enableSCIMode
(uint32_t base)¶ Enable SCI Mode
This function enables the LIN peripheral to function as a SCI.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_disableSCIMode
(uint32_t base)¶ Disable SCI Mode
This function disables the SCI mode of the LIN peripheral.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_setSCICommMode
(uint32_t base, LIN_SCICommMode mode)¶ Set SCI communication mode
In SCI mode only, this function is used to select between idle-line mode and address-bit mode. The
mode parameter can have one of the following values:LIN_COMM_SCI_IDLELINE - Idle-line mode.
LIN_COMM_SCI_ADDRBIT - Address-bit mode.
- Parameters
base
: is the LIN module base addressmode
: is the selected communication mode
- Return
None.
-
void
LIN_enableSCIParity
(uint32_t base, LIN_SCIParityType parity)¶ Enable SCI Parity mode.
In SCI mode only, this function enables the parity check and sets the parity type. The
parity parameter can one of the following values:LIN_SCI_PAR_ODD - Sets Odd parity
LIN_SCI_PAR_EVEN - Sets Even parity
- Parameters
base
: is the LIN module base addressparity
: is the SCI parity type
- Return
None.
-
void
LIN_disableSCIParity
(uint32_t base)¶ Disable SCI Parity mode.
In SCI mode only, this function disables the parity check.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_setSCIStopBits
(uint32_t base, LIN_SCIStopBits number)¶ Set the number of stop bits for SCI
In SCI mode only, this function sets the number of stop bits transmitted. The
number parameter can be one of the following values:LIN_SCI_STOP_ONE - Set one stop bit
LIN_SCI_STOP_TWO - Set two stop bits
- Parameters
base
: is the LIN module base addressnumber
: is the number of stop bits
- Return
None.
-
void
LIN_enableSCISleepMode
(uint32_t base)¶ Enable SCI Sleep mode.
In SCI mode only, this function enables the receive sleep mode functionality.
- Parameters
base
: is the LIN module base address
- Note
The receiver still operates when the sleep mode is enabled, however, RXRDY is updated and SCIRD is loaded with new data only when an address frame is detected.
- Return
None.
-
void
LIN_disableSCISleepMode
(uint32_t base)¶ Disable SCI Sleep mode.
In SCI mode only, this function disables the receive sleep mode functionality.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_enterSCILowPower
(uint32_t base)¶ Enter SCI Local Low-Power Mode
In SCI mode only, this function enters the SCI local low-power mode.
- Parameters
base
: is the LIN module base address
- Note
If this function is called while the receiver is actively receiving data and the wakeup interrupt is disabled, then the module will delay sleep mode from being entered until completion of reception.
- Return
None.
-
void
LIN_exitSCILowPower
(uint32_t base)¶ Exit SCI Local Low-Power Mode
In SCI mode only, this function exits the SCI local low-power mode.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_setSCICharLength
(uint32_t base, uint16_t numBits)¶ Set SCI character length
In SCI mode only, this function sets the number of bits per character.
- Parameters
base
: is the LIN module base addressnumBits
: is the number of bits per character.
The numBits parameter must be in a range between 1 and 8.
- Return
None.
-
void
LIN_setSCIFrameLength
(uint32_t base, uint16_t length)¶ Set SCI Frame Length
In SCI mode only, this function sets the number of characters in the response field.
- Parameters
base
: is the LIN module base addresslength
: is the number of characters
The length parameter must be in a range between 1 and 8.
- Return
None.
-
bool
LIN_isSCIDataAvailable
(uint32_t base)¶ Check if new SCI data is ready to be read
In SCI mode only, this function checks to see if the Rx ready bit is set indicating that a new data has been received.
- Parameters
base
: is the LIN module base address
- Return
Returns true if the Rx ready flag is set, else returns false.
-
bool
LIN_isSCISpaceAvailable
(uint32_t base)¶ Check if Space is available in SCI Transmit Buffer
In SCI mode only, this function checks to see if the Tx ready flag is set indicating that the Tx buffer(s) is/are ready to get another character.
- Parameters
base
: is the LIN module base address
- Return
Returns true if the TX ready flag is set, else returns false
-
uint16_t
LIN_readSCICharNonBlocking
(uint32_t base, bool emulation)¶ Reads a SCI character without Blocking
In SCI mode only, this function gets the byte of data received. The
emulation parameter can have one of the following values:true - Emulator is being used, the RXRDY flag won’t be cleared
false - Emulator isn’t being used, the RXRDY flag will be cleared automatically on read
- Parameters
base
: is the LIN module base addressemulation
: sets whether the data is being read by an emulator or not
- Note
If the SCI receives data that is fewer than 8 bits in length, the data is left-justified and padded with trailing zeros.
To determine if new data is available to read, use the function LIN_isSCIDataAvailable().
- Return
Returns the received data.
-
uint16_t
LIN_readSCICharBlocking
(uint32_t base, bool emulation)¶ Reads a SCI character with Blocking
In SCI mode only, this function gets the byte of data received. If new data isn’t available, this function will wait until new data arrives. The
emulation parameter can have one of the following values:true - Emulator is being used, the RXRDY flag won’t be cleared
false - Emulator isn’t being used, the RXRDY flag will be cleared automatically on read
- Parameters
base
: is the LIN module base addressemulation
: sets whether the data is being read by an emulator or not
- Note
If the SCI receives data that is fewer than 8 bits in length, the data is left-justified and padded with trailing zeros.
- Return
Returns the received data.
-
void
LIN_writeSCICharNonBlocking
(uint32_t base, uint16_t data)¶ Sends a SCI character without blocking
In SCI mode only, this function sets the byte of data to be transmitted without blocking.
- Parameters
base
: is the LIN module base addressdata
: is the byte of data to be transmitted
- Note
The transmit ready flag gets set when this buffer is ready to be loaded with another byte of data. Use LIN_isSCISpaceAvailable() to determine if space is available to write another character.
- Return
None.
-
void
LIN_writeSCICharBlocking
(uint32_t base, uint16_t data)¶ Sends a SCI character with blocking
In SCI mode only, this function sets the byte of data to be transmitted with blocking functionality. If the buffer isn’t ready to get new data written to, this function will wait until space is available.
- Parameters
base
: is the LIN module base addressdata
: is the byte of data to be transmitted
- Return
None.
-
void
LIN_enableSCIModuleErrors
(uint32_t base, uint32_t errors)¶ Enable SCI Module Errors for Testing
In SCI mode only, this function enables the specified errors in the module for testing. The
errors parameter can be a logical OR-ed result of the following values or LIN_SCI_ALL_ERRORS can be used to enable all of them:LIN_SCI_FRAME_ERROR - Simulates a frame error
LIN_SCI_PARITY_ERROR - Simulates a parity error
LIN_SCI_BREAK_ERROR - Simulates a break detect error
- Parameters
base
: is the LIN module base addresserrors
: is the specified errors to be enabled
- Note
To disable these errors, use the LIN_disableSCIModuleErrors() function.
- Return
None.
-
void
LIN_disableSCIModuleErrors
(uint32_t base, uint32_t errors)¶ Disable SCI Module Errors for Testing
In SCI mode only, this function disables the specified errors in the module for testing. The
errors parameter can be a logical OR-ed result of the following values or LIN_SCI_ALL_ERRORS can be used to enable all of them:LIN_SCI_FRAME_ERROR - Simulates a frame error
LIN_SCI_PARITY_ERROR - Simulates a parity error
LIN_SCI_BREAK_ERROR - Simulates a break detect error
- Parameters
base
: is the LIN module base addresserrors
: is the specified errors to be disabled
- Return
None.
-
void
LIN_enableSCIInterrupt
(uint32_t base, uint32_t intFlags)¶ Enable SCI interrupts
In SCI mode only, this function enables the interrupts for the specified interrupt sources.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of the interrupt sources to be enabled.
The intFlags parameter can be set to the following value to set all the flag bits:
LIN_SCI_INT_ALL - All Interrupts
To set individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_SCI_INT_BREAK - Break Detect
LIN_SCI_INT_WAKEUP - Wakeup
LIN_SCI_INT_TX - Transmit Buffer
LIN_SCI_INT_RX - Receive Buffer
LIN_SCI_INT_TX_DMA - DMA Transmit
LIN_SCI_INT_RX_DMA - DMA Receive
LIN_SCI_INT_PARITY - Parity Error
LIN_SCI_INT_OVERRUN - Overrun Error
LIN_SCI_INT_FRAME - Framing Error
- Return
None.
-
void
LIN_disableSCIInterrupt
(uint32_t base, uint32_t intFlags)¶ Disable SCI interrupts
In SCI mode only, this function disables the interrupts for the specified interrupt sources.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of the interrupt sources to be disabled.
The intFlags parameter can be set to the following value to disable all the flag bits:
LIN_SCI_INT_ALL - All Interrupts
To disable individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_SCI_INT_BREAK - Break Detect
LIN_SCI_INT_WAKEUP - Wakeup
LIN_SCI_INT_TX - Transmit Buffer
LIN_SCI_INT_RX - Receive Buffer
LIN_SCI_INT_TX_DMA - DMA Transmit
LIN_SCI_INT_RX_DMA - DMA Receive
LIN_SCI_INT_PARITY - Parity Error
LIN_SCI_INT_OVERRUN - Overrun Error
LIN_SCI_INT_FRAME - Framing Error
- Return
None.
-
void
LIN_clearSCIInterruptStatus
(uint32_t base, uint32_t intFlags)¶ Clear SCI interrupt status
In SCI mode only, this function clears the specified status flags.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of the interrupt sources to be cleared.
The intFlags parameter can be set to the following value to clear all the flag bits:
LIN_SCI_INT_ALL - All Interrupts
To clear individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_SCI_INT_BREAK - Break Detect
LIN_SCI_INT_WAKEUP - Wakeup
LIN_SCI_INT_TX - Transmit Buffer
LIN_SCI_INT_RX - Receive Buffer
LIN_SCI_INT_TX_DMA - DMA Transmit
LIN_SCI_INT_RX_DMA - DMA Receive
LIN_SCI_INT_PARITY - Parity Error
LIN_SCI_INT_OVERRUN - Overrun Error
LIN_SCI_INT_FRAME - Framing Error
- Return
None.
-
void
LIN_setSCIInterruptLevel0
(uint32_t base, uint32_t intFlags)¶ Set SCI interrupt level to 0
In SCI mode only, this function sets the specified interrupt sources to level 0.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of interrupt sources to be configured
The intFlags parameter can be set to the following value to set all the flag bits:
LIN_SCI_INT_ALL - All Interrupts
To set individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_SCI_INT_BREAK - Break Detect
LIN_SCI_INT_WAKEUP - Wakeup
LIN_SCI_INT_TX - Transmit Buffer
LIN_SCI_INT_RX - Receive Buffer
LIN_SCI_INT_TX_DMA - DMA Transmit
LIN_SCI_INT_RX_DMA - DMA Receive
LIN_SCI_INT_PARITY - Parity Error
LIN_SCI_INT_OVERRUN - Overrun Error
LIN_SCI_INT_FRAME - Framing Error
- Return
None.
-
void
LIN_setSCIInterruptLevel1
(uint32_t base, uint32_t intFlags)¶ Set SCI interrupt level to 1
In SCI mode only, this function sets the specified interrupt sources to level 1.
- Parameters
base
: is the LIN module base addressintFlags
: is the bit mask of interrupt sources to be configured
The intFlags parameter can be set to the following value to set all the flag bits:
LIN_SCI_INT_ALL - All Interrupts
To set individual flags, the intFlags parameter can be the logical OR of any of the following:
LIN_SCI_INT_BREAK - Break Detect
LIN_SCI_INT_WAKEUP - Wakeup
LIN_SCI_INT_TX - Transmit Buffer
LIN_SCI_INT_RX - Receive Buffer
LIN_SCI_INT_TX_DMA - DMA Transmit
LIN_SCI_INT_RX_DMA - DMA Receive
LIN_SCI_INT_PARITY - Parity Error
LIN_SCI_INT_OVERRUN - Overrun Error
LIN_SCI_INT_FRAME - Framing Error
- Return
None.
-
bool
LIN_isSCIReceiverIdle
(uint32_t base)¶ Check if SCI Receiver is Idle
In SCI mode only, this function checks if the receiver is in an idle state.
- Parameters
base
: is the LIN module base address
- Return
Returns true if the state is idle, else returns false.
-
bool
LIN_getSCITxFrameType
(uint32_t base)¶ Gets the SCI Transmit Frame Type
In SCI mode only, this function gets the transmit frame type which can be either data or an address.
- Parameters
base
: is the LIN module base address
- Return
Returns true if the frame will be an address, and returns false if the frame will be data.
-
bool
LIN_getSCIRxFrameType
(uint32_t base)¶ Gets the SCI Receiver Frame Type
In SCI mode only, this function gets the receiver frame type which can be either an address or not an address.
- Parameters
base
: is the LIN module base address
- Return
Returns true if the frame is an address, and returns false if the frame isn’t an address.
-
bool
LIN_isSCIBreakDetected
(uint32_t base)¶ Check if SCI Detected a Break Condition
In SCI mode only, this function checks if the module detected a break condition on the Rx pin.
- Parameters
base
: is the LIN module base address
- Return
Returns true if break detected, else returns false.
-
void
LIN_enableModule
(uint32_t base)¶ Enables the LIN module.
In LIN and SCI mode, this function sets the RESET bit of the SCIGCR0 register. Registers in this module are not writable until this has been done. Additionally, the transmit and receive pin control functionality is enabled.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_disableModule
(uint32_t base)¶ Disable the LIN module.
In LIN and SCI mode, this function clears the RESET bit of the SCIGCR0 register. Registers in this module are not writable when this bit is cleared. Additionally, the transmit and receive pin control functionality is disabled.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_setBaudRatePrescaler
(uint32_t base, uint32_t prescaler, uint32_t divider)¶ Set Baud Rate Prescaler
In LIN and SCI mode, this function is used to set the baudrate based on the
prescaler and divider values.- Parameters
base
: is the LIN module base addressprescaler
: is the 24-bit integer prescalerdivider
: is the 4-bit fractional divider
P = Prescaler
M = Fractional Divider
Bitrate = (SYSCLOCK) / ((P + 1 + M/16) * 16)
- Return
None.
-
void
LIN_enableDataTransmitter
(uint32_t base)¶ Enable Transmit Data Transfer.
In LIN and SCI mode, this function enables the transfer of data from SCITD or TDy to the transmit shift register.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_disableDataTransmitter
(uint32_t base)¶ Disable Transmit Data Transfer.
In LIN and SCI mode, this function disables the transfer of data from SCITD or TDy to the transmit shift register.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_enableDataReceiver
(uint32_t base)¶ Enable Receive Data Transfer.
In LIN and SCI mode, this function enables the receiver to transfer data from the shift buffer register to the receive buffer or multi-buffer.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_disableDataReceiver
(uint32_t base)¶ Disable Receive Data Transfer.
In LIN and SCI mode, this function disables the receiver to transfer data from the shift buffer register to the receive buffer or multi-buffer.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_performSoftwareReset
(uint32_t base)¶ Perform software reset.
In LIN and SCI mode, this function will reset the LIN state machine and clear all pending flags. It is required to call this function after a wakeup signal has been sent.
- Parameters
base
: is the LIN module base address
To enter the reset state separately, use LIN_enterSoftwareReset(). To come out of reset, use LIN_exitSoftwareReset().
- Return
None.
-
void
LIN_enterSoftwareReset
(uint32_t base)¶ Put LIN into its reset state.
In LIN and SCI mode, this function will reset the LIN state machine and clear all pending flags. It is required to call this function after a wakeup signal has been sent. When in this state, changes to the configuration of this module may be made.
- Parameters
base
: is the LIN module base address
To take LIN out of the reset state and back into the ready state, use LIN_exitSoftwareReset().
- Return
None.
-
void
LIN_exitSoftwareReset
(uint32_t base)¶ Put LIN into its ready state.
In LIN and SCI mode, this function will put LIN into its ready state. Transmission and reception can be done in this state. While in the ready state, configuration of the module should not be changed.
- Parameters
base
: is the LIN module base address
To put the module into its reset state, use LIN_enterSoftwareReset().
- Return
None.
-
bool
LIN_isBusBusy
(uint32_t base)¶ Check if Bus is Busy
In LIN and SCI mode, this function checks if the receiver bus is busy receiving a frame.
- Parameters
base
: is the LIN module base address
- Return
Returns true if the bus is busy, else returns false.
-
bool
LIN_isTxBufferEmpty
(uint32_t base)¶ Check if the Transmit Buffer is Empty
In LIN and SCI mode, this function checks if the transmit buffer is empty or not.
- Parameters
base
: is the LIN module base address
- Return
Returns true if the Tx buffer is empty, else returns false.
-
void
LIN_enableExtLoopback
(uint32_t base, LIN_LoopbackType loopbackType, LIN_AnalogLoopback path)¶ Enable External Loopback mode for self test
In LIN and SCI mode, this function enables the external Loopback mode for self test. The
loopbackType parameter can be one of the following values:LIN_LOOPBACK_DIGITAL - Digital Loopback
LIN_LOOPBACK_ANALOG - Analog Loopback
- Parameters
base
: is the LIN module base addressloopbackType
: is the loopback type (analog or digital)path
: sets the transmit or receive pin to be included in the communication path (Analog loopback mode only)
The path parameter is only applicable in analog loopback mode and can be one of the following values:
LIN_ANALOG_LOOP_NONE - Default option for digital loopback mode
LIN_ANALOG_LOOP_TX - Enables analog loopback through the Tx pin
LIN_ANALOG_LOOP_RX - Enables analog loopback through the Rx pin
- Return
None.
-
void
LIN_disableExtLoopback
(uint32_t base)¶ Disable External Loopback mode for self test
In LIN and SCI mode, this function disables the external Loopback mode.
- Parameters
base
: is the LIN module base address
- Note
This function also resets the analog loopback communication path to the default transmit pin.
- Return
None.
-
void
LIN_enableIntLoopback
(uint32_t base)¶ Enable Internal Loopback mode for self test
In LIN and SCI mode, this function enables the internal Loopback mode for self test.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_disableIntLoopback
(uint32_t base)¶ Disable Internal Loopback mode for self test
In LIN and SCI mode, this function disables the internal Loopback mode for self test.
- Parameters
base
: is the LIN module base address
- Return
None.
-
uint32_t
LIN_getInterruptStatus
(uint32_t base)¶ Get Interrupt Flags Status
In LIN and SCI mode, this function returns the interrupt status register.
- Parameters
base
: is the LIN module base address
The following flags can be used to mask the value returned:
LIN_FLAG_BREAK - Break Detect Flag (SCI mode only)
LIN_FLAG_WAKEUP - Wake-up Flag
LIN_FLAG_IDLE - Receiver in Idle State (SCI mode only)
LIN_FLAG_BUSY - Busy Flag
LIN_FLAG_TO - Bus Idle Timeout Flag (LIN mode only)
LIN_FLAG_TOAWUS - Timeout after Wakeup Signal (LIN mode only)
LIN_FLAG_TOA3WUS - Timeout after 3 Wakeup Signals (LIN mode only)
LIN_FLAG_TXRDY - Transmitter Buffer Ready Flag
LIN_FLAG_RXRDY - Receiver Buffer Ready Flag
LIN_FLAG_TXWAKE - Transmitter Wakeup Method Select (SCI mode only)
LIN_FLAG_TXEMPTY - Transmitter Empty Flag
LIN_FLAG_RXWAKE - Receiver Wakeup Detect Flag
LIN_FLAG_TXID - Identifier on Transmit Flag (LIN mode only)
LIN_FLAG_RXID - Identifier on Receive Flag (LIN mode only)
LIN_FLAG_PE - Parity Error Flag
LIN_FLAG_OE - Overrun Error Flag
LIN_FLAG_FE - Framing Error Flag
LIN_FLAG_NRE - No-Response Error Flag (LIN mode only)
LIN_FLAG_ISFE - Inconsistent Synch Field Error Flag (LIN mode only)
LIN_FLAG_CE - Checksum Error Flag (LIN mode only)
LIN_FLAG_PBE - Physical Bus Error Flag (LIN mode only)
LIN_FLAG_BE - Bit Error Flag (LIN mode only)
- Return
Returns the status flag register.
-
uint32_t
LIN_getInterruptLevel
(uint32_t base)¶ Get the Interrupt Level
In LIN and SCI mode, this function gets the interrupt level status for all interrupt sources.
- Parameters
base
: is the LIN module base address
- Return
Returns the value of the interrupt level register.
-
uint16_t
LIN_getInterruptLine0Offset
(uint32_t base)¶ Gets the Interrupt Vector Offset for Line 0
In LIN and SCI mode, this function gets the offset for interrupt line 0. A read to the specified line register updates its value to the next highest priority pending interrupt in the flag register and clears the flag corresponding to the offset that was read.
- Parameters
base
: is the LIN module base address
The following are values that can be returned:
LIN_VECT_NONE - No Interrupt
LIN_VECT_WAKEUP - Wakeup
LIN_VECT_ISFE - Inconsistent-sync-field Error
LIN_VECT_PE - Parity Error
LIN_VECT_ID - ID Interrupt
LIN_VECT_PBE - Physical Bus Error
LIN_VECT_FE - Frame Error
LIN_VECT_BREAK - Break detect
LIN_VECT_CE - Checksum Error
LIN_VECT_OE - Overrun Error
LIN_VECT_BE - Bit Error
LIN_VECT_RX - Receive Interrupt
LIN_VECT_TX - Transmit Interrupt
LIN_VECT_NRE - No-response Error
LIN_VECT_TOAWUS - Timeout after wakeup signal
LIN_VECT_TOA3WUS - Timeout after 3 wakeup signals
LIN_VECT_TO - Timeout (Bus Idle)
- Note
The flags for the receive and the transmit interrupts cannot be cleared by reading the corresponding offset vector in this function.
- Return
Returns the interrupt vector offset for interrupt line 0.
-
uint16_t
LIN_getInterruptLine1Offset
(uint32_t base)¶ Gets the Interrupt Vector Offset for Line 1
In LIN and SCI mode, this function gets the offset for interrupt line 1. A read to the specified line register updates its value to the next highest priority pending interrupt in the flag register and clears the flag corresponding to the offset that was read.
- Parameters
base
: is the LIN module base address
The following are values that can be returned:
LIN_VECT_NONE - No Interrupt
LIN_VECT_WAKEUP - Wakeup
LIN_VECT_ISFE - Inconsistent-sync-field Error
LIN_VECT_PE - Parity Error
LIN_VECT_ID - ID Interrupt
LIN_VECT_PBE - Physical Bus Error
LIN_VECT_FE - Frame Error
LIN_VECT_BREAK - Break detect
LIN_VECT_CE - Checksum Error
LIN_VECT_OE - Overrun Error
LIN_VECT_BE - Bit Error
LIN_VECT_RX - Receive Interrupt
LIN_VECT_TX - Transmit Interrupt
LIN_VECT_NRE - No-response Error
LIN_VECT_TOAWUS - Timeout after wakeup signal
LIN_VECT_TOA3WUS - Timeout after 3 wakeup signals
LIN_VECT_TO - Timeout (Bus Idle)
- Note
The flags for the receive and the transmit interrupts cannot be cleared by reading the corresponding offset vector in this function.
- Return
Returns the interrupt vector offset for interrupt line 1.
-
void
LIN_enableMultibufferMode
(uint32_t base)¶ Enable Multi-buffer Mode
In LIN and SCI mode, this function enables the multi-buffer mode.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_disableMultibufferMode
(uint32_t base)¶ Disable Multi-buffer Mode
In LIN and SCI mode, this function disables the multi-buffer mode.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_setTransmitDelay
(uint32_t base, uint16_t delay)¶ Set Transmit Pin Delay
In LIN and SCI mode, this function sets the delay by which the value on the transmit pin is delayed so that the value on the receive pin is asynchronous.
- Parameters
base
: is the LIN module base addressdelay
: is number of clock delays for the Tx pin (0 to 7)
- Note
This is not applicable to the Start bit.
- Return
None.
-
void
LIN_setPinSampleMask
(uint32_t base, LIN_PinSampleMask mask)¶ Set Pin Sample Mask
In LIN and SCI mode, this function sets sample number at which the transmit pin value that is being transmitted will be inverted to verify the receive pin samples correctly with the majority detection circuitry. The
mask parameter can be one of the following values:LIN_PINMASK_NONE - No mask
LIN_PINMASK_CENTER - Invert Tx Pin value at T-bit center
LIN_PINMASK_CENTER_SCLK - Invert Tx Pin value at T-bit center + SCLK
LIN_PINMASK_CENTER_2SCLK - Invert Tx Pin value at T-bit center + 2 SCLK
- Parameters
base
: is the LIN module base addressmask
: is the pin sample mask to be set
- Return
None.
-
void
LIN_setDebugSuspendMode
(uint32_t base, LIN_DebugMode mode)¶ Set the Debug Suspended Mode
In LIN and SCI mode, this function sets how the module operates when the program is suspended and being debugged with an emulator. The
mode parameter can be one of the following values:LIN_DEBUG_FROZEN - The module state machine is frozen; transmissions and LIN counters are halted until debug mode is exited.
LIN_DEBUG_COMPLETE - The module continues to operate until the current transmit and receive functions are complete.
- Parameters
base
: is the LIN module base addressmode
: is the debug mode
- Return
None.
-
void
LIN_enableGlobalInterrupt
(uint32_t base, LIN_InterruptLine line)¶ Enables a LIN global interrupt.
In LIN and SCI mode, this function globally enables an interrupt corresponding to a specified interrupt line. The
line parameter can be one of the following enumerated values:- Parameters
base
: is the LIN module base addressline
: is specified interrupt vector line
LIN_INTERRUPT_LINE0 - Interrupt Vector Line 0
LIN_INTERRUPT_LINE1 - Interrupt Vector Line 1
- Return
None.
-
void
LIN_disableGlobalInterrupt
(uint32_t base, LIN_InterruptLine line)¶ Disables a LIN global interrupt.
In LIN and SCI mode, this function globally disables an interrupt corresponding to a specified interrupt line. The
line parameter can be one of the following enumerated values:- Parameters
base
: is the LIN module base addressline
: is specified interrupt vector line
LIN_INTERRUPT_LINE0 - Interrupt Vector Line 0
LIN_INTERRUPT_LINE1 - Interrupt Vector Line 1
- Return
None.
-
void
LIN_clearGlobalInterruptStatus
(uint32_t base, LIN_InterruptLine line)¶ Clears a LIN global interrupt flag.
In LIN and SCI mode, this function clears the global interrupt flag that corresponds to a specified interrupt line. The
line parameter can be one of the following enumerated values:- Parameters
base
: is the LIN module base addressline
: is specified interrupt vector line
LIN_INTERRUPT_LINE0 - Interrupt Vector Line 0
LIN_INTERRUPT_LINE1 - Interrupt Vector Line 1
- Return
None.
-
bool
LIN_getGlobalInterruptStatus
(uint32_t base, LIN_InterruptLine line)¶ Returns a LIN global interrupt flag status.
In LIN and SCI mode, this function returns the status of a global interrupt flag that corresponds to a specified interrupt line. The
line parameter can be one of the following enumerated values:- Parameters
base
: is the LIN module base addressline
: is specified interrupt vector line
LIN_INTERRUPT_LINE0 - Interrupt Vector Line 0
LIN_INTERRUPT_LINE1 - Interrupt Vector Line 1
- Return
Returns true if the interrupt flag is set. Return false if not.
-
void
LIN_initModule
(uint32_t base)¶ Initializes the LIN Driver
This function initializes the LIN module.
- Parameters
base
: is the LIN module base address
- Return
None.
-
void
LIN_sendData
(uint32_t base, uint16_t *data)¶ Send Data
In LIN mode only, this function sends a block of data pointed to by ‘data’. The number of data to transmit must be set with
LIN_setFrameLength() before.- Parameters
base
: is the LIN module base addressdata
: is the pointer to data to send
- Return
None.
-
void
LIN_getData
(uint32_t base, uint16_t *const data)¶ Read received data
In LIN mode only, this function reads a block of bytes and place it into the data buffer pointed to by ‘data’.
- Parameters
base
: is the LIN module base addressdata
: is the pointer to the data buffer
- Return
None.
-
The following describes important details and recommendations when using the LIN API.
Once system control enables the LIN module, LIN_initModule() needs to be called with the desired LIN module base to initialize the LIN with a set of default values and settings. Such settings include putting LIN in “LIN mode” as master, setting up the frame and timing values, and preparing the module for external communication.
LIN has the ability to operate as a SCI module instead of LIN when in “SCI mode”. Use the LIN_enableSCIMode() function to switch to “SCI mode”. The API is divided into three sets of functions: LIN only, SCI only, and both. The SCI-only functions state in their descriptions “SCI mode only” and have “SCI” in their function names such as =LIN_setSCICommMode(). They can only be used when operating in SCI mode. The LIN-only functions state in their descriptions “LIN mode only” and can only be used when operating in LIN mode. The functions that state in their descriptions “LIN and SCI mode” can be used regardless of which operating mode the module is in.
The code for this module is contained in driverlib/lin.c, with driverlib/lin.h containing the API declarations for use by applications.