Hi BU team
One customer wanted to output PPS signal by GPIO but it didn't work.
Below was the code. Would you help check it and share your comments?
Thanks
uint8 DP83640_SetPPS(void) { uint32 value0 = 0; //----------------------------------------------------------------- //----- 1、关闭TRIGGER //----- 1.1 设置页地址 DP83640_SetPage(PAGE4); //----- 1.2 读取配置寄存器 HAL_ETH_ReadPHYRegister(&EthHandle, PTP_CTL, &value0); //----- 1.3 写地址,关闭TRIGGER value0 |= PTP_TRIG_DIS; HAL_ETH_WritePHYRegister(&EthHandle, PTP_CTL, value0); //----------------------------------------------------------------- //----- 2、配置TRIGGER DP83640_SetPage(PAGE5); HAL_ETH_ReadPHYRegister(&EthHandle, PTP_TRIG, &value0); //----- 2.1 选择IO 、源、写、周期信号 value0 |= (TRIG_GPIO4 + TRIG_CSEL0 + TRIG_WR + TRIG_PER); HAL_ETH_WritePHYRegister(&EthHandle, PTP_TRIG, value0); HAL_ETH_ReadPHYRegister(&EthHandle, PTP_TRIG, &value0); //----------------------------------------------------------------- //----- 3、使能TRIGGER //----- 3.1 设置页地址 DP83640_SetPage(PAGE4); //----- 3.2 读取配置寄存器 HAL_ETH_ReadPHYRegister(&EthHandle, PTP_CTL, &value0); //----- 3.3 写地址,使能TRIGGER value0 |= (PTP_TRIG_EN + PTP_TRIG_SEL0); HAL_ETH_WritePHYRegister(&EthHandle, PTP_CTL, value0); HAL_ETH_ReadPHYRegister(&EthHandle, PTP_CTL, &value0); HAL_ETH_ReadPHYRegister(&EthHandle, PTP_TSTS, &value0); HAL_ETH_ReadPHYRegister(&EthHandle, PTP_TSTS, &value0); HAL_ETH_ReadPHYRegister(&EthHandle, PTP_TRIG, &value0); }