The dsPIC33 devices contain an enhanced CAN module. The basic CAN communication engine is unchanged, but the module contains many more resources for buffering messages and detecting CAN bus message addresses. In dsPIC30, there are 6 message address filters and 3 masks. In dsPIC33, there are 16 message filters and four masks. The dsPIC30 CAN module used 3 dedicated transmit buffers and 2 dedicated receive buffers. The dsPIC33 CAN module uses the DMA buffer as the storage for the messages. Using the DMA makes the allocation of buffers very flexible and provides a large number of potential buffers. In fact, the module can allocate up to 8 transmit buffers and up to 32 receive buffers within the DMA space. The allocation is configurable by the application software at run time, so the allocation can exactly match the system requirements. The dsPIC33 devices with have zero, one or two instantiations of this module.