Estoy usando un CANUSB adaptador conectado a mi coche intentando leer sólo PUEDE mensajes con 11 bits identificador de 0x1D6. Necesito hacer hardware de filtrado, ya que el software de filtrado es demasiado lento para mi aplicación.
El CANUSB descripción de protocolo (http://www.can232.com/docs/canusb_manual.pdf) se explica cómo configurar el filtrado, y se refiere a la SJA1000 hoja de datos (http://www.nxp.com/documents/data_sheet/SJA1000.pdf) para una descripción en los registros de hardware involucrados.
Para configurar la aceptación código escribo "MFFFFF3AC\r" en el puerto serie. Este debería ser el equivalente a la configuración de AC0=FF, AC1=FF, AC2=F3, AC3=AC en un SJA1000 controlador. Yo me vine con estos valores por el cambio de 1D6 a la izquierda un poco, ya que el último bit es utilizado para la RTR, que no me importa.
Para configurar la aceptación de la máscara escribo "mFFFFF001\r" en el puerto serie. Por lo que entiendo que esto debe establecer el SJA1000 el controlador de filtro utilizando sólo el 11 bits identificador especificado anteriormente.
Estos son los Identificadores que tengo con esta configuración:
0x0a8 0010101000
0x0aa 0010101010
0x0c0 0011000000
0x0c4 0011000100
0x0c8 0011001000
0x0d7 0011010111
0x2d5 1011010101
0x2fa 1011111010
0x31d 1100011101
0x328 1100101000
0x330 1100110000
0x349 1101001001
0x360 1101100000
0x364 1101100100
0x3b0 1110110000
0x3bd 1110111101
Como se puede ver, no hay signos de 0x1d6. Yo a ver si me reinicie el dispositivo sin necesidad de entrar en el filtrado de comandos.
Puede alguien familiarizado con SJA1000 filtrado de decirme qué estoy haciendo mal aquí?