DrvCan

Module -- DrvCan

1 References 2

2 Configuration Settings 2

2.1 DrvCan Configuration 2

2.2 Hw Configuration 5

3 Known Issues / Limitations With Configuration 6

4 Revision Control Log 7

References

  1. Vector CAN Driver Technical Reference V3.01.01 (TechnicalReference_CanDriver.pdf)

  2. Vector CAN Driver Technical Reference TI TMS470 DCAN v 1.03.02 (TechnicalReference_CAN_TMS470DCAN.pdf)

  3. TMS570LS Series Microcontroller Technical Reference Manual (TMS570 Tech Ref_spnu489.pdf)

Configuration Settings

DrvCan Configuration

Attribute NameValueRationale
Hw_Tms470DcanCpuCan
Errata Dcan22 iterations255Default setting
Common Driver Parameters
CANOnline / CANOffline NotificationNoDefault setting
DLC CheckAgainst minimum acceptance lengthDefault setting
Copy MechanismCopy all received bytesDefault setting
Sleep / Wake-up FunctionalityNoDefault setting
FullCAN Overrun NotificationYesDefault setting
Use Tx BitQueueYesDefault setting
Can Interrupt Control CallbacksNoDefault setting
Common Confirmation FunctionNoDefault setting
Rx NotificationNoDefault setting
Active / Passive StateNoDefault setting
Extended StatusNoDefault setting
Transmit QueueYesDefault setting
Tx ObservationNoDefault setting
Message Not Matched NotificationNoDefault setting
Overrun NotificationNoDefault setting
Hardware Loop CheckNoDefault setting
Partial Offline ModeYesDefault setting
Generic PrecopyNoDefault setting
CopyToCAN / CopyFromCAN ServiceNoDefault setting
CAN Cancel NotificationNoDefault setting
Offline Modes
To be completed
OSEK OS
OSEK OS Cat. 2 InterruptNo

This setting should be “Yes” because the driver is QM software, which means in the EPS system that it must be run in a user mode application. In order for the Os to appropriately configure the MPU and switch to user mode a category 2 interrupt is required.

This setting is “grayed out” and set to “No”. The current software implementation configures a Cat2 interrupt function which then simply calls the interrupt function as a workaround.

Polling
Polling TypeType Specific

Desired configuration is to provide interrupt processing only on Tx messages. The “Type Specific” setting provides a polling configuration granularity that allows this configuration.

“Individual” would also work, but has a finer configuration granularity that is more complex and is not necessary for this use case.

Rx BasicCAN PollingYesIn order to prevent excessive interrupt overhead, all Rx messages are to be processed on a polled basis.
Rx FullCAN PollingYesIn order to prevent excessive interrupt overhead, all Rx messages are to be processed on a polled basis.
Tx PollingNoIn order to provide maximum Tx bandwidth for XCP DAQ lists, Tx processing is performed on an interrupt basis.
Error PollingYesPoll the CAN controller for error indications in order to set an appropriate DTC and perform error recovery processing. Polling does no violate any known error reaction/error recovery response time requirement. Elimination of unnecessary ISR sources eliminates application issues arising from excessive IRQ’s pre-empting critical control processing tasks.
Low Level Messages Transmission
Low Level Transmit Cancel NotificationNoDefault setting
Low Level TransmissionNoDefault setting
Low Level Transmission Confirmation FunctionNoDefault setting
API
Symbolic Names for Signal ValuesYesDefault setting
Indexed ComponentNoDefault setting
General Settings
Security Level30Default setting
User Config Fileuser.cfgName of the file containing Nexteer user configuration settings for GENy generation.
Debug Support
AssertionsNone

Nexteer has no design in place to log the fatal failures in the event an assertion is triggered during development. Perhaps the assertions should be mapped to the Autosar Det. Until a design use case is determined, this feature is being disabled.

The production intended setting is “None” to reduce the driver operating overhead (i.e. runtime and program space) by eliminating unnecessary error checking in the final tested configuration.

Dynamic Tx Objects
IDNoDefault setting
DLCNoDefault setting
Data PointerNoDefault setting
ConfirmationNoDefault setting
PretransmitNoDefault setting
ID Search Algorithm
Search AlgorithmLinearDefault setting
Addtiional Memory [byte]0Default setting
Maximum Search Steps2Default setting
Rx Queue
Overrun NotificationNoDefault setting
Rx QueueNoDefault setting
Pre Rx Queue NotificationNoDefault setting
Size3Default setting

Hw Configuration

Attribute NameValueRationale
Configurable Options
CompilerTexasInstrumentsDefault setting
DerivativeTMS570PSFC66Default setting
General Settings
User Config FileNoneDefault setting
CPU Settings
CPU Type32 BitDefault setting
Byte OrderBig EndianDefault setting
Bit OrderMSB to LSBDefault setting
Definition of ‘Define C_COMP_xxx’TI_TMS470_DCANDefault setting
Definition of ‘Define C_PROCESSOR_xxx’TI_TMS470_PFSC66Default setting
Generation Additions
Dummy FunctionsNoDefault setting
Dummy StatementYesDefault setting
OS
OS TypeAutosarAn Autosar Os is used in this project.
Optimization
Atomic Bit Access in BitfieldNoDefault setting
Atomic Variable AccessAtomic32BitAccessThe TMS570 microcontroller performs 32 bit atomic data accesses.
Multiple GENy Projects
Default setting
Default setting
Generation Options
Disable generation of #error directivesNoDefault setting
Conditional GenerationNoDefault setting
VStdLib
  • Synch Mechanism

Lock MechanismOSEK

“Default” handling is NOT selected because the VStdLib default interrupt handling requires a privileged CPU mode of execution. The Nexteer use case is placing the Can drivers in a user mode application because they are QM rated drivers. Therefore the “Default” interrupt handling will not function properly and cannot be used.

“OSEK” Handling selected for compatibility with the Nexteer use case.

Lock LevelGlobalDefault setting
Nested DisableNoneDefault setting
Nested RestoreNoneDefault setting
Debug Support
AssertionsnoDefault setting

Known Issues / Limitations With Configuration

  1. None .


Revision Control Log

Item #Rev #Change DescriptionDateAuthor Initials
11.0Initial Creation30JUL13JJW
Last modified October 12, 2025: Initial commit (0347a62)