XC886/888CLM
Controller Area Network (MultiCAN) Controller
User’s Manual
15-41
V1.3, 2010-02
MultiCAN, V1.0
15.1.10
Access Mediator
The MultiCAN needs to cover a maximum of 16 Kbytes SFR kernel address range,
which is much greater than the XC886/888 can provide. To meet this demand, an
address extension decoding mechanism is built in the unit called “Access Mediator” to
decode the SFRs in the MultiCAN kernel. The address lines are not directly controlled
by the CPU instruction itself, but they are derived from register bits that have to be
programmed before accessing the MultiCAN kernel.
To decode the address of the MultiCAN kernel registers, at least 14-bit address line is
needed. As the MultiCAN registers are 32-bit wide (4 Bytes), then the address lines
A[1:0] are not needed for decoding and are tied to “00”. The address lines A[13:2] are
implemented and they are programmed from the register bits CA2 to CA9 in the register
CAN_ADL and CA10 to CA13 in the register CAN_ADH. The address registers need to
be programmed before accessing the MultiCAN registers.
The data bus are 32 bit (D[31:0]) between the Access Mediator and MultiCAN kernel.
Four data registers CAN_DATAn (n = 3-0) are implemented in the Access Mediator.
Each register in the MultiCAN kernel is read and written via these 4 data registers.
When writing to MultiCAN kernel, the data in the registers CAN_DATAn (n = 3-0) are set
valid or not valid by configuring the register bits Vn (n = 3-0) in the register
CAN_ADCON. Only the valid data (bytes) are sent during the write process. The register
bits Vn (n = 3-0) has no effect on the read process. During the read process, 32-bit data
will be read from the MultiCAN kernel.
The register bit CAN_ADCON.BSY is used to indicate if the transmission is complete or
not. When the BSY register bit is set, the data registers and address registers will not
accept any read/write access. The write/read action to the MultiCAN kernel only takes
place when writing the CAN_ADCON register. The write/read action to the MultiCAN
kernel is defined by the bit CAN_ADCON.RWEN. Reading the CAN_ADCON register
has no effect on write/read data to/from the MultiCAN kernel. Each write/read action to
the MultiCAN kernel only writes/reads data once.
Furthermore, there is an additional functionality for auto increment/decrement the
address by configuring the bit field CAN_ADCON.AUAD. The address can be auto
incremented/decremented by 1 or auto incremented by 8 (which is useful when
programming the message objects). If this function is enabled, after a read/write process
is finished, the address pointer will automatically point to the next register address. The
address registers CAN_ADL and CAN_ADH also reflect the address that the address
pointer pointed to. The next read/write action to the next register can be taken
immediately without writing the address to the registers CAN_ADL and CAN_ADH again.
Write Process to the MultiCAN Kernel
•
Write the address of the MultiCAN kernel register to the CAN_ADL and CAN_ADH
registers.
*
Содержание XC886CLM
Страница 1: ...User s Manual V1 3 2010 02 Microcontrollers 8 Bit XC886 888CLM 8 Bit Single Chip Microcontroller...
Страница 3: ...User s Manual V1 3 2010 02 Microcontrollers 8 Bit XC886 888CLM 8 Bit Single Chip Microcontroller...
Страница 324: ...XC886 888CLM Serial Interfaces User s Manual 12 52 V1 3 2010 02 Serial Interfaces V 1 0...
Страница 663: ...w w w i n f i n e o n c o m Published by Infineon Technologies AG...