A little Problem about MC9S08DZ serials  's  MSCAN Module Identifier Acceptance Registers?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

A little Problem about MC9S08DZ serials  's  MSCAN Module Identifier Acceptance Registers?

2,345 Views
harlenChen
Contributor I
Hello,
I have used Old MC908GZ with MSCAN, but it 's only 4 MSCAN Identifier Acceptance Registers, just to match 32 bit Externed Identifer. Now, MC9S08DZ have 8 MSCAN Identifier Acceptance Register, dividing into 2 Bank.
But no control register to decide which Bank to use. During the programing, I only use 4 Register enough"MSCAN Identifier Acceptance Registers (First Bank) — CANIDAR0–CANIDAR3". Why add  "MSCAN Identifier Acceptance Registers (Second Bank) — CANIDAR4–CANIDAR7"?  How to understand ? If need, How to set?
 
Best regards
Harlen
Labels (1)
0 Kudos
3 Replies

492 Views
kef
Specialist I
that's just more acceptance filters. First you set up IDAM bits and choose between two 32bit filters, 4x 16bit filters, or 8x 8bit filters. Each filter can accept and pass some messages.
 
In 32bit acceptance filters mode, one 32bit filter is using acceptance registers CANIDAR0,1,2,3 and mask registers CANIDAM0,1,2,3. Another 32bit filter is using CANIDAR4,5,6,7 and CANIDAM4,5,6,7 respectivly.
 
 
In 16bit mode there are four filters:
CANIDAR0-1
CANIDAM0-1
 
CANIDAR2-3
CANIDAM2-3
 
CANIDAR4-5
CANIDAM4-5
 
CANIDAR6-7
CANIDAM6-7
 
In 8bit acceptance filters mode it's strightforward x-th filter is using CANIDARx and CANIDAMx.
 
If you need just one filter, then just setup both "banks" the same.
0 Kudos

492 Views
harlenChen
Contributor I
Very thanks for your help!
 
By the way, If I have Set two   32 bit Filters,  when a new message meet, How to know which bank filter is available?   According to the datasheet, No register bit to select Bank 1 or Bank2? 
0 Kudos

492 Views
kef
Specialist I
Acceptance filters registers aren't really banked and you don't need to manipulate any bits to access all them. If you check memory map, then you'll see that 8 IDAR and 8 IDMR registers occupy 16 memory locations from 0x1890 to 0x189F. No bank switching is necessary.
0 Kudos