NTP client as a simple clock using PIC18F27J53 and MRF24WG0MA

<< Introduction in Japanese >>

連休の最後に、Wi-Fi モジュール MRF24WG0MA を接続した実験ボードの動作確認として NTP client としての実験を行った。すなわち、2017年7月14日の稿(NTP client as a simple clock using PIC18F27J53 and ENC28J60)で記した、情報通信研究機構 ntp.nict.jp の NTP server に接続して、現在時刻を取得する実験の再現である。

実験に合わせて、MainDemo.c、TCPIP MRF24W.h、BerkeleyUDPClientDemo.c を変更した。

更に NTP server からの受信データを基準に、CCP と Timer1 により1秒割込を発生させて時刻更新し、卓上時計として機能させている。ここで、CCP を高位割り込みで利用して、MRF24WG0MA からの信号は低位割り込みで処理させている。

The “BerkeleyUDPClientDemo.c” in the TCP/IP stack of Microchip Libraries for Applications v2013-06-15 is at work on my board.

The Wi-Fi board was reported in may page on May 4, 2018.

The NTP server of National Institute of Information and Communications Technology is used in this project and Coordinated Universal Time (UTC) is converted to Japan Standard Time (JST: UTC + 9 hours).

Furthermore, this test board works as a simple clock.  An interruption at 1-second interval in high priority is generated by the CCP1 module, which interruption increments the cumulative time obtained from the NTP server.  So the external interrupt by the MRF24WG0MA module has been set in low priority.

<< Sample code of the NTP client >>

(Compiled by the C18 under the large code model)

In TCPIPConfig.h, the default network configuration must be adjusted to your local network (MAC address, IP address and so on).  In addition, STACK_USE_ICMP_SERVER, STACK_USE_DNS and STACK_USE_BERKELEY_API are defined so that the Ethernet board can work as a NTP client using the Berkeley Socket.

In WF_Config.h, the parameters must be adjusted to your Wi-Fi network.

<< Operation of the NTP client >>

Initialization:    If the Ethernet board is connected to the Internet for the first time, the current time can be automatically obtained from the NTP server.

Adjustment of the time:    Every time the RB3 pin (BUTTON 0) is pulled down, the current time will be gotten from the NTP server.

使用方法: TCPIPConfig.h ファイルにローカル・ネットワークの情報を設定。インターネットに接続すると、初回の時刻設定は自動的に NTP サーバーに接続されて時間を刻み始める。2回目以降の時刻補正には、インターネット接続された状態でスイッチ (RB3) を押すと NTP サーバーに接続されて現在時刻に更新される。