해결된 질문
작성
·
282
답변 1
1
안녕하세요.
1) FilterIdHigh에는 EXID[28:13] 값이 저장되고, FilterIdLow에는 (EXID[12:0]<<3) | (IDE<<2) | (RTR<<1) | (TXRQ<<0) 값이 저장됩니다.
따라서 설정하고자 하는 EXID의 값(addr32) 0x12345678, IDE = 1, RTR= 0, TXRQ = 0 인 경우에는 아래와 같이 설정됩니다.
FilterIdHigh = (0x12345678<<3) >> 16 ; // 0x91A2
FilterIdLow = ((0x12345678<<3) & 0xffff) | 0x04; // 0xB3C4
0x12345678<<3 = 0x91A2_B3C0 입니다.
2) 수신 ID 값
mask32 값이 0x1fff_fff0 이기 때문에 bit[28:4]까지는 addr32값과 동일한 값 (0x1234567x)이고, bit[3:0]는 don't care 이기 때문에 0x0 ~ 0xF까지 수신가능합니다.
따라서 수신가능한 address는 0x12345670 ~ 0x1234567F 가 됩니다.
3) 수신 ID 값 = 0x1234567 ~ 0x1234567f 는 오타입니다. 정확한 표현은 수신 ID 값 = 0x12345670 ~ 0x1234567F 가 맞습니다.
감사합니다 ~!!