MC33772 communication for TPL

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MC33772 communication for TPL

3,050 Views
SNL
Contributor I

Hello@TomasVaverka 

We have a 33771BTPLEVB connected to a 33664EVB and I'm using an thirdparty MCU frontend. SPI communication is there and we can see send data and also a mirrored (time delayed receive data) on the line.

On this stage we just dont know what to send to the MC33771BTPLEVB board to receive the voltages from the board.

We are following the datasheet and the pre made code by NXP


//Data for send  to MC33664
data_[0] = {0xAA};      //Write command
data_[1] = {0x01};      //CID
data_[2] = {0x00};      //Data1
data_[3] = {0x00};
data_[4] = {0x00};
data_[5] = {0xE7};      //CRC
Best Reagrds.

SNL_0-1640081991738.png

We are trying to understand and send the correct bits to the end device over TPL. But until now we werent able to succeeded.

Since we are using thirdparty MCU for the SPI communication for MC33664 we need the first initialization bits for the spi_send part.  Could you help us to understand with some example bits for initialization. If you can explain 1-2 commands on a bit stream we can reproduce them for further experience.

//BCC_CID_UNASSIG = 0U, /*!< ID of uninitialized BCC device. */


//BCC_Reg_Write(drvConfig, 0U , 0x01U , writeVal, NULL);
//BCC_Reg_WriteTpl(drvConfig, cid, regAddr, regVal, retReg);



0 Kudos
Reply
7 Replies

3,026 Views

Hello SNL,

Have been able to receive any response from the BCC (or MC33771B IC) at all?

Typically you firstly need to assign a CID to all the BCC in the chain, but you can get a response by sending a read request for the INIT register to CID 0 when the BCC is not yet initialized (with a CID = 0).

Make also sure that the MC33664 is enabled and check that the TPL signals are correct.

Best regards,

Philippe

0 Kudos
Reply

2,985 Views

Hi again,

I'm wondering if you are not trying to communicate with MC33771B with a TPL2 protocol. See in the table below (extract from the AN13281) the main differences in the TPL1, TPL2 and TPL3 protocols.

Phil_Perruchoud_0-1640168947922.png

 

MC33771B can only communicate with TPL1 protocol and the commands should be built based on a 40bits message as described in the datasheet (page 73 of rev7.0 datasheet):

Phil_Perruchoud_1-1640169003761.png

Best regards,

Philippe

0 Kudos
Reply

3,018 Views
SNL
Contributor I

Dear @PhilippePerruchoud-NXP 

We are seeing the Vcom led comes on after the wake up sequence and also when we attach the TPL cable Vcom led comes on. This is the only signal makes us sure the connection works. But we didn't get any response from the MC33771B IC over MC33664.
The only thing we are getting is the shifted message that we are sending.

Please check the messages we are sending if they makes sense. Maybe our CRC is wrong or the message size is wrong. we are losing something and we are kindly asking if you can see what we are missing.

The TPL signal measured from MC33771B IC transformers leg. (a test point)
Blue is the sent message
Yellow is the received message
Pink is clock
Dark blue is the TPL signal

SNL_0-1640103600051.png

SNL_1-1640103621424.png

SNL_2-1640103658257.png

 

0 Kudos
Reply

2,990 Views

Hello SNL,

Is the TPL signal measured on one of the RDTX+ or RDTX- pin versus ground or was is measured as differential between the two RDTX+/- pins?

DC bias of the RDTX+/-  pins should be 2.5V and the differntial voltage of the signal between the two pins should be close to 5V.

If this is not the case, please check the VCC5 voltage during the transmission just to make sure that it's stable at 5V.

Once you have checked that all is fine with the TPL signal, then it will mean that the message structure sent to the BCC is not correct.

Best regards,

Philippe

0 Kudos
Reply

2,957 Views
SNL
Contributor I

Dear Phil
DC basis of the TPL signals are both 2.5V and the signal peak to peak is around 3.6V. Here are some screenshots. 5V on the VCC side is stable both MC33664 and MC33771B

It seems like our message goes over the TPL to the MC33771B but there is no respond from MC33771B side.
We are sending this messages over the SPI to MC33664.
uint8_t spi_master_tx_buf1[BUFFER_SIZE] = {0x00, 0x10, 0x03, 0x00, 0x03, 0x75};
uint8_t spi_master_tx_buf2[BUFFER_SIZE] = {0x00, 0x01, 0x01, 0x00, 0x01, 0xf4};
uint8_t spi_master_tx_buf3[BUFFER_SIZE] = {0x01, 0x01, 0x01, 0x00, 0x02, 0x28};
uint8_t spi_master_tx_buf4[BUFFER_SIZE] = {0x00, 0x01, 0x01, 0x01, 0x01, 0x1d};
uint8_t spi_master_tx_buf5[BUFFER_SIZE] = {0x01, 0x01, 0x01, 0x00, 0x02, 0x28};
uint8_t spi_master_tx_buf6[BUFFER_SIZE] = {0x00, 0x01, 0x01, 0x01, 0x01, 0x1d};


SNL_0-1640256014977.png

SNL_1-1640256039228.png

 

0 Kudos
Reply

3,041 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hello,

I would recommend you to take a closer look at our AN12084 which provides guidelines for the configuration and programming of the MC33772B BCC.

The AN12084 is available on DocStore: 

https://www.docstore.nxp.com/products?path=/content/docstore/product-hierarchy/Automotive-Battery-Ma...

…and requires an NDA (Non-Disclosure Agreement). If your company has not signed the NDA with NXP yet, please create a new case for my colleagues who are in charge of the NDA process and can eventually help you with that.

You might find also useful our BCC software driver which includes functions for:

  • Setting SPI and Isolated Network High-speed Transceiver (TPL) communication modes
  • Measuring voltages, current and temperatures
  • Handling faults
  • Implementing diagnostics
  • Cell balancing etc.

You can download it from the following website:

https://www.nxp.com/design/analog-expert-software-and-tools/sdk-analog-expert-drivers/embedded-sw-ba...

Best regards,

Tomas

0 Kudos
Reply

3,037 Views
SNL
Contributor I

Dear @TomasVaverka 

Thank you for the swift answer.

We have the MC33771B/MC33772B programming guide(AN12084) and also we have the NDA as well.

Right now we are sending this data but we are not receiving anything back meaningful. I will share my send data and receive data oscilloscope signal. Could you please help to identify the mistake we are doing.
part of the send and receive signal

SNL_0-1640094073614.png


Here is the sent data:
//Data for send
int BUFFER_SIZE = 6;
uint8_t spi_master_tx_buf1[BUFFER_SIZE] = {0x00, 0x10, 0x03, 0x00, 0x03, 0x75};
uint8_t spi_master_tx_buf2[BUFFER_SIZE] = {0x00, 0x01, 0x01, 0x00, 0x01, 0xf4};
uint8_t spi_master_tx_buf3[BUFFER_SIZE] = {0x01, 0x01, 0x01, 0x00, 0x02, 0x28};
uint8_t spi_master_tx_buf4[BUFFER_SIZE] = {0x00, 0x01, 0x01, 0x01, 0x01, 0x1d};
uint8_t spi_master_tx_buf5[BUFFER_SIZE] = {0x01, 0x01, 0x01, 0x00, 0x02, 0x28};
uint8_t spi_master_tx_buf6[BUFFER_SIZE] = {0x00, 0x01, 0x01, 0x01, 0x01, 0x1d};

Explanations of the sent data:
data_[0] = {0x00}; //0010 SOFT_RST
data_[1] = {0x10}; //0010 SOFT_RST
data_[2] = {0x03}; //Register Address
data_[3] = {0x00}; //Data1
data_[4] = {0x03}; //SYS_CFG1
data_[5] = {0x75}; //CRC

Full view of the send and receive signal

SNL_1-1640094263526.png

 


Best Regards

Tags (1)
0 Kudos
Reply