I have built some custom ATmega2560 boards with external can interface using the mcp2515 controller and mcp2551 transceiver in order to experiment with CAN protocol. It is a solution that covers all of my needs as there are a lot of libraries about the mcp controller/transceiver. But after some thought and looking around I saw that there are some AVR microcontrollers that support the can protocol (AT90CAN - ATmegaC1 - ATmega32M1). So I am wondering which of these 2 solutions is better.
1) Is it better to have a microcontroller with embedded CAN interface or the solution with the external CAN controller/transceiver (MCP2515-MCP2551) is sufficient?
2) Would my CAN communication be faster?
3) Am I going to need external peripherals with the AT90CAN - ATmegaC1 - ATmega32M1 or do they have everything that I am going to need (i.e controller, transceiver) for CAN communication?