Hello,
I'm trying to establish a communication with the MC33772C over TPL. The transmission seems to work. When data is sent the VCOM line of the IC goes to 5V as expected. The echoed frame is able to be read accurately, but after that no data is sent by the MC3377. The BCC library is used.
Below I've screen-captures from the oscilloscope traces. Measurements on the TPL lines was done across the RDTX_IN+ and RDTX_IN-. For isolation between the MC3377 and MC33664 the suggested HM2102NL and HM2103NL transformers are used respectively.
Thanks in advance,
Christos.
Edit:
It fails in BCC_AssignCid. Instead of receiving 2, 48bit frames (echo and response from the MC3377), it only receives the echoed frame thus returning BCC_STATUS_COM_TIMEOUT.
static bcc_status_t BCC_AssignCid(bcc_drv_config_t* const drvConfig,
const bcc_cid_t cid)
{
uint16_t writeVal, readVal;
bcc_status_t status;
/* Check if unassigned node replies. This is the first reading after device
* reset. */
/* Note: In SPI communication mode, the device responds with all bit filed
* set to zero except message counter and the correct CRC to the very first
* MCU <-> MC33771C/772C message. */
status = BCC_Reg_Read(drvConfig, BCC_CID_UNASSIG, MC33771C_INIT_OFFSET, 1U, &readVal);
if ((status != BCC_STATUS_SUCCESS) && (status != BCC_STATUS_COM_NULL))
{
return status;
}
// ...
}
Solved! Go to Solution.
So turns out that for some reason in bcc.h the "BCC_MSG_IDX_*" pre-compiler defines are defined in a weird (different?, wrong?) order. Numbering them in assenting order from top to bottom fixes the issue (on 3rd party MCUs).
So turns out that for some reason in bcc.h the "BCC_MSG_IDX_*" pre-compiler defines are defined in a weird (different?, wrong?) order. Numbering them in assenting order from top to bottom fixes the issue (on 3rd party MCUs).