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.

LAUNCHXL-TMS57004: Hercules Launchpad-kit not communicating with BQ79606 PM IC

Part Number: LAUNCHXL-TMS57004
Other Parts Discussed in Thread: TMS570LS0432, HALCOGEN

Dear Team,


I am working with a Power Management Device, the BQ79606.
The problem at hand is that after making the required connections, and modifying the MCU by removing R8 (as described in the sample code), I am still observing that the voltage rails in the IC are not turned on.
I made a post in the BQ79606 forum here, and Sir Taylor suggested that the device does not receive the Wake ping sent, and hence it is not waking up at all. 

I am using the same sample code that is provided with the BQ79606, are there any particular steps that I might be missing?? 
Looking forward to hearing from you soon. Thank you very much in advance.

Regards,

Praveen

  • Hi Praveen,

    Where did you get the MCU code to communicate with BQ79606? 

    Here is a BMS reference design using TMS570LS0432 and BQ79606:

    https://www.ti.com/lit/ug/tidue78a/tidue78a.pdf?ts=1625768879460&ref_url=https%253A%252F%252Fwww.ti.com%252Ftool%252FTIDA-01537

    But I don't know where to download the source code for this reference design.

  • Hi QJ,
    The code can be found here, on the product page of the BQ79606. 

    Specifically, there is a wrapper function provided in the bq79606.c file named Wakeup(), which looks like this:

    I'll be waiting to hear from you, once you have examined the code.

    Thanks,
    Praveen

  • Since the GIOA pin0 voltage didn't change at all when I was trying to pull it low using the Wakeup() function, I tried to see if any other GIO works or not...

    To test if the GIO is working, I commented out all other functions, and modified the function Wakeup() like below:

    This code prints out "Toggling" periodically on the console, but I see no output on the LED. I have no idea as to why, as the GPIO drivers are already generated and included in the sample code provided.

    Maybe this is related to all GPIO pins in general.
    Can you please comment on this ??

    Thanks, 
    Praveen

  • Also, every time I burn my code onto the MCU using the green bug icon, I see the following line before the program starts executing:

    "
    CortexR4: GEL Output: Memory Map Setup for Flash @ Address 0x0CortexR4: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset

    "

    Can you help me understand what this means, and does it have anything to do with the GPIOs not working???

    My apologies for the multiple replies, I am sharing my observations as soon as I observe them.


    Thanks,
    Praveen

  • Hello Praveen,

    You need to initialize the GIO module first. gioInit().

        It is to configure the GIOA[0] as output with pull-up, and GIOA[0] is set to HIGH (1)

  • This sample code was developed for the board below. The TMS570LS0432, BQ79606 and TPS65381 are integrated onto this board.

    which board are you using? 

  • Hi QJ, 
    I am using the TMS570LS04/03x Launchpad kit, with a custom-designed PCB for the BQ79606.

    The sample code that I downloaded, contains the already generated code for the TMS570LS04 Launchpad. 
    How do I configure the GIO module using the sample code? I believe that happens at the stage where you use HalCoGen, but here I think we are provided with the final code that HalCoGen generates.

    Also, I observed that none of the configured GPIOs are working, despite the fact that gioInit() is initialized in the sys_main.c file.

    Thanks,
    Praveen

  • Hi Praveen,

    You can toggle GIOA pins without connecting to BQ79x board to check if the GIOA pins toggle as expected or not.

    In your main():

    gioInit();

    gioSetDirection(gioPORTA, 0xFF); //config all GIOA pins as output

    gioSetPort(gioPORTA, 0xFF); //set all GIOA pins as HIGH

    gioSetPort(gioPORTA, 0x00); //clear all GIOA pins as LOW

    You can probe the GIOA pins to check if they are set or cleared.

  • Hi QJ,

    I was able to get the GIOs working with the above commands. However, I wonder what was missing in the sample code, since I believe that as it is designed for the Hercules Launchpad, it should have included the necessary drivers already. If you have any comments on that, please enlighten me. 

    I am able to generate the wake-up pulse with your help, thanks for that. But when I test the BQ79606, it is still not waking up, as the voltage rails show no power. My initial guess was that because the GIO isn't sending the pulse, it won't wake up the IC. But now that it is still not happening, can you direct me on how to seek further help on this? 

    Thank you very much in advance. 

    Regards,

    Praveen

  • Hi Praveen,

    Please check with expert of BQ79606 in BMS team.