The CAN peripheral provides an interface between Concerto™ and other CAN compatible devices. The CAN modules are a reuse of the TMS470 and are not identical to the Stellaris®, nor to the C2000 e-CAN. Since Concerto has a different CAN module than Stellaris, it is mapped to a different location within the M3 subsystem. Concerto comes with two independent CAN modules that support bit rates up to 1 Mbps each and are compliant with CAN 2.0 B protocol specifications. Two clock domains are provided to the CAN module; the CAN wrapper and registers are always clocked at the same rate as the M3 system clock without division. As CAN peripherals can be susceptible to clocks at higher bit rates, there is the CAN protocol kernel, or the CPK which is clocked from three possible sources, allowing a more accurate and stable clock to be fed to the peripherals. Also, this enables the use of spread spectrum clocks without compromising CAN communications. The CAN bit clock can be the M3 system clock, or it can come from an external clock derived through a GPIO pin and can be anywhere from eight to 25 MHz. The designer can also use an oscillator directly in the eight to 25 MHz range on input X1. The CAN core has to be programmed to at least eight clock cycles per bit; for instance, to achieve a transfer rate of 1 MBd when using an asynchronous clock domain as a clock source for the CAN clock, an oscillator frequency of 8 MHz or higher must be used. Each CAN module can handle up to thirty two mailboxes which each contain a distinct message and their respective individual identifiers are stored in the message RAM. Each mailbox is thirty two bytes, equaling a total message RAM of one kB. Multiple message objects with the same identifiers and masks can be concatenated to the FIFO buffer. Each CAN module can send two distinct interrupts to the NVIC and can generate interrupts, error interrupts, and status interrupts, which can only be routed to CAN internal zero. Mailbox interrupts can be routed to either CAN interrupt zero or CAN interrupt one. The module also features programmable loopback modes for self-test operation, a key feature to comply with safety requirements necessary in many of the system applications for device. CAN modules come with other features that are useful for test, such as direct access to the messaging RAM. After the CAN has entered the bus off state, the CPU can start a bus off recovery sequence. Plus CAN provides an automatic bus-on that can delay the sequence. On a Concerto device, there is the ability to come out of deep sleep mode using CAN. Also, with the CAN module being on the M3 side, it cannot be accessed directly by the C28x core, but the C28x can access CAN through the shared RAM. There is no access from the µDMA. The CAN transmit and the CAN receive pins cannot be configured as general purpose I/O pins when unused.

