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.
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);
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
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.
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):
Best regards,
Philippe
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
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
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};
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:
…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:
You can download it from the following website:
Best regards,
Tomas
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
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
Best Regards