Automotive Two-Wire Connection

Introduction

The Automotive 2-wire Connection (A2C) is a serial communication controller designed for high-reliability automotive and industrial applications. This module implements the data link layer protocol of the ISO 11898-1 standard (excluding ISO 11898-1 FD), supporting multi-master communication, non-destructive arbitration, and robust error detection mechanisms.

Features

  • Fully compliant with the ISO 11898-1 protocol, supporting 11-bit standard frames and 29-bit extended frames.

  • Provides 16 independent message buffers with individually configurable payload size and direction. The top 4 buffers can be flexibly configured in FIFO mode.

  • Supports hardware timestamping for precise capture of message transmission and reception times.

  • Supports flexible message transmission and reception mechanisms, including event- or time-triggered transmission, and hardware auto-reply for remote frames.

  • Supports configurable automatic retransmission upon transmission failure or arbitration loss.

  • Supports receive DMA transfers with a configurable DMA interface to improve data throughput and further reduce CPU load.

  • Supports triple sampling mode at low bit rates to effectively filter bus glitches, enhancing noise immunity and communication robustness.

  • Features comprehensive error confinement and detection mechanisms, provides multiple error interrupt outputs, and supports error counter warning thresholds (default warning threshold: 96).

  • Supports low-power wakeup with digital filtering, enabling system wakeup via specific bus activity in sleep mode.

  • Provides loopback and silent modes for node self-testing, bus monitoring, and offline debugging.

Block Diagram

The following figure illustrates the internal architecture of the A2C controller, including the Protocol Core, Message Processor, Message Buffers, Wakeup Circuit, and Register Interface.

../../_images/block_diagram_of_one_a2c_module.svg

A2C Controller Block Diagram

  • Protocol Core: Executes the complete A2C underlying protocol logic, including bit timing control, frame parsing and assembly, clock division, and sampling mechanisms. The Protocol Core interacts with the Message Processor via a dedicated data and control interface to perform actual message transmission and reception.

  • Message Processor: Manages message scheduling and storage. It arbitrates RAM access between the APB bus and the Protocol Core to ensure data consistency. In the receive direction, it scans RAM to allocate storage space for incoming messages. In the transmit direction, it determines the next message to be transmitted based on priority. Additionally, the Message Processor supports hardware auto-reply or storage for remote frames.

  • Message Buffers: Dedicated internal SRAM space, managed by the Message Processor, used to buffer and store messages pending transmission and already received. Each A2C module contains 16 independently configurable message buffers.

  • Wakeup Circuit: Handles bus wakeup functionality. In low-power mode, it continuously monitors the Rx pin. Once a dominant (low) level is detected for a duration exceeding the predefined threshold, it triggers a wakeup signal to restore the A2C module and the entire system to the active state.

  • Register Interface: Allows the CPU to access the internal control and status registers of the A2C module for configuration, status querying, and interrupt management.

  • Transceiver: Typically located external to the controller, it converts the logic levels output by the Protocol Core into differential signals required by the physical bus, and converts bus differential signals back into logic levels for the controller to read.

Function Description

Protocol Frame Formats

According to the ISO 11898-1 standard, A2C supports four frame types: Data Frame, Remote Frame, Error Frame, and Overload Frame. Additionally, the Inter-Frame Space separates consecutive frames.

Data Frame

Data frames carry data payloads between nodes and are the most common frame type. A2C supports standard data frames (11-bit identifier) and extended data frames (29-bit identifier).

  • Standard Data Frame: Uses an 11-bit identifier (Base ID), with a maximum payload of 8 bytes.

    ../../_images/standard_data_frame.svg

    Standard Data Frame

  • Extended Data Frame: Uses a 29-bit identifier (Extended ID), distinguished from standard frames by the IDE bit.

    ../../_images/extended_data_frame.svg

    Extended Data Frame

A data frame consists of the following functional segments in sequential order:

  • Start of Frame (SOF): A single dominant bit marking the beginning of the frame, used for hard synchronization.

  • Arbitration Field: Contains the identifier (ID), RTR, IDE, and SRR bits. The ID determines the message priority; a lower numerical value indicates a higher priority.

  • Control Field: Contains the Data Length Code (DLC, 4 bits) and reserved bits. The DLC specifies the number of bytes in the data field (0 to 8).

  • Data Field: The payload, ranging from 0 to 8 bytes, transmitted MSB first.

  • CRC Field: Contains a 15-bit CRC sequence and a 1-bit recessive CRC delimiter, computed automatically by hardware.

  • ACK Field: The transmitter outputs a recessive bit; any node that has successfully received the frame responds with a dominant bit.

  • End of Frame (EOF): 7 consecutive recessive bits marking the end of the frame.

Remote Frame

Remote frames are used to request a specific node to transmit data. Their structure is similar to that of a data frame, but the RTR bit is recessive and there is no data field. Remote frames support both standard and extended formats.

../../_images/standard_remote_frame.svg

Standard Remote Frame

../../_images/extended_remote_frame.svg

Extended Remote Frame

Error Frame

An error frame is transmitted when a node detects a bus error to disrupt the current communication and notify other nodes. It consists of an error flag (6 bits) and an error delimiter (8 recessive bits). There are two types:

  • Active Error Flag: Transmitted by an error-active node, consisting of 6 consecutive dominant bits.

  • Passive Error Flag: Transmitted by an error-passive node, consisting of 6 consecutive recessive bits.

../../_images/active_error_frame.svg

Active Error Frame

../../_images/passive_error_frame.svg

Passive Error Frame

Overload Frame

An overload frame is used to request additional inter-frame delay. Its structure is similar to an active error frame, consisting of an overload flag (6 consecutive dominant bits) and an overload delimiter (8 recessive bits).

../../_images/overload_frame.svg

Overload Frame

Inter-Frame Space

The ISO 11898-1 standard defines the Inter-Frame Space, which separates a data frame or remote frame from any preceding frame. The Inter-Frame Space consists of the following phases:

  • Intermission: 3 consecutive recessive bits. During this period, no node is permitted to initiate a transmission.

  • Suspend: An error-passive node must wait an additional 8 recessive bit times after the intermission before participating in the next bus arbitration. Error-active nodes are not subject to this restriction.

  • Bus Idle: If no data transmission occurs after the intermission and suspend times have elapsed, the bus enters the idle state, at which point any node may initiate the next transmission.

../../_images/a2c_intermission.svg

Inter-Frame Space

备注

No inter-frame space is inserted before an error frame or an overload frame.

Clock Domains

Each A2C module has two clock domains: core_clk for primary A2C functions, and a low-frequency clock (OSC4M) for the wakeup circuit. The core_clk clock domain structure is shown below:

../../_images/core_clk_clock_domain.svg

Clock Source Selection

core_clk provides three selectable clock sources:

  • XTAL 40 MHz

  • USB PLL

  • SYS PLL

The clock source is selected via the cksl_a2c field in REG_LSYS_CKSL_GRP0: cksl_a2c = 0 selects XTAL (40 MHz), cksl_a2c = 1 selects USB PLL (default), and cksl_a2c = 3 selects SYS PLL.

  • If XTAL is selected (cksl_a2c = 0), the 40 MHz crystal oscillator clock is used directly as core_clk.

  • If a PLL is selected (USB PLL or SYS PLL), two additional parameters must be configured:

    • Clock enable (e.g., fen_usb_pll_a2c in REG_LSYS_CKD_FEN_USB_PLL)

    • Clock divider (e.g., ckd_usb_pll_a2c in REG_LSYS_CKD_USB_PLL_GRP0).

Bit Timing and Baud Rate

The chip provides two A2C modules. Bit timing parameters can be configured individually for each A2C node, supporting communication rates of up to 1 Mbit/s.

Bit Timing Decomposition

According to ISO 11898-1, a bit time is divided into four segments: Synchronization Segment (Sync_Seg), Propagation Segment (Prop_Seg), Phase Buffer Segment 1 (Phase_Seg1), and Phase Buffer Segment 2 (Phase_Seg2):

  • Sync_Seg: Fixed at 1 Tq. This is the expected position for bit level transitions, used to synchronize all nodes on the bus.

  • Prop_Seg: Compensates for signal propagation delay on the physical bus and internal hardware delay of the transceiver.

  • Phase_Seg1: A buffer segment before the sample point, which can be temporarily lengthened during resynchronization.

  • Phase_Seg2: A buffer segment after the sample point, which can be temporarily shortened during resynchronization.

A Time Quantum (Tq) is the minimum time unit in bit timing configuration. The length of all time segments is specified in units of Tq. The Tq duration is derived from core_clk divided by the Baud Rate Prescaler (BRP):

Tq = (a2c_brp + 1) / core_clk

The following figure shows the timing diagram of a complete bit time:

../../_images/bit_timing.svg

The controller samples the bus level at the boundary between Phase_Seg1 and Phase_Seg2 (the sample point). By adjusting the length of each segment, the sample point position within the bit time can be controlled. A complete bit time typically consists of 8 to 25 Tq. The Tq allocation rules for each segment are as follows:

Bit Time Segment Parameter Ranges

Parameter

Range

Description

Prescaler (BRP)

1 ~ 32

Tq = (a2c_brp + 1) / core_clk

Sync_Seg

1 Tq (Fixed)

Synchronizes all nodes on the bus

Prop_Seg

1 ~ 8 Tq

Compensates for physical delay times within the network

Phase_Seg1

1 ~ 8 Tq

Compensates for edge phase errors; can be lengthened during resync

Phase_Seg2

2 ~ 8 Tq

Compensates for edge phase errors; can be shortened during resync

SJW (Sync Jump Width)

1 ~ 4 Tq

May not exceed the lesser of Phase_Seg1 and Phase_Seg2

Bit Timing Register Configuration

Bit timing parameters are programmed via the A2C_BIT_TIMING register. To simplify configuration, the controller merges Prop_Seg and Phase_Seg1 into a2c_tseg1, while Phase_Seg2 corresponds to a2c_tseg2. Note that a2c_brp, a2c_tseg1, and a2c_tseg2 are 0-based register fields — the hardware internally adds 1 to obtain the actual divider or segment length. The register field mapping is as follows:

  • a2c_brp: Prescaler. Actual divider = a2c_brp + 1; Tq = (a2c_brp + 1) / core_clk.

  • a2c_tseg1: Merged segment (Prop_Seg + Phase_Seg1). Actual length = a2c_tseg1 + 1; register value = Prop_Seg + Phase_Seg1 - 1.

  • a2c_tseg2: Phase_Seg2. Actual length = a2c_tseg2 + 1; register value = Phase_Seg2 - 1.

  • a2c_sjw: Sync Jump Width. a2c_sjw = SJW (direct mapping, no offset).

The baud rate calculation formula is:

Baud Rate = core_clk / ((a2c_brp + 1) × (1 + (a2c_tseg1 + 1) + (a2c_tseg2 + 1)))

For example, with core_clk = 40 MHz, a2c_brp = 1, a2c_tseg1 = 14, and a2c_tseg2 = 3, the baud rate is 1 Mbit/s:

Baud Rate = 40 / ((1 + 1) × (1 + (14 + 1) + (3 + 1)))
          = 40 / (2 × 20)
          = 1 Mbit/s

The sample point position within the bit time can be calculated using the following formula:

Sample Point = (1 + a2c_tseg1 + 1) / (1 + (a2c_tseg1 + 1) + (a2c_tseg2 + 1))

In this configuration, the sample point is located at 80% of the bit time.

The following table lists reference configurations for commonly used baud rates with core_clk = 40 MHz:

Common Baud Rate Configuration Reference (core_clk = 40 MHz)

Baud Rate

a2c_brp

a2c_tseg1

a2c_tseg2

SJW

Sample Point

1 Mbit/s

1

14

3

1

80%

500 kbit/s

3

14

3

1

80%

250 kbit/s

7

14

3

1

80%

125 kbit/s

15

14

3

1

80%

Triple Sampling Mode

Setting a2c_tri_sample in A2C_CTL to 1 enables triple sampling mode. In this mode, the controller samples the input signal three times near the sample point, with each sample separated by 1 Tq. The final logic level is determined by a majority vote of the three sampled values. This effectively filters out signal glitches and improves communication robustness.

../../_images/triple_sample_mode.svg

备注

Triple sampling mode is recommended for low bit rates (below 125 kbit/s). At lower rates, each Tq has a longer duration, making the signal more susceptible to external interference. The triple sampling mechanism provides better filtering under such conditions.

Operating Modes

The A2C module supports three operating modes: Normal Mode, Sleep Mode, and Test Mode.

Normal Mode

This is the default operating mode. All submodules (Message Processor, RAM, Protocol Core, and Registers) operate collaboratively to perform message transmission and reception, error handling, and interrupt reporting.

Sleep Mode

In Sleep Mode, most submodules are clock-gated; only the wakeup circuit remains active. The A2C cannot transmit or receive any frames, and both the module and the system enter a low-power state.

Sleep mode is entered by setting a2c_sleep_en in A2C_SLEEP_MODE to 1. The A2C uses the low-frequency OSC4M clock to drive the wakeup circuit. The system must keep OSC4M active to support wakeup monitoring.

The wakeup circuit operates only in Sleep Mode. It monitors the duration of the dominant level (low level) on the Rx pin and compares it against a predefined threshold:

../../_images/block_of_wakeup_circuit.svg
  • If the low-level duration exceeds the threshold, a wakeup signal is generated to reactivate the A2C module and the entire system.

  • If the threshold is not exceeded, the module and the system remain in the sleep state.

警告

  • Wakeup detection is independent of the protocol frame content. The frame that triggers the wakeup cannot be received by the A2C. Whether subsequent data can be received depends on the sender's retransmission mechanism.

  • Before wakeup, ensure that the external transceiver is in its normal operating state rather than standby or sleep mode.

Test Mode

A2C provides two test modes: Silent Mode and Loopback Mode, primarily for node self-testing and bus debugging. To enter test mode, set test_mode_en in A2C_CTL to 1 to enable test functions, then select the specific test mode via a2c_test_cfg in A2C_TEST.

  1. Silent Mode: Also referred to as Bus Monitoring Mode in the ISO 11898-1 standard. In this mode, the A2C receives all frames on the bus normally but does not transmit any frames (including data and error frames) or ACK bits, and therefore does not affect the bus. This mode is commonly used for analyzing bus communication traffic.

    ../../_images/silence_mode.svg
  2. Loopback Mode: Used to verify the internal digital logic of the A2C controller. It is divided into External Loopback and Internal Loopback:

    • External Loopback: The frame is physically transmitted from the Tx pin onto the bus and can be captured by an external analyzer. The controller receives only frames from its own Tx end, ignoring all other frames on the bus.

    • Internal Loopback: The frame is looped back entirely within the A2C controller and is not output from the Tx pin to the external bus.

    ../../_images/external_loopback_left_and_internal_loopback_left.svg

    External Loopback Mode

    ../../_images/external_loopback_left_and_internal_loopback_right.svg

    Internal Loopback Mode

Message Processing and Buffer Management

The Message Processor reduces CPU load by taking over storage scheduling for message transmission and reception. It arbitrates RAM access between the CPU (APB bus) and the Protocol Core to ensure data consistency.

  • Transmit direction: Schedules pending messages for transmission based on priority.

  • Receive direction: Scans RAM and applies filtering and masking mechanisms to allocate storage space for received messages.

The architectural relationship between RAM, Message Processor, Protocol Core, and Registers is shown below:

../../_images/relationship_between_ram_message_processor_a2c_core_and_registers.svg

A2C uses registers such as A2C_RAM_ARB, A2C_RAM_MASK, A2C_RAM_CS, A2C_RAM_DATA, and A2C_MB_BA_END to manage message buffers.

Message Buffer Configuration

Each A2C module is equipped with an independent RAM (352 × 32 bits), logically divided into 16 message buffers (MB0 ~ MB15). Each buffer can store only one A2C message, with individually configurable space (default: 6 × 32 bits).

The base address of each buffer is set via a2c_msgx_ba in A2C_MBx_CTRL (word-aligned), and the valid RAM address range is defined by a2c_msg_ba_end in A2C_MB_BA_END.

For example, if a2c_msg0_ba in A2C_MB0_CTRL is 0x0 and a2c_msg1_ba in A2C_MB1_CTRL is 0x6, MB0 is allocated 6 × 32 bits of storage space.

Receive Filters

The Rx processor uses three types of receive filters for hardware-level message filtering. These filters can be flexibly combined to meet various application requirements.

  • Identifier (ID) Filter: a2c_ram_id (29 bits) in A2C_RAM_ARB defines the expected message ID, and a2c_ram_id_mask (29 bits) in A2C_RAM_MASK provides the corresponding mask:

    • A mask bit of 0 means the corresponding bit is not compared (i.e., don't care; always matches).

    • A mask bit of 1 means the corresponding bit in the received frame must strictly match a2c_ram_id.

    备注

    The filtering logic depends on the frame type:

    • Standard frames (11-bit Base ID): only bits [28:18] of a2c_ram_id are compared.

    • Extended frames (29-bit Extended ID): the full range of a2c_ram_id bits [28:0] is compared.

    For example, when receiving standard frames, if bits [28:18] of A2C_RAM_ARB are set to 0x1 and bits [28:18] of A2C_RAM_MASK are set to 0x7FC (the lowest two mask bits are 0), frames with Base IDs 0x00 through 0x03 will all be received.

  • Identifier Extension (IDE) Filter: a2c_ram_ide in A2C_RAM_ARB and a2c_ram_ide_mask in A2C_RAM_MASK control frame format filtering:

    • a2c_ram_ide_mask = 0: Frame format is not distinguished; both standard and extended frames are received.

    • a2c_ram_ide_mask = 1: Only frames whose IDE bit matches a2c_ram_ide are received.

    • a2c_ram_ide = 0 and a2c_ram_ide_mask = 1: Only standard frames are received.

    • a2c_ram_ide = 1 and a2c_ram_ide_mask = 1: Only extended frames are received.

  • Remote Transmission Request (RTR) Filter: a2c_ram_rtr_mask in A2C_RAM_MASK controls frame type filtering:

    • a2c_ram_rtr_mask = 0: Frame type is not distinguished; both data and remote frames are received.

    • a2c_ram_rtr_mask = 1: Only frames whose RTR bit matches a2c_ram_rtr in A2C_RAM_ARB are received.

Message Transmission and Reception Flow

  1. Transmission Flow: The Message Processor continuously scans all buffers in RAM to determine if there are messages pending for transmission, and decides the transmission order based on priority. When the bus is in an intermission, idle, or safe state, the selected message is transferred to the Protocol Core for physical transmission. The CPU configuration steps are as follows:

    1. Fill in the transmission parameters in the RAM interface registers: data (a2c_ram_data), ID (a2c_ram_id), and Data Length Code (a2c_ram_dlc).

    2. Set the RTR bit (a2c_ram_rtr) to specify the frame type, and set the IDE bit (a2c_ram_ide) to indicate the frame format.

    3. Set a2c_ram_rxtx in A2C_RAM_CS to 1, declaring this buffer for transmission.

    4. Write a command to A2C_RAM_CMD to trigger the transfer: set a2c_ram_dir = 1 (write operation), enable a2c_ram_buffer_en to activate the corresponding buffer, then set a2c_ram_start to 1 to initiate the hardware transfer. Upon completion, a2c_ram_start is automatically cleared by hardware.

    5. The corresponding a2c_msgx_tx_req in A2C_MBx_STS is set to 1, indicating the message is queued for transmission. Upon successful physical transmission, this bit is cleared and a2c_msgx_tx_done is simultaneously set to 1.

  2. Reception Flow: After a message passes the CRC check, the Message Processor scans all receive buffers, applying filter and mask logic to find a matching buffer. The payload is stored in the corresponding internal RAM location only if the message is received without errors. The CPU configuration steps are as follows:

    1. Write the desired ID (a2c_ram_id) and mask (a2c_ram_id_mask) into the RAM interface registers. For an exact match, all relevant bits in A2C_RAM_MASK should be set to 1.

    2. Configure the RTR and IDE bits and their corresponding mask bits as required.

    3. Clear a2c_ram_rxtx in A2C_RAM_CS to 0, declaring this buffer for reception.

    4. Write a command to A2C_RAM_CMD to commit the configuration.

    5. Once configured, the corresponding a2c_msgx_rx_rdy in A2C_MBx_STS is set to 1, indicating hardware readiness. When a new message is successfully matched and received, a2c_msgx_rx_vld is set to 1, notifying the CPU to read the new data. Simultaneously, the corresponding bit in the global status a2c_rx_done is asserted, requesting an interrupt to the CPU (if enabled).

Buffer Priority

The A2C controller provides 16 message buffers (MB0 ~ MB15). The priority rules are as follows:

  • Transmit Priority (Tx): Ascending order by buffer number; a smaller number implies higher priority.

  • Receive Priority (Rx): Descending order by buffer number; a larger number implies higher matching and storage priority.

This priority mechanism is entirely independent of message content and is automatically managed by hardware.

FIFO Mode

When the FIFO feature is enabled, the first four message buffers (MB12 ~ MB15) are reserved as a hardware FIFO. The Rx FIFO's filtering conditions (ID, IDE, RTR, and their masks) inherit from the configuration registers of MB12, and the associated Rx interrupts are triggered based on MB12. The FIFO has the highest priority in all Rx matching scheduling.

The logic block diagram of the Rx FIFO is shown below:

../../_images/block_of_rx_fifo.svg

A2C_FIFO_STS is used to monitor FIFO status. The state transitions are as follows:

  1. By default, the FIFO is empty (fifo_msg_empty = 1).

  2. When the FIFO successfully receives the first frame, fifo_msg_empty changes to 0, and fifo_msg_lvl increments to indicate the current FIFO depth.

  3. If the FIFO has stored 4 unread frames, fifo_msg_full is set to 1. At this point, no overflow has occurred yet (fifo_msg_overflow = 0).

  4. If a matching frame continues to be received while the FIFO is full, a rolling overwrite strategy is executed: the earliest received data (originally in MB12) is lost, the data in MB13 shifts to MB12, and so on, with the new message stored in MB15. An overflow error is simultaneously triggered (fifo_msg_overflow = 1).

DMA Transfer

The A2C module supports receiving data via DMA. DMA can transfer the contents of message buffers (including arbitration field, control field, and data field) to target memory addresses without CPU intervention.

../../_images/block_of_rx_dma_in_a2c.svg

DMA supports two flow control modes: DMA as the flow controller, or A2C as the flow controller. The two modes share identical configuration steps except for the a2c_rxdma_owner field value in A2C_RXDMA_CFG (0 for DMA, 1 for A2C).

DMA as Flow Controller

When DMA serves as the Flow Controller, the transfer beats are governed by DMA. The configuration steps are as follows:

  1. In A2C_RXDMA_CFG, set a2c_rxdma_owner = 0 and a2c_rxdma_src_msize = 1.

  2. In the target message buffer control register A2C_MBx_CTRL, set a2c_msgx_rxdma_en = 1 to enable the DMA function for that buffer.

  3. In A2C_CTL, set a2c_rxdma_en = 1 to globally enable the DMA function for A2C.

  4. Configure the DMA parameters: including source address, destination address, transfer direction, block size, and source burst size (src_msize). The src_msize in DMA must match a2c_rxdma_src_msize in the A2C register.

A2C as Flow Controller

When A2C acts as the flow controller and actively initiates DMA requests, the configuration steps are as follows:

  1. In A2C_RXDMA_CFG, set a2c_rxdma_owner = 1 and a2c_rxdma_src_msize = 1.

  2. In the target message buffer control register A2C_MBx_CTRL, set a2c_msgx_rxdma_en = 1 to enable the DMA function for that buffer.

  3. In A2C_CTL, set a2c_rxdma_en = 1 to globally enable the DMA function for A2C.

  4. Configure the DMA parameters. The src_msize in DMA must match a2c_rxdma_src_msize on the A2C side.

备注

  • Each DMA transfer targets only one message buffer.

  • The DMA source burst size (src_msize) must match a2c_rxdma_src_msize configured on the A2C side.

Error Detection and Management

According to the ISO 11898-1 specification, the Error Confinement mechanism detects communication faults on the bus in real-time and restricts severely faulty nodes from causing continuous interference to the bus network through state degradation.

The overall logic block diagram of error confinement is shown below:

../../_images/block_diagram_of_error_confinement.svg

Bit Stuffing

A2C signal synchronization relies on edge transitions. If a large number of consecutive bits of the same polarity appear in the data stream, the receiver cannot maintain synchronization. To address this, the protocol introduces bit stuffing:

  • Transmitter: When transmitting a data frame or remote frame, for the fields between SOF and the CRC field, upon detecting five consecutive bits of the same polarity, a stuff bit of the opposite polarity is automatically inserted.

  • Receiver: When receiving a data frame or remote frame, for the fields between SOF and the CRC field, if five consecutive bits of the same polarity are detected, the subsequent opposite-polarity bit is automatically removed. If the 6th bit has the same polarity as the preceding five, a stuff error is flagged.

Fixed-format fields after the CRC field (CRC delimiter, ACK field, and EOF) are not subject to bit stuffing.

Error Types

The A2C supports detection of the following five types of hardware protocol errors:

  • Bit Error: While transmitting a bit, the node monitors (reads back) the actual bus level. If the monitored level differs from the transmitted level (subject to specific exemption rules during the arbitration field or ACK field), a bit error is flagged.

  • Stuff Error: The node detects six consecutive bits of the same polarity, violating the bit stuffing rule.

  • CRC Error: The CRC checksum calculated by the receiver does not match the CRC field data in the received frame.

  • Form Error: A mandatory recessive level is not detected in fixed-format protocol fields (CRC delimiter, ACK delimiter, or EOF).

  • ACK Error: The transmitting node fails to sample any dominant ACK bit from receiving nodes during the ACK slot.

The following table summarizes the detection scope and error frame transmission timing for each error type:

Error Type Summary and Error Frame Transmission Timing

Error Type

Error Cause

Detection Scope

Error Frame TX Timing

Detection Unit

Bit Error

Transmitted level differs from readback

Data/Remote Frame (SOF ~ CRC), Error/Overload Frame flags

Immediately on the next bit

Transmitter

Stuff Error

6 consecutive bits of same polarity

Data/Remote Frame (SOF ~ CRC sequence)

Immediately on the next bit

Receiver

CRC Error

CRC checksum mismatch

Data/Remote Frame (CRC sequence)

After the ACK delimiter

Receiver

Form Error

Mandatory recessive level not detected in fixed-format field

Data/Remote Frame (CRC delimiter, ACK delimiter, first 6 bits of EOF), Error/Overload delimiter

Immediately on the next bit (at the CRC delimiter, treated as CRC error; sent after ACK delimiter)

Transmitter / Receiver

ACK Error

Dominant level not detected in ACK slot

Data/Remote Frame (ACK slot)

After the ACK delimiter

Transmitter

备注

  • A bit error is not flagged under the following conditions: during the ID arbitration phase, transmitting a 1 but reading back a 0 is considered arbitration loss; during the ACK slot, if the transmitter outputs a recessive bit and reads back a recessive level, it is not a bit error; during transmission of a passive error flag, reading back a dominant bit is not a bit error.

  • When a dominant bit is detected on the last bit of the EOF, an overload frame is transmitted instead of an error frame.

Error Detection Scope

According to ISO 11898-1, each error type has a specific detection interval during message transmission and reception.

Error detection scope for a standard data frame during transmission:

../../_images/error_scope_of_standard_data_frame_in_transmission.svg

Error detection scope for a standard remote frame during transmission:

../../_images/error_scope_of_standard_remote_frame_in_transmission.svg

Error detection scope for an error frame during transmission:

../../_images/error_scope_of_error_frame_in_transmission.svg

Error detection scope for a standard data frame during reception:

../../_images/error_scope_of_standard_data_frame_in_reception.svg

Error detection scope for a standard remote frame during reception:

../../_images/error_scope_of_standard_remote_frame_in_reception.svg

Error detection scope for an error frame during reception:

../../_images/error_scope_of_error_frame_in_reception.svg

Error States and Counters

The A2C internally maintains two hardware error counters: Transmit Error Counter (TEC) and Receive Error Counter (REC). These counters dynamically increment or decrement according to protocol rules upon errors or successful transmissions/receptions, representing the current health state of the node.

Counter thresholds directly determine the error state of the node. The state transition diagram is shown below:

../../_images/error_states.svg

The behavioral characteristics of the three error states are as follows:

  • Error-Active: TEC ≤ 127 and REC ≤ 127. The node participates normally in bus communication. Upon detecting an error, it immediately transmits an active error flag (6 dominant bits).

  • Error-Passive: TEC > 127 or REC > 127. The node can still communicate, but upon detecting an error, it transmits only a passive error flag (6 recessive bits), which does not interfere with other nodes. As a transmitter, an additional 8 recessive-bit Suspend period must be inserted between consecutive transmissions.

  • Bus-Off: TEC > 255. The node is forcibly disconnected from the bus by hardware and cannot transmit or receive any data.

The counting rules for TEC and REC are shown in the following table. Counter changes are triggered at the first bit of the detected error flag. A single message transfer may satisfy multiple conditions simultaneously, and counter values may be adjusted multiple times.

TEC and REC Error Counting Rules

No.

Trigger Condition

TEC

REC

1

Receiver detects an error (except when the receiver detects a bit error during transmission of an active error flag or overload flag).

+1

2

The first bit after the receiver finishes sending an error flag is dominant.

+8

3

Transmitter sends an error flag.

+8

4

Transmitter detects a bit error during transmission of an active error flag or overload flag.

+8

5

Receiver detects a bit error during transmission of an active error flag or overload flag.

+8

6

Any node detects excessive consecutive dominant bits after sending an error flag or overload flag:

  • 14 consecutive dominant bits after an active error/overload flag;

  • or 8 consecutive dominant bits after a passive error flag;

  • and every additional 8 consecutive dominant bits thereafter.

+8

+8

7

Transmitter successfully transmits a frame (ACK received and no errors until the end of EOF).

If > 0, then -1;

if = 0, unchanged

8

Receiver successfully receives a frame (no errors before the ACK slot and dominant ACK bit successfully sent).

If 1 ≤ REC ≤ 127, then -1;

if = 0, unchanged;

if > 127, set to 119 ~ 127

9

Bus-Off recovery (128 × 11 consecutive recessive bits detected)

Set to 0

Set to 0

备注

The third item has an exception(TEC unchanged):

  • The transmitter is error-passive, the ACK error occurs because no dominant bit is detected in the ACK slot, and no dominant bit is detected during transmission of the passive error flag.

  • The transmitter sends an error flag due to a stuff error during arbitration (unless the violating bit should have been recessive but was monitored as dominant, in which case TEC still increments by 8).

Bus-Off and Recovery

When TEC exceeds 255, the controller enters the Bus-Off state, and the node cannot transmit or receive any data.

The recovery condition is as follows: the controller must detect 128 occurrences of 11 consecutive recessive bit sequences (i.e., 128 bus idle cycles) while in the Bus-Off state, and only after software actively initiates a recovery request (write A2C_BIT_BUS_ON_REQ of A2C_CTL) will the hardware execute the recovery sequence to switch the node back to the error-active state. The current state can be polled via bus_on_state in A2C_STS.

The Bus-Off and recovery mechanism is shown below:

../../_images/bus_off_and_bus_off_recovery.svg

Registers

Base Address: 0x41005000

Name

Address offset

Access

Description

REG_A2C_CTL

000h

R/W

Controls the fundamental operations and modes of the A2C bus

REG_A2C_STS

004h

R

Indicates the overall operational state of the bus

REG_A2C_FIFO_STS

008h

R

Monitors the status of the RX FIFO

REG_A2C_BIT_TIMING

00Ch

R/W

Configures the standard A2C 2.0 bit timing parameters (BRP, SJW, TSEG1, TSEG2)

REG_A2C_INT_EN

018h

R/W

A global switch to enable or mask various A2C system interrupts

REG_A2C_MB_RXINT_EN

01Ch

R/W

Enables or disables receive (RX) interrupts individually for each of the 16 message buffers.

REG_A2C_MB_TXINT_EN

020h

R/W

Enables or disables transmit (TX) interrupts individually for each of the 16 message buffers.

REG_A2C_INT_FLAG

024h

R/W

Stores the status flags that indicate which specific event (TX, RX, error, etc.) triggered an interrupt.

REG_A2C_ERR_STATUS

028h

R/W

Provides detailed diagnostics on the type of bus error that occurred

REG_A2C_ERR_CNT_CTL

02Ch

R/W

Sets the threshold for error warnings and provides a mechanism to clear the internal transmit/receive error counters.

REG_A2C_ERR_CNT_STS

030h

R

Displays the current numeric values of the Transmit Error Count (TEC) and Receive Error Count (REC), as well as node states (Warning, Passive, Bus-off)

REG_A2C_TX_ERROR_FLAG

034h

R/W

Flags which specific message buffer encountered an error during its transmission attempt.

REG_A2C_TX_DONE

038h

R/W

Flags which specific message buffer has successfully completed its transmission.

REG_A2C_RX_DONE

03Ch

R/W

Flags which specific message buffer has successfully received a new message.

REG_A2C_TIME_STAMP

040h

R/W

Manages the internal counter used to apply timestamps to received/transmitted messages, including its prescaler.

REG_A2C_MB_TRIGGER

044h

R/W

Sets up a timer-based trigger mechanism to schedule message transmissions within a specific time window.

REG_A2C_RXDMA_CFG

048h

R/W

Configures how the RX Direct Memory Access (DMA) operates

REG_A2C_RX_DMA_DATA

04Ch

R

Acts as the data port from which the DMA controller reads received message payloads.

REG_A2C_SLEEP_MODE

050h

R/W

Manages low-power sleep states, and configures the digital filter for the wakeup pin.

REG_A2C_TEST

054h

R/W

Enables special diagnostic modes, such as silent mode or internal/external loopback testing

REG_A2C_MB0_STS

100h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB1_STS

104h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB2_STS

108h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB3_STS

10Ch

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB4_STS

110h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB5_STS

114h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB6_STS

118h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB7_STS

11Ch

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB8_STS

120h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB9_STS

124h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB10_STS

128h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB11_STS

12Ch

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB12_STS

130h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB13_STS

134h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB14_STS

138h

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB15_STS

13Ch

R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

REG_A2C_MB0_CTRL

200h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB1_CTRL

204h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB2_CTRL

208h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB3_CTRL

20Ch

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB4_CTRL

210h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB5_CTRL

214h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB6_CTRL

218h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB7_CTRL

21Ch

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB8_CTRL

220h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB9_CTRL

224h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB10_CTRL

228h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB11_CTRL

22Ch

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB12_CTRL

230h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB13_CTRL

234h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB14_CTRL

238h

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB15_CTRL

23Ch

R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

REG_A2C_MB_BA_END

2F0h

R/W

Defines the ending boundary address in RAM allocated for message buffers.

REG_A2C_RAM_FDDATA_15

300h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_14

304h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_13

308h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_12

30Ch

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_11

310h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_10

314h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_9

318h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_8

31Ch

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_7

320h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_6

324h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_5

328h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_4

32Ch

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_3

330h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_2

334h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_1

338h

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_FDDATA_0

33Ch

R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the RAM.

REG_A2C_RAM_ARB

340h

R/W

Configures the message identifier (ID), format (IDE), and frame type (RTR) for a message buffer being written to or read from RAM.

REG_A2C_RAM_MASK

344h

R/W

Configures the acceptance filter masks, defining which bits of an incoming message ID must match to be accepted into the buffer.

REG_A2C_RAM_CS

348h

R/W

Configures control and status attributes of the message, such as Data Length Code (DLC), FD flags (BRS, EDL), and direction (TX/RX).

REG_A2C_RAM_CMD

34Ch

R/W

Executes the command to transfer data between the A2C_RAM_* registers and the actual internal SRAM for a specified message buffer.

REG_A2C_DBG_PORT

3F8h

R/W

Selects and enables internal hardware signals to be routed to debug pins for hardware troubleshooting.

REG_A2C_DUMMY

3FCh

R/W

A reserved placeholder register used for hardware alignment or future expansion.

REG_A2C_CTL

  • Name: A2C bus control register

  • Size: 32

  • Address offset: 000h

  • Read/write access: R/W

Controls the fundamental operations and modes of the A2C bus

31:10 RSVD 9 A2C_FD_SSP_AUTO 8 A2C_FD_CRC_MODE 7 A2C_RXDMA_EN 6 A2C_FD_EN 5 RX_FIFO_EN 4 TEST_MODE_EN 3 AUTO_RE_TX_EN 2 A2C_TRI_SAMPLE 1 BUS_ON_REQ 0 A2C_EN

Bit

Symbol

Access

INI

Description

31:10

RSVD

R

-

Reserved

9

A2C_FD_SSP_AUTO

R/W

0x0

Automatic calculat ssp delay, ssp = second sample point

8

A2C_FD_CRC_MODE

R/W

0x0

Crc mode select

  • 0: ISO crc

  • 1: non-ISO crc

7

A2C_RXDMA_EN

R/W

0x0

Rx dma enable

6

A2C_FD_EN

R/W

0x0

Enable A2C FD protocol

5

RX_FIFO_EN

R/W

0x0

Rx fifo function enable

4

TEST_MODE_EN

R/W

0x0

Test mode enable, for lbk or silent mode use

3

AUTO_RE_TX_EN

R/W

0x0

Auto re-transmission enabled

2

A2C_TRI_SAMPLE

R/W

0x0

Triple sample mode

1

BUS_ON_REQ

R/W

0x0

Request to bus_on

0

A2C_EN

R/W

0x0

A2c enable

REG_A2C_STS

  • Name: A2C bus status

  • Size: 32

  • Address offset: 004h

  • Read/write access: R

Indicates the overall operational state of the bus

31:1 RSVD 0 BUS_ON_STATE

Bit

Symbol

Access

INI

Description

31:1

RSVD

R

-

Reserved

0

BUS_ON_STATE

R

0x0

Bus state

  • 1 means the a2c module is already bus on

  • 0 means the a2c module is busoff

REG_A2C_FIFO_STS

  • Name: A2C bus FIFO status

  • Size: 32

  • Address offset: 008h

  • Read/write access: R

Monitors the status of the RX FIFO

31:7 RSVD 6:4 FIFO_MSG_LVL 3 RSVD 2 FIFO_MSG_OVERFLOW 1 FIFO_MSG_EMPTY 0 FIFO_MSG_FULL

Bit

Symbol

Access

INI

Description

31:7

RSVD

R

-

Reserved

6:4

FIFO_MSG_LVL

R

0x0

Rx fifo message level

3

RSVD

R

-

Reserved

2

FIFO_MSG_OVERFLOW

R

0x0

Rx fifo overflow

1

FIFO_MSG_EMPTY

R

0x1

Rx fifo empty

0

FIFO_MSG_FULL

R

0x0

Rx fifo full

REG_A2C_BIT_TIMING

  • Name: A2C2.0 bit timing

  • Size: 32

  • Address offset: 00Ch

  • Read/write access: R/W

Configures the standard A2C 2.0 bit timing parameters (BRP, SJW, TSEG1, TSEG2)

31:24 A2C_BRP 23:19 RSVD 18:16 A2C_SJW 15:8 A2C_TSEG2 7:0 A2C_TSEG1

Bit

Symbol

Access

INI

Description

31:24

A2C_BRP

R/W

0x0

A2C bit timing perscaler = <$bit:a2c_brp>+1

23:19

RSVD

R

-

Reserved

18:16

A2C_SJW

R/W

0x0

SJW length = <$bit:a2c_sjw>

15:8

A2C_TSEG2

R/W

0x0

TSEG2 length = <$bit:a2c_tseg2+1>

7:0

A2C_TSEG1

R/W

0x0

TSEG1 length = <$bit:a2c_tseg1+1>

REG_A2C_INT_EN

  • Name: A2C interrupt control

  • Size: 32

  • Address offset: 018h

  • Read/write access: R/W

A global switch to enable or mask various A2C system interrupts

31:22 RSVD 21 RAM_MOVE_DONE_INT_MASK 20 BUSOFF_INT_MASK 19 WAKEUP_INT_MASK 18 ERROR_INT_MASK 17 RX_INT_MASK 16 TX_INT_MASK 15:6 RSVD 5 RAM_MOVE_DONE_INT_EN 4 BUSOFF_INT_EN 3 WAKEUP_INT_EN 2 ERROR_INT_EN 1 RX_INT_EN 0 TX_INT_EN

Bit

Symbol

Access

INI

Description

31:22

RSVD

R

-

Reserved

21

RAM_MOVE_DONE_INT_MASK

R/W

0x0

Ram move done interrupt mask

  • 1: mask

  • 0: unmask

20

BUSOFF_INT_MASK

R/W

0x0

Wakeup interrupt mask

  • 1: mask

  • 0: unmask

19

WAKEUP_INT_MASK

R/W

0x0

Wakeup interrupt mask

  • 1: mask

  • 0: unmask

18

ERROR_INT_MASK

R/W

0x0

Error interrupt mask

  • 1: mask

  • 0: unmask

17

RX_INT_MASK

R/W

0x0

Rx interrupt mask

  • 1: mask

  • 0: unmask

16

TX_INT_MASK

R/W

0x0

Tx interrupt mask

  • 1: mask

  • 0: unmask

15:6

RSVD

R

-

Reserved

5

RAM_MOVE_DONE_INT_EN

R/W

0x0

Ram move done interrupt enable

4

BUSOFF_INT_EN

R/W

0x0

Wakeup interrupt enbale

3

WAKEUP_INT_EN

R/W

0x0

Wakeup interrupt enbale

2

ERROR_INT_EN

R/W

0x0

Error interrupt enable

1

RX_INT_EN

R/W

0x0

Rx interrupt enable

0

TX_INT_EN

R/W

0x0

Tx interrupt enable

REG_A2C_MB_RXINT_EN

  • Name: A2C rx interrupt for message buffers

  • Size: 32

  • Address offset: 01Ch

  • Read/write access: R/W

Enables or disables receive (RX) interrupts individually for each of the 16 message buffers.

31:16 RSVD 15:0 A2C_MB_RXINT_EN

Bit

Symbol

Access

INI

Description

31:16

RSVD

R

-

Reserved

15:0

A2C_MB_RXINT_EN

R/W

0x0

Rx interrupt enable for each message buffer

REG_A2C_MB_TXINT_EN

  • Name: A2C tx interrupt for message buffers

  • Size: 32

  • Address offset: 020h

  • Read/write access: R/W

Enables or disables transmit (TX) interrupts individually for each of the 16 message buffers.

31:16 RSVD 15:0 A2C_MB_TXINT_EN

Bit

Symbol

Access

INI

Description

31:16

RSVD

R

-

Reserved

15:0

A2C_MB_TXINT_EN

R/W

0x0

Tx interrupt enable for each message buffer

REG_A2C_INT_FLAG

  • Name: A2C interrupt flags

  • Size: 32

  • Address offset: 024h

  • Read/write access: R/W

Stores the status flags that indicate which specific event (TX, RX, error, etc.) triggered an

interrupt.

31:6 RSVD 5 RAM_MOVE_DONE_INT_FLAG 4 BUSOFF_INT_FLAG 3 WAKEUP_INT_FLAG 2 ERROR_INT_FLAG 1 RX_INT_FLAG 0 TX_INT_FLAG

Bit

Symbol

Access

INI

Description

31:6

RSVD

R

-

Reserved

5

RAM_MOVE_DONE_INT_FLAG

R/W

0x0

Data move from register to A2C IP internal RAM finished interupt, move from RAM to register done will NOT generate interrupt, write one to clear

4

BUSOFF_INT_FLAG

R/W

0x0

Busoff interrupt flag, write one to clear

3

WAKEUP_INT_FLAG

R/W

0x0

Wakeup interrupt flag, write one to clear

2

ERROR_INT_FLAG

R/W

0x0

Error interrupt flag, write to clear

1

RX_INT_FLAG

R/W

0x0

Rx interrupt flag, write to clear

0

TX_INT_FLAG

R/W

0x0

Tx interrupt flag, write to clear

REG_A2C_ERR_STATUS

  • Name: A2C error status

  • Size: 32

  • Address offset: 028h

  • Read/write access: R/W

Provides detailed diagnostics on the type of bus error that occurred

31:10 RSVD 9 A2C_ERROR_RX 8 A2C_ERROR_TX 7:6 RSVD 5 A2C_ERROR_ACK 4 A2C_ERROR_STUFF 3 A2C_ERROR_CRC 2 A2C_ERROR_FORM 1 A2C_ERROR_BIT1 0 A2C_ERROR_BIT0

Bit

Symbol

Access

INI

Description

31:10

RSVD

R

-

Reserved

9

A2C_ERROR_RX

R/W

0x0

A2c rx error flag

8

A2C_ERROR_TX

R/W

0x0

A2c tx error flag

7:6

RSVD

R

-

Reserved

5

A2C_ERROR_ACK

R/W

0x0

Latest error is ack error

4

A2C_ERROR_STUFF

R/W

0x0

Latest error is stuff error

3

A2C_ERROR_CRC

R/W

0x0

Latest error is ctc error

2

A2C_ERROR_FORM

R/W

0x0

Latest error is form error

1

A2C_ERROR_BIT1

R/W

0x0

Latest error is bit1 error, tx=1 but rx=0

0

A2C_ERROR_BIT0

R/W

0x0

Latest error is bit0 error, tx=0 but rx=1

REG_A2C_ERR_CNT_CTL

  • Name: A2C bus error counter control

  • Size: 32

  • Address offset: 02Ch

  • Read/write access: R/W

Sets the threshold for error warnings and provides a mechanism to clear the internal

transmit/receive error counters.

31:17 RSVD 16:8 A2C_ERROR_WARN_TH 7:2 RSVD 1 RX_ERR_CNT_CLR 0 TX_ERR_CNT_CLR

Bit

Symbol

Access

INI

Description

31:17

RSVD

R

-

Reserved

16:8

A2C_ERROR_WARN_TH

R/W

0x60

Error counter warning threshold, programable, default 96. NOTES: 0~127 is availaible to both TEC and REC, 128~255 is only available to TEC

7:2

RSVD

R

-

Reserved

1

RX_ERR_CNT_CLR

R/W

0x0

Write 1 to clear a2c_rec

0

TX_ERR_CNT_CLR

R/W

0x0

Write 1 to clear a2c_tec

REG_A2C_ERR_CNT_STS

  • Name: A2C bus error counter status

  • Size: 32

  • Address offset: 030h

  • Read/write access: R

Displays the current numeric values of the Transmit Error Count (TEC) and Receive Error Count (REC),

as well as node states (Warning, Passive, Bus-off)

31 RSVD 30 A2C_ERROR_WARNING 29 A2C_ERROR_BUSOFF 28 A2C_ERROR_PASSIVE 27:25 RSVD 24:16 A2C_REC 15:9 RSVD 8:0 A2C_TEC

Bit

Symbol

Access

INI

Description

31

RSVD

R

-

Reserved

30

A2C_ERROR_WARNING

R

0x0

Error counter arrive at warning threshold

29

A2C_ERROR_BUSOFF

R

0x0

Error counter arrive at bus off level

28

A2C_ERROR_PASSIVE

R

0x0

Error counter arrive at error passive level

27:25

RSVD

R

-

Reserved

24:16

A2C_REC

R

0x0

Receive error count

15:9

RSVD

R

-

Reserved

8:0

A2C_TEC

R

0x0

Transmit error count

REG_A2C_TX_ERROR_FLAG

  • Name: A2C tx error flag for each message buffe

  • Size: 32

  • Address offset: 034h

  • Read/write access: R/W

Flags which specific message buffer encountered an error during its transmission attempt.

31:16 RSVD 15:0 A2C_TX_ERROR_FLAG

Bit

Symbol

Access

INI

Description

31:16

RSVD

R

-

Reserved

15:0

A2C_TX_ERROR_FLAG

R/W

0x0

Indicate which message tx buffer have error detected, cpu a2c write 1 to clear

REG_A2C_TX_DONE

  • Name: A2C tx done for message buffers

  • Size: 32

  • Address offset: 038h

  • Read/write access: R/W

Flags which specific message buffer has successfully completed its transmission.

31:16 RSVD 15:0 A2C_TX_DONE

Bit

Symbol

Access

INI

Description

31:16

RSVD

R

-

Reserved

15:0

A2C_TX_DONE

R/W

0x0

Tx done for each message buffer

REG_A2C_RX_DONE

  • Name: A2C rx done for message buffers

  • Size: 32

  • Address offset: 03Ch

  • Read/write access: R/W

Flags which specific message buffer has successfully received a new message.

31:16 RSVD 15:0 A2C_RX_DONE

Bit

Symbol

Access

INI

Description

31:16

RSVD

R

-

Reserved

15:0

A2C_RX_DONE

R/W

0x0

Rx done for each message buffer

REG_A2C_TIME_STAMP

  • Name: Timestamp function

  • Size: 32

  • Address offset: 040h

  • Read/write access: R/W

Manages the internal counter used to apply timestamps to received/transmitted messages, including

its prescaler.

31 A2C_TIME_STAMP_EN 30:24 RSVD 23:16 A2C_TIME_STAMP_DIV 15:0 A2C_TIME_STAMP

Bit

Symbol

Access

INI

Description

31

A2C_TIME_STAMP_EN

R/W

0x0

Time stamp function enable and time stamp counter start

30:24

RSVD

R

-

Reserved

23:16

A2C_TIME_STAMP_DIV

R/W

0x0

Timer stamp conter prescalar

15:0

A2C_TIME_STAMP

R

0x0

Time stamp counter value, up count

REG_A2C_MB_TRIGGER

  • Name: A2C tx trigger by timer configuration

  • Size: 32

  • Address offset: 044h

  • Read/write access: R/W

Sets up a timer-based trigger mechanism to schedule message transmissions within a specific time

window.

31:25 RSVD 24 TX_TRIGGER_EN 23:16 TX_TRIGGER_CLOSE_OFFSET 15:0 TX_TRIGGER_BEGIN

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

TX_TRIGGER_EN

R/W

0x0

End of message buffer base address in RAM

23:16

TX_TRIGGER_CLOSE_OFFSET

R/W

0x0

End of trigger time = <$bit:tx_trigger_begin> + <$bit:tx_trigger_close_offset>

15:0

TX_TRIGGER_BEGIN

R/W

0x0

Start of trigger time

REG_A2C_RXDMA_CFG

  • Name: RX dma configuration

  • Size: 32

  • Address offset: 048h

  • Read/write access: R/W

Configures how the RX Direct Memory Access (DMA) operates

31:25 RSVD 24 A2C_RXDMA_OWNER 23:18 RSVD 17:16 A2C_RXDMA_SRC_MSIZE 15:14 RSVD 13:0 A2C_RXDMA_FRAME_SIZE

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_RXDMA_OWNER

R/W

0x0

A2c rxdma owner is :

  • 0:GDMA

  • 1:A2C

23:18

RSVD

R

-

Reserved

17:16

A2C_RXDMA_SRC_MSIZE

R/W

0x1

Rx dma burst size:

  • 'b00: dma burst size=1

  • 'b01: dma burst size=4

  • 'b10: dma burst size=8

  • 'b11: dma burst size=16

15:14

RSVD

R

-

Reserved

13:0

A2C_RXDMA_FRAME_SIZE

R

0x2

A2c rx dma data frame size = ceil(<rx_dma_data bytes number>/4 ), for example: rx_dma_data is 9~12 bytes, frame size is 3

REG_A2C_RX_DMA_DATA

  • Name: Register for dma access message buffe

  • Size: 32

  • Address offset: 04Ch

  • Read/write access: R

Acts as the data port from which the DMA controller reads received message payloads.

31:0 A2C_RX_DMA_DATA

Bit

Symbol

Access

INI

Description

31:0

A2C_RX_DMA_DATA

R

0x0

For DMA read received data

REG_A2C_SLEEP_MODE

  • Name: sleep mode request and wakeup pin digital filter

  • Size: 32

  • Address offset: 050h

  • Read/write access: R/W

Manages low-power sleep states, and configures the digital filter for the wakeup pin.

31:18 RSVD 17 A2C_SLEEP_STATE 16 A2C_SLEEP_EN 15:9 RSVD 8 A2C_WAKEPIN_FLT_EN 7:0 A2C_WAKEPIN_FLT_LENGTH

Bit

Symbol

Access

INI

Description

31:18

RSVD

R

-

Reserved

17

A2C_SLEEP_STATE

R

0x0

A2c is sleep or not

  • 1: is

  • 0: isn't

16

A2C_SLEEP_EN

R/W

0x0

A2c sleep enable

  • 1:request a2c to sleep mode

  • 0:wakeup a2c

15:9

RSVD

R

-

Reserved

8

A2C_WAKEPIN_FLT_EN

R/W

0x0

Wakeup pin digital filter enable

7:0

A2C_WAKEPIN_FLT_LENGTH

R/W

0x1

Wakeup pin digital filter length

REG_A2C_TEST

  • Name: test configuration

  • Size: 32

  • Address offset: 054h

  • Read/write access: R/W

Enables special diagnostic modes, such as silent mode or internal/external loopback testing

31:2 RSVD 1:0 A2C_TEST_CFG

Bit

Symbol

Access

INI

Description

31:2

RSVD

R

-

Reserved

1:0

A2C_TEST_CFG

R/W

0x0

  • 2b'00: silence_mode

  • 2b'01: external loopback mode (enable a2c_tx_so )

  • 2b'10: internal loopback mode (a2c_tx_so tie 1)

  • 2b'11: reserved

REG_A2C_MB0_STS

  • Size: 32

  • Address offset: 100h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG0_RX_VLD 2 A2C_MSG0_RX_RDY 1 A2C_MSG0_TX_DONE 0 A2C_MSG0_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG0_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG0_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG0_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG0_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB1_STS

  • Size: 32

  • Address offset: 104h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG1_RX_VLD 2 A2C_MSG1_RX_RDY 1 A2C_MSG1_TX_DONE 0 A2C_MSG1_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG1_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG1_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG1_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG1_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB2_STS

  • Size: 32

  • Address offset: 108h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG2_RX_VLD 2 A2C_MSG2_RX_RDY 1 A2C_MSG2_TX_DONE 0 A2C_MSG2_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG2_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG2_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG2_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG2_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB3_STS

  • Size: 32

  • Address offset: 10Ch

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG3_RX_VLD 2 A2C_MSG3_RX_RDY 1 A2C_MSG3_TX_DONE 0 A2C_MSG3_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG3_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG3_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG3_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG3_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB4_STS

  • Size: 32

  • Address offset: 110h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG4_RX_VLD 2 A2C_MSG4_RX_RDY 1 A2C_MSG4_TX_DONE 0 A2C_MSG4_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG4_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG4_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG4_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG4_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB5_STS

  • Size: 32

  • Address offset: 114h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG5_RX_VLD 2 A2C_MSG5_RX_RDY 1 A2C_MSG5_TX_DONE 0 A2C_MSG5_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG5_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG5_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG5_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG5_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB6_STS

  • Size: 32

  • Address offset: 118h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG6_RX_VLD 2 A2C_MSG6_RX_RDY 1 A2C_MSG6_TX_DONE 0 A2C_MSG6_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG6_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG6_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG6_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG6_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB7_STS

  • Size: 32

  • Address offset: 11Ch

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG7_RX_VLD 2 A2C_MSG7_RX_RDY 1 A2C_MSG7_TX_DONE 0 A2C_MSG7_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG7_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG7_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG7_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG7_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB8_STS

  • Size: 32

  • Address offset: 120h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG8_RX_VLD 2 A2C_MSG8_RX_RDY 1 A2C_MSG8_TX_DONE 0 A2C_MSG8_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG8_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG8_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG8_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG8_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB9_STS

  • Size: 32

  • Address offset: 124h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG9_RX_VLD 2 A2C_MSG9_RX_RDY 1 A2C_MSG9_TX_DONE 0 A2C_MSG9_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG9_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG9_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG9_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG9_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB10_STS

  • Size: 32

  • Address offset: 128h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG10_RX_VLD 2 A2C_MSG10_RX_RDY 1 A2C_MSG10_TX_DONE 0 A2C_MSG10_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG10_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG10_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG10_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG10_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB11_STS

  • Size: 32

  • Address offset: 12Ch

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG11_RX_VLD 2 A2C_MSG11_RX_RDY 1 A2C_MSG11_TX_DONE 0 A2C_MSG11_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG11_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG11_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG11_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG11_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB12_STS

  • Size: 32

  • Address offset: 130h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG12_RX_VLD 2 A2C_MSG12_RX_RDY 1 A2C_MSG12_TX_DONE 0 A2C_MSG12_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG12_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG12_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG12_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG12_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB13_STS

  • Size: 32

  • Address offset: 134h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG13_RX_VLD 2 A2C_MSG13_RX_RDY 1 A2C_MSG13_TX_DONE 0 A2C_MSG13_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG13_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG13_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG13_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG13_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB14_STS

  • Size: 32

  • Address offset: 138h

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG14_RX_VLD 2 A2C_MSG14_RX_RDY 1 A2C_MSG14_TX_DONE 0 A2C_MSG14_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG14_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG14_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG14_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG14_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB15_STS

  • Size: 32

  • Address offset: 13Ch

  • Read/write access: R

Indicates the individual readiness, validity, and TX/RX status of a specific message buffer.

31:4 RSVD 3 A2C_MSG15_RX_VLD 2 A2C_MSG15_RX_RDY 1 A2C_MSG15_TX_DONE 0 A2C_MSG15_TX_REQ

Bit

Symbol

Access

INI

Description

31:4

RSVD

R

-

Reserved

3

A2C_MSG15_RX_VLD

R

0x0

New message have been received in the message buffer

2

A2C_MSG15_RX_RDY

R

0x0

The message buffer is ready for receiving a new message

1

A2C_MSG15_TX_DONE

R

0x0

Tx message in the message buffer finish sending

0

A2C_MSG15_TX_REQ

R

0x0

Tx message is pending for transmit

REG_A2C_MB0_CTRL

  • Size: 32

  • Address offset: 200h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG0_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG0_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG0_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG0_BA

R/W

9'd0

Message buffer base address in RAM

REG_A2C_MB1_CTRL

  • Size: 32

  • Address offset: 204h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG1_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG1_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG1_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG1_BA

R/W

9'd6

Message buffer base address in RAM

REG_A2C_MB2_CTRL

  • Size: 32

  • Address offset: 208h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG2_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG2_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG2_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG2_BA

R/W

9'd12

Message buffer base address in RAM

REG_A2C_MB3_CTRL

  • Size: 32

  • Address offset: 20Ch

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG3_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG3_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG3_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG3_BA

R/W

9'd18

Message buffer base address in RAM

REG_A2C_MB4_CTRL

  • Size: 32

  • Address offset: 210h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG4_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG4_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG4_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG4_BA

R/W

9'd24

Message buffer base address in RAM

REG_A2C_MB5_CTRL

  • Size: 32

  • Address offset: 214h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG5_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG5_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG5_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG5_BA

R/W

9'd30

Message buffer base address in RAM

REG_A2C_MB6_CTRL

  • Size: 32

  • Address offset: 218h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG6_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG6_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG6_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG6_BA

R/W

9'd36

Message buffer base address in RAM

REG_A2C_MB7_CTRL

  • Size: 32

  • Address offset: 21Ch

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG7_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG7_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG7_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG7_BA

R/W

9'd42

Message buffer base address in RAM

REG_A2C_MB8_CTRL

  • Size: 32

  • Address offset: 220h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG8_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG8_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG8_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG8_BA

R/W

9'd48

Message buffer base address in RAM

REG_A2C_MB9_CTRL

  • Size: 32

  • Address offset: 224h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG9_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG9_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG9_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG9_BA

R/W

9'd54

Message buffer base address in RAM

REG_A2C_MB10_CTRL

  • Size: 32

  • Address offset: 228h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG10_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG10_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG10_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG10_BA

R/W

9'd60

Message buffer base address in RAM

REG_A2C_MB11_CTRL

  • Size: 32

  • Address offset: 22Ch

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG11_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG11_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG11_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG11_BA

R/W

9'd66

Message buffer base address in RAM

REG_A2C_MB12_CTRL

  • Size: 32

  • Address offset: 230h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG12_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG12_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG12_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG12_BA

R/W

9'd72

Message buffer base address in RAM

REG_A2C_MB13_CTRL

  • Size: 32

  • Address offset: 234h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG13_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG13_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG13_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG13_BA

R/W

9'd78

Message buffer base address in RAM

REG_A2C_MB14_CTRL

  • Size: 32

  • Address offset: 238h

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG14_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG14_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG14_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG14_BA

R/W

9'd84

Message buffer base address in RAM

REG_A2C_MB15_CTRL

  • Size: 32

  • Address offset: 23Ch

  • Read/write access: R/W

Configures the starting address in RAM and enables DMA functionality for a specific message buffer.

31:25 RSVD 24 A2C_MSG15_RXDMA_EN 23:9 RSVD 8:0 A2C_MSG15_BA

Bit

Symbol

Access

INI

Description

31:25

RSVD

R

-

Reserved

24

A2C_MSG15_RXDMA_EN

R/W

0x0

Dma enable when the message buffer used as rx

23:9

RSVD

R

-

Reserved

8:0

A2C_MSG15_BA

R/W

9'd90

Message buffer base address in RAM

REG_A2C_MB_BA_END

  • Size: 32

  • Address offset: 2F0h

  • Read/write access: R/W

Defines the ending boundary address in RAM allocated for message buffers.

31:10 RSVD 9:0 A2C_MSG_BA_END

Bit

Symbol

Access

INI

Description

31:10

RSVD

R

-

Reserved

9:0

A2C_MSG_BA_END

R/W

10'd96

End of message buffer base address in RAM

REG_A2C_RAM_FDDATA_15

  • Name: A2C data

  • Size: 32

  • Address offset: 300h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_15_3 23:16 A2C_RAM_DATA_15_2 15:8 A2C_RAM_DATA_15_1 7:0 A2C_RAM_DATA_15_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_15_3

R/W

0x0

Data_byte 4*15+3

23:16

A2C_RAM_DATA_15_2

R/W

0x0

Data_byte 4*15+2

15:8

A2C_RAM_DATA_15_1

R/W

0x0

Data_byte 4*15+1

7:0

A2C_RAM_DATA_15_0

R/W

0x0

Data_byte 4*15+0

REG_A2C_RAM_FDDATA_14

  • Name: A2C data

  • Size: 32

  • Address offset: 304h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_14_3 23:16 A2C_RAM_DATA_14_2 15:8 A2C_RAM_DATA_14_1 7:0 A2C_RAM_DATA_14_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_14_3

R/W

0x0

Data_byte 4*14+3

23:16

A2C_RAM_DATA_14_2

R/W

0x0

Data_byte 4*14+2

15:8

A2C_RAM_DATA_14_1

R/W

0x0

Data_byte 4*14+1

7:0

A2C_RAM_DATA_14_0

R/W

0x0

Data_byte 4*14+0

REG_A2C_RAM_FDDATA_13

  • Name: A2C data

  • Size: 32

  • Address offset: 308h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_13_3 23:16 A2C_RAM_DATA_13_2 15:8 A2C_RAM_DATA_13_1 7:0 A2C_RAM_DATA_13_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_13_3

R/W

0x0

Data_byte 4*13+3

23:16

A2C_RAM_DATA_13_2

R/W

0x0

Data_byte 4*13+2

15:8

A2C_RAM_DATA_13_1

R/W

0x0

Data_byte 4*13+1

7:0

A2C_RAM_DATA_13_0

R/W

0x0

Data_byte 4*13+0

REG_A2C_RAM_FDDATA_12

  • Name: A2C data

  • Size: 32

  • Address offset: 30Ch

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_12_3 23:16 A2C_RAM_DATA_12_2 15:8 A2C_RAM_DATA_12_1 7:0 A2C_RAM_DATA_12_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_12_3

R/W

0x0

Data_byte 4*12+3

23:16

A2C_RAM_DATA_12_2

R/W

0x0

Data_byte 4*12+2

15:8

A2C_RAM_DATA_12_1

R/W

0x0

Data_byte 4*12+1

7:0

A2C_RAM_DATA_12_0

R/W

0x0

Data_byte 4*12+0

REG_A2C_RAM_FDDATA_11

  • Name: A2C data

  • Size: 32

  • Address offset: 310h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_11_3 23:16 A2C_RAM_DATA_11_2 15:8 A2C_RAM_DATA_11_1 7:0 A2C_RAM_DATA_11_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_11_3

R/W

0x0

Data_byte 4*11+3

23:16

A2C_RAM_DATA_11_2

R/W

0x0

Data_byte 4*11+2

15:8

A2C_RAM_DATA_11_1

R/W

0x0

Data_byte 4*11+1

7:0

A2C_RAM_DATA_11_0

R/W

0x0

Data_byte 4*11+0

REG_A2C_RAM_FDDATA_10

  • Name: A2C data

  • Size: 32

  • Address offset: 314h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_10_3 23:16 A2C_RAM_DATA_10_2 15:8 A2C_RAM_DATA_10_1 7:0 A2C_RAM_DATA_10_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_10_3

R/W

0x0

Data_byte 4*10+3

23:16

A2C_RAM_DATA_10_2

R/W

0x0

Data_byte 4*10+2

15:8

A2C_RAM_DATA_10_1

R/W

0x0

Data_byte 4*10+1

7:0

A2C_RAM_DATA_10_0

R/W

0x0

Data_byte 4*10+0

REG_A2C_RAM_FDDATA_9

  • Name: A2C data

  • Size: 32

  • Address offset: 318h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_9_3 23:16 A2C_RAM_DATA_9_2 15:8 A2C_RAM_DATA_9_1 7:0 A2C_RAM_DATA_9_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_9_3

R/W

0x0

Data_byte 4*9+3

23:16

A2C_RAM_DATA_9_2

R/W

0x0

Data_byte 4*9+2

15:8

A2C_RAM_DATA_9_1

R/W

0x0

Data_byte 4*9+1

7:0

A2C_RAM_DATA_9_0

R/W

0x0

Data_byte 4*9+0

REG_A2C_RAM_FDDATA_8

  • Name: A2C data

  • Size: 32

  • Address offset: 31Ch

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_8_3 23:16 A2C_RAM_DATA_8_2 15:8 A2C_RAM_DATA_8_1 7:0 A2C_RAM_DATA_8_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_8_3

R/W

0x0

Data_byte 4*8+3

23:16

A2C_RAM_DATA_8_2

R/W

0x0

Data_byte 4*8+2

15:8

A2C_RAM_DATA_8_1

R/W

0x0

Data_byte 4*8+1

7:0

A2C_RAM_DATA_8_0

R/W

0x0

Data_byte 4*8+0

REG_A2C_RAM_FDDATA_7

  • Name: A2C data

  • Size: 32

  • Address offset: 320h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_7_3 23:16 A2C_RAM_DATA_7_2 15:8 A2C_RAM_DATA_7_1 7:0 A2C_RAM_DATA_7_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_7_3

R/W

0x0

Data_byte 4*7+3

23:16

A2C_RAM_DATA_7_2

R/W

0x0

Data_byte 4*7+2

15:8

A2C_RAM_DATA_7_1

R/W

0x0

Data_byte 4*7+1

7:0

A2C_RAM_DATA_7_0

R/W

0x0

Data_byte 4*7+0

REG_A2C_RAM_FDDATA_6

  • Name: A2C data

  • Size: 32

  • Address offset: 324h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_6_3 23:16 A2C_RAM_DATA_6_2 15:8 A2C_RAM_DATA_6_1 7:0 A2C_RAM_DATA_6_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_6_3

R/W

0x0

Data_byte 4*6+3

23:16

A2C_RAM_DATA_6_2

R/W

0x0

Data_byte 4*6+2

15:8

A2C_RAM_DATA_6_1

R/W

0x0

Data_byte 4*6+1

7:0

A2C_RAM_DATA_6_0

R/W

0x0

Data_byte 4*6+0

REG_A2C_RAM_FDDATA_5

  • Name: A2C data

  • Size: 32

  • Address offset: 328h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_5_3 23:16 A2C_RAM_DATA_5_2 15:8 A2C_RAM_DATA_5_1 7:0 A2C_RAM_DATA_5_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_5_3

R/W

0x0

Data_byte 4*5+3

23:16

A2C_RAM_DATA_5_2

R/W

0x0

Data_byte 4*5+2

15:8

A2C_RAM_DATA_5_1

R/W

0x0

Data_byte 4*5+1

7:0

A2C_RAM_DATA_5_0

R/W

0x0

Data_byte 4*5+0

REG_A2C_RAM_FDDATA_4

  • Name: A2C data

  • Size: 32

  • Address offset: 32Ch

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_4_3 23:16 A2C_RAM_DATA_4_2 15:8 A2C_RAM_DATA_4_1 7:0 A2C_RAM_DATA_4_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_4_3

R/W

0x0

Data_byte 4*4+3

23:16

A2C_RAM_DATA_4_2

R/W

0x0

Data_byte 4*4+2

15:8

A2C_RAM_DATA_4_1

R/W

0x0

Data_byte 4*4+1

7:0

A2C_RAM_DATA_4_0

R/W

0x0

Data_byte 4*4+0

REG_A2C_RAM_FDDATA_3

  • Name: A2C data

  • Size: 32

  • Address offset: 330h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_3_3 23:16 A2C_RAM_DATA_3_2 15:8 A2C_RAM_DATA_3_1 7:0 A2C_RAM_DATA_3_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_3_3

R/W

0x0

Data_byte 4*3+3

23:16

A2C_RAM_DATA_3_2

R/W

0x0

Data_byte 4*3+2

15:8

A2C_RAM_DATA_3_1

R/W

0x0

Data_byte 4*3+1

7:0

A2C_RAM_DATA_3_0

R/W

0x0

Data_byte 4*3+0

REG_A2C_RAM_FDDATA_2

  • Name: A2C data

  • Size: 32

  • Address offset: 334h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_2_3 23:16 A2C_RAM_DATA_2_2 15:8 A2C_RAM_DATA_2_1 7:0 A2C_RAM_DATA_2_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_2_3

R/W

0x0

Data_byte 4*2+3

23:16

A2C_RAM_DATA_2_2

R/W

0x0

Data_byte 4*2+2

15:8

A2C_RAM_DATA_2_1

R/W

0x0

Data_byte 4*2+1

7:0

A2C_RAM_DATA_2_0

R/W

0x0

Data_byte 4*2+0

REG_A2C_RAM_FDDATA_1

  • Name: A2C data

  • Size: 32

  • Address offset: 338h

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_1_3 23:16 A2C_RAM_DATA_1_2 15:8 A2C_RAM_DATA_1_1 7:0 A2C_RAM_DATA_1_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_1_3

R/W

0x0

Data_byte 4*1+3

23:16

A2C_RAM_DATA_1_2

R/W

0x0

Data_byte 4*1+2

15:8

A2C_RAM_DATA_1_1

R/W

0x0

Data_byte 4*1+1

7:0

A2C_RAM_DATA_1_0

R/W

0x0

Data_byte 4*1+0

REG_A2C_RAM_FDDATA_0

  • Name: A2C data

  • Size: 32

  • Address offset: 33Ch

  • Read/write access: R/W

Serves as the register interface to read or write the actual data payload (up to 64 bytes) into the

RAM.

31:24 A2C_RAM_DATA_0_3 23:16 A2C_RAM_DATA_0_2 15:8 A2C_RAM_DATA_0_1 7:0 A2C_RAM_DATA_0_0

Bit

Symbol

Access

INI

Description

31:24

A2C_RAM_DATA_0_3

R/W

0x0

Data_byte 4*0+3

23:16

A2C_RAM_DATA_0_2

R/W

0x0

Data_byte 4*0+2

15:8

A2C_RAM_DATA_0_1

R/W

0x0

Data_byte 4*0+1

7:0

A2C_RAM_DATA_0_0

R/W

0x0

Data_byte 4*0+0

REG_A2C_RAM_ARB

  • Name: A2C message buffer arb field configuration

  • Size: 32

  • Address offset: 340h

  • Read/write access: R/W

Configures the message identifier (ID), format (IDE), and frame type (RTR) for a message buffer

being written to or read from RAM.

31 RSVD 30 A2C_RAM_RTR 29 A2C_RAM_IDE 28:0 A2C_RAM_ID

Bit

Symbol

Access

INI

Description

31

RSVD

R

-

Reserved

30

A2C_RAM_RTR

R/W

0x0

A2c frame RTR bit, determine DATA or REMOTE frame

29

A2C_RAM_IDE

R/W

0x0

A2c frame IDE bit, determine standard or extend format

28:0

A2C_RAM_ID

R/W

0x0

A2c frame ID, including high 11 bit standard ID and low 18 bit extend ID

REG_A2C_RAM_MASK

  • Name: A2C message buffer arb field mask configuration

  • Size: 32

  • Address offset: 344h

  • Read/write access: R/W

Configures the acceptance filter masks, defining which bits of an incoming message ID must match to

be accepted into the buffer.

31 RSVD 30 A2C_RAM_RTR_MASK 29 A2C_RAM_IDE_MASK 28:0 A2C_RAM_ID_MASK

Bit

Symbol

Access

INI

Description

31

RSVD

R

-

Reserved

30

A2C_RAM_RTR_MASK

R/W

0x0

A2c frame RTR mask, 0 means don't care, 1 means the bit should match

29

A2C_RAM_IDE_MASK

R/W

0x0

A2c frame IDE mask, 0 means don't care, 1 means the bit should match

28:0

A2C_RAM_ID_MASK

R/W

0x0

A2c frame ID mask, 0 means the ID bit in A2C_RAM_ARB don't care, 1 means the bit should match.

REG_A2C_RAM_CS

  • Name: A2C message type control

  • Size: 32

  • Address offset: 348h

  • Read/write access: R/W

Configures control and status attributes of the message, such as Data Length Code (DLC), FD flags

(BRS, EDL), and direction (TX/RX).

31:16 A2C_RAM_TIMESTAMP 15:11 RSVD 10 A2C_RAM_ESI 9 A2C_RAM_BRS 8 A2C_RAM_EDL 7 RSVD 6 A2C_RAM_AUTOREPLY 5 A2C_RAM_RXTX 4 A2C_RAM_LOST 3:0 A2C_RAM_DLC

Bit

Symbol

Access

INI

Description

31:16

A2C_RAM_TIMESTAMP

R/W

0x0

The received message time stamp

15:11

RSVD

R

-

Reserved

10

A2C_RAM_ESI

R/W

0x0

FD frame esi bit, indicate error passive of message sending node, read bit, should always write 0, hardware automatic fill

9

A2C_RAM_BRS

R/W

0x0

FD frame brs bit, indicate switch bit timing

8

A2C_RAM_EDL

R/W

0x0

FD frame edl bit, indicate it’s a FD frame

7

RSVD

R

-

Reserved

6

A2C_RAM_AUTOREPLY

R/W

0x0

Set the message buffer with remote frame auto reply function

5

A2C_RAM_RXTX

R/W

0x0

A2c frame RX or TX, 0 is for RX, 1 is for TX

4

A2C_RAM_LOST

R/W

0x0

Data have lost in the read buffer, means more than one frame have beed received since last read; only avaliable when rx FIFO is disabled

3:0

A2C_RAM_DLC

R/W

0x0

Data length

REG_A2C_RAM_CMD

  • Name: A2C message buffer access control

  • Size: 32

  • Address offset: 34Ch

  • Read/write access: R/W

Executes the command to transfer data between the A2C_RAM_* registers and the actual internal SRAM

for a specified message buffer.

31 A2C_RAM_START 30 A2C_RAM_DIR 29 A2C_RAM_BUFFER_EN 28:27 RSVD 26 A2C_RAM_ACC_DATA15 25 A2C_RAM_ACC_DATA14 24 A2C_RAM_ACC_DATA13 23 A2C_RAM_ACC_DATA12 22 A2C_RAM_ACC_DATA11 21 A2C_RAM_ACC_DATA10 20 A2C_RAM_ACC_DATA9 19 A2C_RAM_ACC_DATA8 18 A2C_RAM_ACC_DATA7 17 A2C_RAM_ACC_DATA6 16 A2C_RAM_ACC_DATA5 15 A2C_RAM_ACC_DATA4 14 A2C_RAM_ACC_DATA3 13 A2C_RAM_ACC_DATA2 12 A2C_RAM_ACC_DATA1 11 A2C_RAM_ACC_DATA0 10 A2C_RAM_ACC_ARB 9 A2C_RAM_ACC_CS 8 A2C_RAM_ACC_MASK 7:0 A2C_RAM_ACC_NUM

Bit

Symbol

Access

INI

Description

31

A2C_RAM_START

R/W

0x0

Start to exchange data with RAM, the bit will clear automatically after the data change is finshed.

30

A2C_RAM_DIR

R/W

0x0

0 is for read from RAM to A2C_RAM_* registers, 1 is for write from A2C_RAM_* to RAM

29

A2C_RAM_BUFFER_EN

R/W

0x0

Enable the a2c_ram_acc_num specified message buffer for rx/tx

28:27

RSVD

R

-

Reserved

26

A2C_RAM_ACC_DATA15

R/W

0x0

Access A2C_RAM_DATA_15 field, the field will exchange with RAM space

25

A2C_RAM_ACC_DATA14

R/W

0x0

Access A2C_RAM_DATA_14 field, the field will exchange with RAM space

24

A2C_RAM_ACC_DATA13

R/W

0x0

Access A2C_RAM_DATA_13 field, the field will exchange with RAM space

23

A2C_RAM_ACC_DATA12

R/W

0x0

Access A2C_RAM_DATA_12 field, the field will exchange with RAM space

22

A2C_RAM_ACC_DATA11

R/W

0x0

Access A2C_RAM_DATA_11 field, the field will exchange with RAM space

21

A2C_RAM_ACC_DATA10

R/W

0x0

Access A2C_RAM_DATA_10 field, the field will exchange with RAM space

20

A2C_RAM_ACC_DATA9

R/W

0x0

Access A2C_RAM_DATA_9 field, the field will exchange with RAM space

19

A2C_RAM_ACC_DATA8

R/W

0x0

Access A2C_RAM_DATA_8 field, the field will exchange with RAM space

18

A2C_RAM_ACC_DATA7

R/W

0x0

Access A2C_RAM_DATA_7 field, the field will exchange with RAM space

17

A2C_RAM_ACC_DATA6

R/W

0x0

Access A2C_RAM_DATA_6 field, the field will exchange with RAM space

16

A2C_RAM_ACC_DATA5

R/W

0x0

Access A2C_RAM_DATA_5 field, the field will exchange with RAM space

15

A2C_RAM_ACC_DATA4

R/W

0x0

Access A2C_RAM_DATA_4 field, the field will exchange with RAM space

14

A2C_RAM_ACC_DATA3

R/W

0x0

Access A2C_RAM_DATA_3 field, the field will exchange with RAM space

13

A2C_RAM_ACC_DATA2

R/W

0x0

Access A2C_RAM_DATA_2 field, the field will exchange with RAM space

12

A2C_RAM_ACC_DATA1

R/W

0x0

Access A2C_RAM_DATA_1 field, the field will exchange with RAM space

11

A2C_RAM_ACC_DATA0

R/W

0x0

Access A2C_RAM_DATA_0 field, the field will exchange with RAM space

10

A2C_RAM_ACC_ARB

R/W

0x0

Access A2C_RAM_ARB field, the field will exchange with RAM space

9

A2C_RAM_ACC_CS

R/W

0x0

Access A2C_RAM_CS field, the field will exchange with RAM space

8

A2C_RAM_ACC_MASK

R/W

0x0

Access A2C_RAM_MASK field, the field will exchange with RAM space

7:0

A2C_RAM_ACC_NUM

R/W

0x0

Access buffer number

REG_A2C_DBG_PORT

  • Name: debug register

  • Size: 32

  • Address offset: 3F8h

  • Read/write access: R/W

Selects and enables internal hardware signals to be routed to debug pins for hardware

troubleshooting.

31:9 RSVD 8 A2C_DBG_EN 7:0 A2C_DBG_SEL

Bit

Symbol

Access

INI

Description

31:9

RSVD

R

-

Reserved

8

A2C_DBG_EN

R/W

0x0

Debug port enable

7:0

A2C_DBG_SEL

R/W

0x0

Debug port selection

REG_A2C_DUMMY

  • Name: dummy register

  • Size: 32

  • Address offset: 3FCh

  • Read/write access: R/W

A reserved placeholder register used for hardware alignment or future expansion.

31:0 DUMMY

Bit

Symbol

Access

INI

Description

31:0

DUMMY

R/W

0x0

Rsvd for hw