Synergy Software Package User's Manual

Interface for CAN peripheral. More...

Data Structures

union  can_status_t
 
union  can_error_t
 
struct  can_callback_args_t
 
struct  can_bit_timing_cfg_t
 
struct  can_frame_t
 
struct  can_mailbox_t
 
struct  can_cfg_t
 
struct  can_api_t
 
struct  can_instance_t
 

Typedefs

typedef uint32_t can_id_t
 
typedef void can_ctrl_t
 

Enumerations

enum  can_event_t {
  CAN_EVENT_RX_COMPLETE, CAN_EVENT_TX_COMPLETE, CAN_EVENT_ERR_BUS_OFF, CAN_EVENT_BUS_RECOVERY,
  CAN_EVENT_ERR_PASSIVE, CAN_EVENT_ERR_WARNING, CAN_EVENT_MAILBOX_OVERWRITE_OVERRUN = 6, CAN_EVENT_MAILBOX_OVERRUN = 6
}
 
enum  can_mode_t {
  CAN_MODE_NORMAL, CAN_MODE_HALT, CAN_MODE_SLEEP, CAN_MODE_EXIT_SLEEP,
  CAN_MODE_RESET, CAN_MODE_LISTEN, CAN_MODE_LOOPBACK_INTERNAL, CAN_MODE_LOOPBACK_EXTERNAL
}
 
enum  can_id_mode_t { CAN_ID_MODE_STANDARD, CAN_ID_MODE_EXTENDED }
 
enum  can_frame_type_t { CAN_FRAME_TYPE_DATA, CAN_FRAME_TYPE_REMOTE }
 
enum  can_message_mode_t { CAN_MESSAGE_MODE_OVERWRITE, CAN_MESSAGE_MODE_OVERRUN }
 
enum  can_clock_source_t { CAN_CLOCK_SOURCE_PCLKB, CAN_CLOCK_SOURCE_CANMCLK }
 
enum  can_time_segment1_t {
  CAN_TIME_SEGMENT1_TQ4 = 3, CAN_TIME_SEGMENT1_TQ5, CAN_TIME_SEGMENT1_TQ6, CAN_TIME_SEGMENT1_TQ7,
  CAN_TIME_SEGMENT1_TQ8, CAN_TIME_SEGMENT1_TQ9, CAN_TIME_SEGMENT1_TQ10, CAN_TIME_SEGMENT1_TQ11,
  CAN_TIME_SEGMENT1_TQ12, CAN_TIME_SEGMENT1_TQ13, CAN_TIME_SEGMENT1_TQ14, CAN_TIME_SEGMENT1_TQ15,
  CAN_TIME_SEGMENT1_TQ16
}
 
enum  can_time_segment2_t {
  CAN_TIME_SEGMENT2_TQ2 = 1, CAN_TIME_SEGMENT2_TQ3, CAN_TIME_SEGMENT2_TQ4, CAN_TIME_SEGMENT2_TQ5,
  CAN_TIME_SEGMENT2_TQ6, CAN_TIME_SEGMENT2_TQ7, CAN_TIME_SEGMENT2_TQ8
}
 
enum  can_sync_jump_width_t { CAN_SYNC_JUMP_WIDTH_TQ1 = 0, CAN_SYNC_JUMP_WIDTH_TQ2, CAN_SYNC_JUMP_WIDTH_TQ3, CAN_SYNC_JUMP_WIDTH_TQ4 }
 
enum  can_mailbox_send_receive_t { CAN_MAILBOX_RECEIVE, CAN_MAILBOX_TRANSMIT }
 
enum  can_command_t { CAN_COMMAND_MODE_SWITCH = 1 }
 

Detailed Description

Interface for CAN peripheral.

Summary

The CAN interface provides common APIs for CAN HAL drivers. CAN interface supports following features.

Typedef Documentation

◆ can_ctrl_t

typedef void can_ctrl_t

CAN control block. Allocate an instance specific control block to pass into the CAN API calls.

Implemented as

◆ can_id_t

typedef uint32_t can_id_t

CAN Id

Enumeration Type Documentation

◆ can_clock_source_t

CAN Source Clock

Enumerator
CAN_CLOCK_SOURCE_PCLKB 

PCLB is the source of the CAN Clock.

CAN_CLOCK_SOURCE_CANMCLK 

CANMCLK is the source of the CAN Clock.

◆ can_command_t

CAN control commands.

Enumerator
CAN_COMMAND_MODE_SWITCH 

Switch CAN operating mode..

◆ can_event_t

CAN event codes

Enumerator
CAN_EVENT_RX_COMPLETE 

Receive complete event.

CAN_EVENT_TX_COMPLETE 

Transmit complete event.

CAN_EVENT_ERR_BUS_OFF 

Bus Off event.

CAN_EVENT_BUS_RECOVERY 

Bus Off Recovery event.

CAN_EVENT_ERR_PASSIVE 

Error Passive event.

CAN_EVENT_ERR_WARNING 

Error Warning event.

CAN_EVENT_MAILBOX_OVERWRITE_OVERRUN 

DEPRECATED, Mailbox has been overrun. This event is not used when the mailbox is overwritten.

CAN_EVENT_MAILBOX_OVERRUN 

Mailbox has been overrun.

◆ can_frame_type_t

CAN frame types

Enumerator
CAN_FRAME_TYPE_DATA 

Data frame type.

CAN_FRAME_TYPE_REMOTE 

Remote frame type.

◆ can_id_mode_t

CAN ID modes

Enumerator
CAN_ID_MODE_STANDARD 

Standard IDs of 11 bits used.

CAN_ID_MODE_EXTENDED 

Extended IDs of 29 bits used.

◆ can_mailbox_send_receive_t

CAN Mailbox type

Enumerator
CAN_MAILBOX_RECEIVE 

Mailbox is for receiving.

CAN_MAILBOX_TRANSMIT 

Mailbox is for sending.

◆ can_message_mode_t

CAN Message Modes

Enumerator
CAN_MESSAGE_MODE_OVERWRITE 

Receive data will be overwritten if not read before the next frame.

CAN_MESSAGE_MODE_OVERRUN 

Receive data will be retained until it is read.

◆ can_mode_t

enum can_mode_t

CAN Operation modes

Enumerator
CAN_MODE_NORMAL 

CAN Normal Mode.

CAN_MODE_HALT 

CAN Halt Mode.

CAN_MODE_SLEEP 

CAN SLEEP Mode.

CAN_MODE_EXIT_SLEEP 

CAN Exit SLEEP Mode.

CAN_MODE_RESET 

CAN Reset Mode.

CAN_MODE_LISTEN 

CAN Listen Mode.

CAN_MODE_LOOPBACK_INTERNAL 

CAN Internal Loopback Mode.

CAN_MODE_LOOPBACK_EXTERNAL 

CAN External Loopback Mode.

◆ can_sync_jump_width_t

CAN Synchronization Jump Width Time Quanta

Enumerator
CAN_SYNC_JUMP_WIDTH_TQ1 

Synchronization Jump Width setting for 1 Time Quanta.

CAN_SYNC_JUMP_WIDTH_TQ2 

Synchronization Jump Width setting for 2 Time Quanta.

CAN_SYNC_JUMP_WIDTH_TQ3 

Synchronization Jump Width setting for 3 Time Quanta.

CAN_SYNC_JUMP_WIDTH_TQ4 

Synchronization Jump Width setting for 4 Time Quanta.

◆ can_time_segment1_t

CAN Time Segment 1 Time Quanta

Enumerator
CAN_TIME_SEGMENT1_TQ4 

Time Segment 1 setting for 4 Time Quanta.

CAN_TIME_SEGMENT1_TQ5 

Time Segment 1 setting for 5 Time Quanta.

CAN_TIME_SEGMENT1_TQ6 

Time Segment 1 setting for 6 Time Quanta.

CAN_TIME_SEGMENT1_TQ7 

Time Segment 1 setting for 7 Time Quanta.

CAN_TIME_SEGMENT1_TQ8 

Time Segment 1 setting for 8 Time Quanta.

CAN_TIME_SEGMENT1_TQ9 

Time Segment 1 setting for 9 Time Quanta.

CAN_TIME_SEGMENT1_TQ10 

Time Segment 1 setting for 10 Time Quanta.

CAN_TIME_SEGMENT1_TQ11 

Time Segment 1 setting for 11 Time Quanta.

CAN_TIME_SEGMENT1_TQ12 

Time Segment 1 setting for 12 Time Quanta.

CAN_TIME_SEGMENT1_TQ13 

Time Segment 1 setting for 13 Time Quanta.

CAN_TIME_SEGMENT1_TQ14 

Time Segment 1 setting for 14 Time Quanta.

CAN_TIME_SEGMENT1_TQ15 

Time Segment 1 setting for 15 Time Quanta.

CAN_TIME_SEGMENT1_TQ16 

Time Segment 1 setting for 16 Time Quanta.

◆ can_time_segment2_t

CAN Time Segment 2 Time Quanta

Enumerator
CAN_TIME_SEGMENT2_TQ2 

Time Segment 2 setting for 2 Time Quanta.

CAN_TIME_SEGMENT2_TQ3 

Time Segment 2 setting for 3 Time Quanta.

CAN_TIME_SEGMENT2_TQ4 

Time Segment 2 setting for 4 Time Quanta.

CAN_TIME_SEGMENT2_TQ5 

Time Segment 2 setting for 5 Time Quanta.

CAN_TIME_SEGMENT2_TQ6 

Time Segment 2 setting for 6 Time Quanta.

CAN_TIME_SEGMENT2_TQ7 

Time Segment 2 setting for 7 Time Quanta.

CAN_TIME_SEGMENT2_TQ8 

Time Segment 2 setting for 8 Time Quanta.