SJA1000 CAN Controller
Ciao
puoi aiutarmi a capire come posso calcolare i valori AMR e ACR per il mio caso.
i miei ID sono 0x301, 0x309, 0x308.
0x301 --> 001100000001
0x308 --> 001100001000
0x309 --> 001100001001
Il datasheet dice che devo considerare solo il MSB di ID, quindi per il mio caso:
Penso di poter rimuovere i due zeri sul lato sinistro e l'ID diventa:
0x301 --> 1100000001
0x308 --> 1100001000
0x309 --> 1100001001
Quindi ora se devo considerare solo 8 MSB, ho:
|--MSB--|
0x301 --> 11000000 01
0x308 --> 11000010 00
0x309 --> 11000010 01
Ora devo fare alcune conderazioni, devo analizzare quali bit sono comuni e quali no.
Per i bit che sono diversi li sostituisco con "X".
0x301 --> 110000X0
0x308 --> 110000X0
0x309 --> 110000X0
For AMR:
- 1: il valore del bit è indifferente se passa
- 0: prima di passare deve coincidere con il valore di ACR nella stessa posizione del bit
NOTE:
bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
Ordination of bits --> 1 | 1 | 0 | 0 | 0 | 0 | X | 0
Nel mio caso:
0x301 --> 110000X0
0x308 --> 110000X0
0x309 --> 110000X0
AMR ----> 00000010 -> Perché voglio che i bit 7,6,5,4,3,2,0 siano esattamente ciò che trovo negli ID. E per il bit 1 è indifferente se assume valori 0 o 1.
ACR ----> 110000-0 ->Di conseguenza il gruppo di bit 7,6,5,4,3,2,0 deve essere esattamente uguale a quello presente nell'ID, invece il bit 0 ho capito che in questo caso è indifferente che sia 0 o 1, è corretto?
Questo è il mio ragionamento, ora ti do i valori che trovo scritti da un altro:
ACR --> 0x61000000
AMR --> 0x01FFFFFF
Non ho capito come li ricava questi valori, in caso siano corretti ?
Grazie
puoi aiutarmi a capire come posso calcolare i valori AMR e ACR per il mio caso.
i miei ID sono 0x301, 0x309, 0x308.
0x301 --> 001100000001
0x308 --> 001100001000
0x309 --> 001100001001
Il datasheet dice che devo considerare solo il MSB di ID, quindi per il mio caso:
Penso di poter rimuovere i due zeri sul lato sinistro e l'ID diventa:
0x301 --> 1100000001
0x308 --> 1100001000
0x309 --> 1100001001
Quindi ora se devo considerare solo 8 MSB, ho:
|--MSB--|
0x301 --> 11000000 01
0x308 --> 11000010 00
0x309 --> 11000010 01
Ora devo fare alcune conderazioni, devo analizzare quali bit sono comuni e quali no.
Per i bit che sono diversi li sostituisco con "X".
0x301 --> 110000X0
0x308 --> 110000X0
0x309 --> 110000X0
For AMR:
- 1: il valore del bit è indifferente se passa
- 0: prima di passare deve coincidere con il valore di ACR nella stessa posizione del bit
NOTE:
bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
Ordination of bits --> 1 | 1 | 0 | 0 | 0 | 0 | X | 0
Nel mio caso:
0x301 --> 110000X0
0x308 --> 110000X0
0x309 --> 110000X0
AMR ----> 00000010 -> Perché voglio che i bit 7,6,5,4,3,2,0 siano esattamente ciò che trovo negli ID. E per il bit 1 è indifferente se assume valori 0 o 1.
ACR ----> 110000-0 ->Di conseguenza il gruppo di bit 7,6,5,4,3,2,0 deve essere esattamente uguale a quello presente nell'ID, invece il bit 0 ho capito che in questo caso è indifferente che sia 0 o 1, è corretto?
Questo è il mio ragionamento, ora ti do i valori che trovo scritti da un altro:
ACR --> 0x61000000
AMR --> 0x01FFFFFF
Non ho capito come li ricava questi valori, in caso siano corretti ?
Grazie