PIC18F25K80 puede transmitir a través de CAN pero no puede recibir

1

He construido un circuito prototipo en una placa de soldadura. He conectado el PIC18F25K80 al MCP2551 como se muestra en el esquema para este tablero de demostración . Estoy ejecutando el código de ejemplo del sitio web de Microchip para Modo CAN 0 y CAN Mode 2 en PIC18, solo se modificó para usar PORT A en lugar de PORT D , como PIC18F25K80 no lo hace tener PORT D .

Tengo una resistencia de terminación de 120 ohmios entre CAN_H y CAN_L en el MCP2551 .

El sistema está conectado a mi PC a través de un adaptador CAN-to-USB CANWodXX CANmodul1. Al usar PCANView, puedo recibir un mensaje en mi PC cuando se envía desde mi circuito. Sin embargo, no puedo obtener el microcontrolador para recibir un mensaje enviado desde PCANview. Si alcanzo los pines CAN_H y CAN_L , o el pin CAN_RX , puedo ver claramente una señal digital que viaja a través del circuito y en CAN_RX .

He intentado deshabilitar los filtros cambiando RXM1 en RXB0CON y RXB1CON , pero no parece ayudar.

¿Cómo puedo solucionar este problema?

EDIT1: He estado jugueteando un poco más con él, y he notado que RXB1D<7:0> retiene los datos que transmito después de transmitir. El modo operativo en el momento es normal (no en bucle), ¿debería el mensaje llegar al búfer? Actualmente tengo todos los filtros y máscaras desactivados.

Además, estoy usando B0 hasta B4 como búferes Rx adicionales en Modo 2 (FIFO), y B5 como búfer Tx con RTR automático.

Para referencia, estoy usando MPLAB X 1.80, C18 v3.46, y un PICkit 3 configurado para la depuración en el circuito.

hoja de datos PIC18F25K80 para referencia: enlace

    
pregunta Littlegator

1 respuesta

1

De acuerdo con la hoja de datos, el módulo CAN anula el TRIS para CANTX pero no para CANRX, que debe configurarse como entrada. Otro indicador que evitará que CAN se reciba es CIOCONbits.CANCAP , que debería ser 1 para habilitar la captura CAN.

    
respondido por el Martin

Lea otras preguntas en las etiquetas