flexPTP 1.0
An IEEE 1588 PTP implementation designed for microcontrollers
Loading...
Searching...
No Matches
ptp_port_tiva_tm4c1294.c
Go to the documentation of this file.
2
3#include <stdint.h>
4#include <stdbool.h>
5
6#include "driverlib/emac.h"
7#include "driverlib/gpio.h"
8#include "inc/hw_memmap.h"
9#include "driverlib/pin_map.h"
10
11void ptphw_init(uint32_t increment, uint32_t addend) {
12 // init clock
13 EMACTimestampConfigSet(EMAC0_BASE, (EMAC_TS_ALL_RX_FRAMES |
14 EMAC_TS_DIGITAL_ROLLOVER |
15 EMAC_TS_PROCESS_IPV4_UDP | EMAC_TS_ALL |
16 EMAC_TS_PTP_VERSION_2 | EMAC_TS_UPDATE_FINE), // PTPv2 processing
17 increment);
18 EMACTimestampAddendSet(EMAC0_BASE, addend);
19 EMACTimestampEnable(EMAC0_BASE);
20
21 // init PPS output
22 GPIOPinTypePWM(GPIO_PORTG_AHB_BASE, GPIO_PIN_0);
23 GPIOPinConfigure(GPIO_PG0_EN0PPS);
24 EMACTimestampPPSSimpleModeSet(EMAC0_BASE, EMAC_PPS_1HZ);
25}
26
28 pTime->sec = 0;
29 pTime->nanosec = 0;
30 EMACTimestampSysTimeGet(EMAC0_BASE, (uint32_t *)&(pTime->sec), &(pTime->nanosec));
31}
void ptphw_gettime(TimestampU *pTime)
void ptphw_init(uint32_t increment, uint32_t addend)
Timestamp (unsigned)
Definition: timeutils.h:20
uint32_t nanosec
nanoseconds
Definition: timeutils.h:22
uint64_t sec
seconds
Definition: timeutils.h:21