This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CAN Peripheral and Sigma Delta Filter Module Interface in LaunchPad TMS320F28377S

Other Parts Discussed in Thread: TMS320F28377S, AMC1304M25


I am using delta sigma modulator for current measurements of automotive inverter and we want to transfer the current measurements on CAN-Bus.

To test this functionality, I am using AMC1304M25 with TMS320F28377S Launchpad to acquire current measurements and transfer them to PC over Can BUS respectively.

My SDFM settings are:

Clock: 10 MHz

Filter: Sinc3/ OSR_256/ Mode_0 (Modulator Data Rate= Modulator Clock Rate) / 16-Bit Data Output

Comparator: Sinc3/ OSR_32

SDFM Data Rate : 39 KSPS

CAN Bit Rate : 1 Mbps

The Problem seems to be following:

SDFM Interface is pretty faster than possible CAN transmission rate of messages and therefore, out of 1024 Samples acquired with Sigma Delta Modulator, I am getting only 340 CAN messages. 1 CAN message contains one sigma delta Sample point.

I also tried transmitting 4 Samples (8 Bytes Data) per CAN Message but still I could not synchrnoise all acquired samples to be sent over CAN successfully. In one way or another I appear to lose many samples acquired from delta sigma interface and can not figure it out to be able to transmit them all successfully without losing any data.

Is there any solution for this ?

I am very looking forward to have some suggestions. Thanks alot.

Best Regards,


  • Inam,

    1 Mbps is the raw bit-rate of CAN. Your effective bit-rate is going to be lower because of the CAN protocol overhead (MSGID, CRC, stuff bits etc). I don't know about the other nodes on your network or the bus load, which could impact the throughput even more. You could embed data as part of the MSGID (or use a 11-bit ID) to increase throughput a bit, but 1 Mbps is the max speed.

  • To elaborate on Hareesh's answer, the CAN protocol is only about 57% efficient. Take a look at the frame format:

    There are up to 64 bits of data and 47 bits of other stuff per frame. If you're transmitting at 1 megabit/second, only about 576 kilobits/second will be data. You're producing 39000 samples per second at 16 bits per sample, which is 624 kilobits/second of data. That's too much for CAN.

  • Thanks alot Hareesh and Adam Haun,

    Do you think Flexray will work in this case? In addition, it would be nice if you can suggest any TI LaunchPad which has both SDFM and FlexRay peripherals?

  • Yes, Flexray is a possibility. We do not have a platform with both Flexray and SDFM, unfortunately.