2333569_en-US

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

2333569_en-US

2333569_en-US

Phy665a and MC33777: LOOPBACK_METHOD_2 not working

Hi,

I want to use LOOPBACK_METHOD_2 on Phy665a on a daisy chain (CADD=2) consisting of a single MC33777 device. However, no communication is possible. All transfers lead to a timeout. I verified that both TPL ports work in single-ended mode. Below is my configuration:

Screenshot 2026-03-16 161608.png

Screenshot 2026-03-16 161631.png

Screenshot 2026-03-16 161659.png

   


Re: Phy665a and MC33777: LOOPBACK_METHOD_2 not working

Hi @alexandrutabalai,

Could you or someone else from the BMS SW team please help with this question?

Thanks & BRs, Tomas

Re: Phy665a and MC33777: LOOPBACK_METHOD_2 not working

Hi @PhilippH ,

Are you calling Bjb_D1xx_SetMADD() prior to populating the TD with data?

Can you please provide more details regarding your scenario?

Best regards,

Alex

Re: Phy665a and MC33777: LOOPBACK_METHOD_2 not working

Hi @PhilippH,

Can you update the Phy port configuration as shown in the attached image and try again?Phy_665a_PortCfg_update.png

When you send messages with MADD = 0, they should be sent from TPL_PORT_2 and received on TPL_PORT_3, which has reception enabled.

Best regards,

Alex

Re: Phy665a and MC33777: LOOPBACK_METHOD_2 not working

Hi,

I tried with both

Bjb_D1xx_SetMADD(BJB_CHAIN_ADDR, BJB_DEVICE_ADDR, true);

and MADD = false. I also added

Bjb_D1xx_LoopbackConfigure(BJB_CHAIN_ADDR, LOOPBACK_METHOD_2);

However, I don't quite understand the purpose of Bjb_D1xx_SetMADD(). I thought a MADD-attribute was inherent to a TPL port, not a single device on the chain. Anyway, calling this function makes no difference, I still get

PHY_TS_TIMEOUT == td->PhyTD->Status

on every transmission.

My setup now is a single MC33777 on a chain (CADD=2, Loopback method 2, hence connected to two TPL ports, Config is given in my original post). I want to transmit on one port and receive on the other (hence RESPCFG = Opposite).

My initialization code for completeness, now with Bjb_D1xx_SetMADD() and Bjb_D1xx_LoopbackConfigure():

Std_ReturnType status = E_OK;

    status |= (phyIf_init() == true) ? E_OK : E_NOT_OK;                                                                  // Initialize transceiver
    status |= (bjbConfiguration_initDriver() == true) ? E_OK : E_NOT_OK;                                                 // Initialize driver data structures (no communication yet)


    Bjb_D1xx_SetMADD(BJB_CHAIN_ADDR, BJB_DEVICE_ADDR, true);
    Bjb_D1xx_LoopbackConfigure(BJB_CHAIN_ADDR, LOOPBACK_METHOD_2);

    status |= Bjb_D1xx_COM_WakeupChain(BJB_CHAIN_ADDR, &BmsTDCfg_1);                                                     // Append wakeup sequence to TD
    status |= Bms_TD_InsertPhyEvent(&BmsTDCfg_1, PHY_TIMER, 2400);                                                       // Wait 2.4 ms for device to wake up
    status |= Bjb_D1xx_Enumerate(BJB_CHAIN_ADDR, BJB_DEVICE_ADDR, &BmsTDCfg_1);                                          // Append writing of INIT register to TD
    status |= Bjb_D1xx_COM_ReadRegisters(BJB_CHAIN_ADDR, BJB_DEVICE_ADDR, BJBD1XX_SYS_COM_CFG_OFFSET, 1U, &BmsTDCfg_1);  // Readback Init register
    status |= (phyIf_sendAndWait(&BmsTDCfg_1) == true) ? E_OK : E_NOT_OK;

Re: Phy665a and MC33777: LOOPBACK_METHOD_2 not workingThanks, now it works! Apparently, I did not test all combinations before. The calls of Bjb_D1xx_SetMADD() and Bjb_D1xx_LoopbackConfigure() are in fact not necessary.
Tags (1)
No ratings
Version history
Last update:
‎04-04-2026 04:27 AM
Updated by: