Other Parts Discussed in Thread: DP83640
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); }