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.

TIDA-01168: Current regulation and UART dropout query

Part Number: TIDA-01168
Other Parts Discussed in Thread: LM5170

We have reproduced the TIDA-01168 with the scope of using this in an application. I have looked at other posts and I couldn't find anything relating to the following concerns. Apologies in advance if this has been addressed in a previous post.

(1) During operation, we are observing UART dropouts. This occurs randomly during no-load and load conditions using a UART to USB cable. Is this a setup error or is this a cable error? I've yet to try a different cable to disprove the latter.

(2) We wish to regulate the current and voltage into the battery on either side of the LM5170 using the TIDA-01168 reference design. How does one achieve constant current (CC) and constant voltage (CV) using the UART interface? I can't see any current settings in the UART commands. Ideally I'd like to set a current and voltage limit and rely on the control loop to prevent exceeding these limits.

  • Hi Tony, 

    thanks for the message. I am the author of the TIDA-01168. Here are my first ideas:

    ad (1): Could you try to connect to the board from a laptop which runs from the battery? The reason is that TIDA-01168 switches high currents and can disturb the lab environment based on the setup. I suspect a common-mode noise here. Otherwise I am not aware of any issues with the UART communication. It worked nicely for me (using a FT232RL-based converter). You may also want to check if the UART converter gives you 3.3-V logic levels. Some do 5 V.

    ad (2): I have never implemented the constant-current mode. Nevertheless, It is quite easy. You need to limit the duty-cycle of the PWM. As shown in Figure 74, duty cycle is proportional to the voltage on the ISETA pin. The ISETA voltage is proportional to the output current.

    You can add something like: 

    /* Output can't go negative */
    if ((*Reg).Buck.out < _IQ19(0.000)) {(*Reg).Buck.out = _IQ19(0.0000);}
    /* Current limit */
    if ((*Reg).Buck.out > ((*Reg).Buck.MyCurrentLimit)) {(*Reg).Buck.out = ((*Reg).Buck.MyCurrentLimit);}

    I hope this helps.

    Best regards, Jiri Panacek