Hello,
I have been trying to connect the BQ76PL455A-Q1 (BQ ic for short) to my MCU on a custom board. I am only using a single BQ ic chip right now and have no plans to do any daisy-chaining to this chip. I have added the required pull-ups resistors and other resistors and capacitors as mentioned in the design reference document.
Here are the voltages I observed in Idle state:
- V5VAO = 5.1V
- VP/VDIG = 5.3V
- VIO = 3.3V
- RX = 3.3V in idle state
- TX = 3.3V in idle state
After checking voltages, I was looking to set up communication and I sent out the following commands:
#define buf1_len (4 + 2) #define buf2_len (3 + 2) #define buf3_len (3 + 2) #define buf4_len (3 + 2) #define buf5_len (5 + 2) #define buf6_len (4 + 2) #define buf7_len (4 + 2) #define buf8_len (4 + 2) #define buf9_len (4 + 2) #define buf10_len (5 + 2) #define buf11_len (4 + 2) char buf1[buf1_len] = {0xF2, 0x10, 0x10, 0x80, 0x3F, 0x1D}; char buf2[buf2_len] = {0xF1, 0x0E, 0x10, 0x54, 0x5F}; char buf3[buf3_len] = {0xF1, 0x0C, 0x08, 0x55, 0x35}; char buf4[buf4_len] = {0xF1, 0x0A, 0x00, 0x57, 0x53}; char buf5[buf5_len] = {0x92, 0x00, 0x52, 0xFF, 0xC0, 0x59, 0xAC}; char buf6[buf6_len] = {0x91, 0x00, 0x3D, 0x00, 0x3C, 0x6C}; char buf7[buf7_len] = {0x91, 0x00, 0x3E, 0xBC, 0x3D, 0x2D}; char buf8[buf8_len] = {0x91, 0x00, 0x07, 0x00, 0xCC, 0x2E}; char buf9[buf9_len] = {0x91, 0x00, 0x51, 0x38, 0x10, 0xBE}; char buf10[buf10_len] = {0x92, 0x00, 0x52, 0xFF, 0xC0, 0x59, 0xAC}; char buf11[buf11_len] = {0x81, 0x00, 0x51, 0x00, 0x15, 0xAC}; delay_ms(100); sci_user_write(buf1, buf1_len); delay_ms(10); sci_user_write(buf2, buf2_len); delay_ms(10); sci_user_write(buf3, buf3_len); delay_ms(10); sci_user_write(buf4, buf4_len); delay_ms(10); sci_user_write(buf5, buf5_len); delay_ms(10); sci_user_write(buf6, buf6_len); delay_ms(10); sci_user_write(buf7, buf7_len); delay_ms(10); sci_user_write(buf8, buf8_len); delay_ms(10); sci_user_write(buf9, buf9_len); delay_ms(10); sci_user_write(buf10, buf10_len); delay_ms(10); sci_user_write(buf11, buf11_len); delay_ms(10);
For now, I simply hardcoded the CRC after calculating it on an online calculator. The commands above are modified from the software design reference document available for BQ76PL455A-Q1.
While sending out the commands, I connected a logic analyzer on the RX and TX pins of the BQ ic. In my design, I was not sure whether it is a direct connection (TX to TX, RX to RX) or cross-connection (TX to RX, RX to TX), so I have added some jumpers which will allow me to switch between both the configurations. I have added some screenshots from the logic analyzer. I am observing some data ripples on the RX line while transmitting from MCU. Also, there is no response from the BQ ic after I send out the 11th command from the above snippet of code.