Hallo miteinander!
Die Grundlage meines Projektes bildet ein AT90CAN128 mit dem
Ethernet-Controller WiZ810MJ. Bisher funktioniert alles wunderbar.
DNS-Auflösung klappt. Die Kommunikation über Ethernet mit den
Software-Modulen funktioniert auch wunderbar.
Eine unabdingbare Grundlage für das Projekt, ist eine aktuelle Uhrzeit.
Diese soll mit Hilfe von NTP/SNTP synchronisiert werden. Das Problem
hierbei ist, dass ich kein Response bekomme ... Ja, wahrscheinlich mach
ich was falsch. Ich steh nur momentan total auf dem Schlauch, woran es
liegen könnte. Ich sitzte schon 3 Tage an diesem Prob und komm nicht
weiter. Vllcht kann hier mir ja wer auf die Sprünge helfen ;).
Den NTP/SNTP-Request bau ich wie folgt auf:
1 | uint8_t txbuffer[52];
|
2 | uint8_t *ptr;
|
3 |
|
4 | ptr = &txbuffer[0];
|
5 | *ptr++ = 0xdb; // ntp hdr flgs
|
6 | *ptr++ = 0x0; // stratum
|
7 | *ptr++ = 0x04; // poll-intervall
|
8 | *ptr++ = 0xfa; // precision
|
9 | // root-belay 32bit
|
10 | *ptr++ = 0x0;
|
11 | *ptr++ = 0x1;
|
12 | *ptr++ = 0x0;
|
13 | *ptr++ = 0x1;
|
14 |
|
15 | for (uint8_t i=8;i<52;i++) *ptr++=0; // zero rest of data
|
16 | // Send packet
|
17 | wiznet_open_writebuffer(socket);
|
18 | for (uint8_t i=0;i<52;i++){
|
19 | wiznet_write_writebuffer(socket, txbuffer[i]);
|
20 | }
|
21 | wiznet_close_writebuffer(socket);
|
Die Pakete werden an den UDP-Port: 123 gesendet.
Die Versuche von den folgenden 3 NTP-Servern eine Antowrt zu erhlaten,
ware leider bisher vergebens:
ptbtime1.ptb.de
time.nist.gov
ts1.univie.ac.at
so far so long
mfg & voller hoffnung
-Morph