How to decrease measurement time for the LTC DC2259->LTC DC2259?

Hi all,  I am doing research for system ID for battery systems and I need to measuring a single cell voltage and set the  discharge state of the balancing resistor at rate of less than 1 ms. My current set up is a laptop connected through a serial port to a LTC DC2026 Demo board connected to a LTC DC2259 battery stack monitor. Right now I am capable of doing this in about 2.4 ms and I believe that the majority of this time is used up in communication of data between the two demo boards and the serial communication to a laptop. Is there a way to speed up this process. Again I am only interested in a single cell.  Thanks for the help.

attachments.zip
Parents
  • 0
    •  Analog Employees 
    on Jul 1, 2018 6:35 PM over 2 years ago

    Hi Alarue,

    I assume you're using the DC2259 GUI software, and the default DC2026 firmware? I am not too familiar with the LTC6811, but I do know the DC2026 and its limitations. The default SPI clock frequency is 1MHz, which is the LTC6811's maximum, so that's not going to get any faster. The bottleneck is the asynchronous serial (UART) interface between the ATMega328 and the FT232, which is 115200k baud. There is also the protocol that the default firmware implements, which is simple and human-readable, but inefficient.

    Depending on where you are in your development process, there are a couple of things you could try:

    1) Use an Arduino Leonardo; the processor has a built-in USB interface that emulates a serial port on the host computer, and it's much faster than the ATmega-FT232 link. (Others have tested this - do a web search on the term "arduino leonardo usb throughput".) The default DC2026 firmware:

    Linduino/LTSketchbook/Utilities/DC590B at master · analogdevicesinc/Linduino · GitHub 

    does build successfully for the Leonardo, and we've done a few preliminary tests with other parts and associated GUI software, but not the DC2259, so there is risk that it will either not work at all, or worse, there would be an intermittent problem.

    2) (Preferred approach) Start developing with the processor that you will be using in your end application, using the example Linduino code for the LTC6811 as a starting point:

    Linduino/LTSketchbook/Part Number/6000/6811/DC2259 at master · analogdevicesinc/Linduino · GitHub 

    As an intermediate step for 2), you could use a Leonardo, the example LTC6811 program does build - you would be greeted with the same command-line interface that you would with the DC2026, but the serial communication would be much faster, and you could start customizing the code to suit your needs (and you would be that much closer to having something that you could use in your end application.)

    I have contacted one of the apps engineers for the LTC6811 as well, in case any specific questions about the part itself come up.

    -Mark

     

Reply
  • 0
    •  Analog Employees 
    on Jul 1, 2018 6:35 PM over 2 years ago

    Hi Alarue,

    I assume you're using the DC2259 GUI software, and the default DC2026 firmware? I am not too familiar with the LTC6811, but I do know the DC2026 and its limitations. The default SPI clock frequency is 1MHz, which is the LTC6811's maximum, so that's not going to get any faster. The bottleneck is the asynchronous serial (UART) interface between the ATMega328 and the FT232, which is 115200k baud. There is also the protocol that the default firmware implements, which is simple and human-readable, but inefficient.

    Depending on where you are in your development process, there are a couple of things you could try:

    1) Use an Arduino Leonardo; the processor has a built-in USB interface that emulates a serial port on the host computer, and it's much faster than the ATmega-FT232 link. (Others have tested this - do a web search on the term "arduino leonardo usb throughput".) The default DC2026 firmware:

    Linduino/LTSketchbook/Utilities/DC590B at master · analogdevicesinc/Linduino · GitHub 

    does build successfully for the Leonardo, and we've done a few preliminary tests with other parts and associated GUI software, but not the DC2259, so there is risk that it will either not work at all, or worse, there would be an intermittent problem.

    2) (Preferred approach) Start developing with the processor that you will be using in your end application, using the example Linduino code for the LTC6811 as a starting point:

    Linduino/LTSketchbook/Part Number/6000/6811/DC2259 at master · analogdevicesinc/Linduino · GitHub 

    As an intermediate step for 2), you could use a Leonardo, the example LTC6811 program does build - you would be greeted with the same command-line interface that you would with the DC2026, but the serial communication would be much faster, and you could start customizing the code to suit your needs (and you would be that much closer to having something that you could use in your end application.)

    I have contacted one of the apps engineers for the LTC6811 as well, in case any specific questions about the part itself come up.

    -Mark

     

Children
No Data