GROWTH FPGA/ADCボードにGPS NMEA出力を追加

GROWTH FPGA/ADCボードにドーターカードを載せた様子。PMT用HVとアンプ(チャージアンプ・整形アンプ)、温湿度計(BME280)、情報表示用OLED(128×64ピクセル)を搭載したドーターカードは東京大学和田くん設計、P板.com製造の名作)。

GROWTH FPGA/ADCボードのFPGAを改修して、ドーターカードのGPSが出力するNMEAデータを、Raspberry PiやMacで受信できるようにしました。NMEAデータはUARTでFPGAに入力され、FPGA内でもトリガ時刻の時刻補正に使用していますが、その信号をFT2232のBank B (FT232モード)に接続しました。

Raspberry PiやMacで/dev/ttyUSB1などにscreenで接続すると、以下のようにNMEAデータが出てきます。Rubyでこの情報を受信してNMEAデータをJSON形式で保存するスクリプトは、GROWTH-DAQにgrowth_gps_logger.rbとして追加しました(githubのpull request #8を参照)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
screen /dev/ttyUSB1 9800

$GPVTG,80.22,T,,M,47.66,N,88.31,K,N*0B
$GPGGA,041129.304,,,,,0,3,,,M,,M,,*43
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,041129.304,V,,,,,70.11,79.62,300117,,,N*4C
$GPVTG,79.62,T,,M,70.11,N,129.92,K,N*3E
$GPGGA,041130.092,,,,,0,3,,,M,,M,,*47
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,03,18,,,29,24,,,26,32,,,30*78
$GPRMC,041130.092,V,,,,,47.94,80.02,300117,,,N*41
$GPVTG,80.02,T,,M,47.94,N,88.84,K,N*0A
$GPGGA,041131.092,,,,,0,3,,,M,,M,,*46
$GPGSA,A,1,,,,,,,,,,,,,,,*1E

(screenコマンドを修了するときは、Ctrl+A、Ctrl+K、Yを順番に入力)

FPGAイメージ

この昨日を追加したFPGAイメージはGROWTH-DAQ/fpga/growth_fy2016_fpga_20170129_1411_with_GPS_serial_data_ADC2ch.mcs.zipとしてアップロードしてあります。書き込み手順は「GROWTH FPGA/高速ADCボード – 3 – FPGA書き込み」にまとまっているので参照してください。

上からみたドーターカード。この写真でOLEDに表示されている消費電流や時刻、温度の情報はRaspberry PiからI2C経由で設定しています。