Hello all, here to try to pick the brains of any Microchip MCP2510 CAN Controller users... I'm currently trying to get a simple packet sent, and have the 2510 cause a recieve interrupt. For the life of me I can't get it to happen... I've followed 3 app notes, several code on the web and it just will not occur (by itself). Not even the transmit interrupt. I'm using it in loopback mode. I have some PCA82C250's here but I want to simplify before going that route. I have all the filters off, set to recieve any message. I can cause it to happen by writing 1 to any of the enabled interrupt flags, INT then goes low and my ISR executes just fine. I know my SPI writes to the chip are working as I can change a 2510's pin to a GPO and flash an LED with it. I've used it to test my byte write, bit modify, and my read instructions... Using these I follow this simple sequence (I hope my macro-ized code is fairly explanitory): --------------------------------------------- MCP2510_RESET ; reset the chip (as per datasheet) DELAY_MICRO 25 ; let it reset MCP2510_WRITE CNF1, 0x09 ; from program MCP2510_WRITE CNF2, 0x90 ; from program MCP2510_WRITE CNF3, 0x02 ; from program MCP2510_WRITE RXB0CTRL, 0x60 ; recieve all msgs MCP2510_WRITE RXB1CTRL, 0x60 ; recieve all msgs MCP2510_WRITE CANCTRL, 0x44 ; Loopback Mode, CLKOUT disabled MCP2510_WRITE CANINTF, 0x00 ; clear interrupt flags MCP2510_WRITE CANINTE, 0x0F ; enable interrupts DELAY_MILLI 250 ; wait a while so human eyes can see stuff happen clrf PIR1 ; clear out interrupt flags bsf INTCON, INTE ; enable INT interrupt bsf INTCON, GIE ; enable interrupts ; build a packet MCP2510_WRITE TXB1SIDH, 0xAC MCP2510_WRITE TXB1SIDL, 0x40 ; standard identifier MCP2510_WRITE TXB1DLC, 0x04 MCP2510_WRITE TXB1D0, 0xAA MCP2510_WRITE TXB1D1, 0xBA MCP2510_WRITE TXB1D2, 0xAF MCP2510_WRITE TXB1D3, 0x5B MCP2510_RTS TXB1 ; send it ------------------------ I've tried this with TXB0 as well. Afterwards it just goes to a "goto $" loop and is ISR from then on out... I have every basic I/O interrupt enabled on the MCP2510. I have tried it with the ERROR interrupts enabled as well, with nothing happening so I don't think something is happening incorrectly during the transfer. I've also tried setting the TX bit, and not using the RTS command... So the moral of the story is, I can get the ISR to run on my 16F876 manually by dropping the INT line, but the MCP2510 won't do it automagically... Ideas? Sample code? Thanks! nick@veys.com | www.veys.com/nick -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads