Category: Thundercloud ProjectPage 1 of 2

macOS SierraからNucleoに書き込みできないとき

Nucleo-L432KCにmacOS Sierraから書き込めない 数日前に雷ガンマ線実験の新しい電源管理ボードのマイコンとして使っている、mbedマイコン「Nucleo-L432KC 」に新しいプログラムを書き込もうと思ったところ、MacからではUSBドライブとして認識されるものの、プログラムの花にファイルをドラッグドロップしても、ファイルとしてコピーされるだけでマイコンそのものへの書き込みとリセットが動きませんでした。 新しいファームウエアのダウンロード 2ヶ月ほど前に、このボードを受け取った直後に試験したときはプログラムの書き込みはMacからできたので、困ってしまいました。特に設定を変えたわけでもないので、弱ったなと思っていたところ、何年か前にもファームウェアをアップデートすると書き込めるようになったことがあることを思い出しました。 それで、ST MicroのNucleo-L432KCのウェブサイトから、新しいファームウエアのインストーラ(STSW-LINK007)をダウンロードしてみます。以下のスクリーンショットの水色の「ソフトウエア入手」ボタンをクリックすると、ライセンス契約の画面がでるのでACCEPTをクリック。メールアドレスを登録すると、そのメールアドレスにダウンロード用のリンクが送られてきます。 インストーラの起動 NucleoをUSBケーブルでMacに接続してから、インストーラのアイコンをダブルクリックします。 インストーラはJavaのプログラムなので、Homebrew等をつかって としてインストールしておきます。 インストーラの初回の実行ではセキュリティ設定によって起動がキャンセルされるかもしれません。システム環境設定→ セキュリティのウインドウを開いて、実行を許可するボタンをクリックしてから再度インストーラをダブルクリックすると起動できます。 ファームウエアの書き込み 以下のようなウインドウが出てきます。一番左上のドロップダウンメニューにST-LINK/…と言う文字が出ていれば接続したボードが認識されています。Open in update modeをクリックすると、ファームウエアの書き込みモードでボードを接続しなおしてくれます。 Upgradeボタンをクリックするとファームウェアの書き込みが始まります。書き込みは10秒くらいで終わると思います。 ファームウエアの更新後、プログラムを書き込めるようになりました よかったです。これで無事にMacで開発がつづけられます。さっそく電源管理ボードに新しく搭載してもらったI2C シリアルROM (EEPROM)のAT24C512Cの動作を確認したところ、書き込み・読み出しができることがわかりました。実はEEPROMに自分のプログラムからアクセスするのは初めてだったので、新しく使えるデバイスが増えて、ちょっと感動です。(最初、自分で書いた回路図に書かれていたAT24C1024Cという部品番号を信じて、256バイト単位でアクセスしたら書き込みも読み出しもできなくてはまったのですが、P板.comでの部品実装の際に、部品の入手性の問題で実際にはAT24C512Cを実装してもらっていたことがわかりました。AT24C512のブロックサイズである128バイト単位でのアクセスに変更したところ、ちゃんと動作することが確認できました)。

Raspberry Pi 3 (Jessie)にroot 5.34.36をインストール

GROWTH実験で使用するFPGA/高速ADCボードと制御・読み出し用のDAQソフトウエアは、高エネルギー実験でよく使われるCERN/ROOTのROOTファイル形式で波形データを書き出す機能があるのですが、動作試験ができていなかったのでいくつかバグがありました。 Raspberry Piにrootをインストールして動作確認する必要があったので、以下の手順でインストールしました。 ssh -YでRaspberry Piにログインしている場合、rootだけで起動するとおなじみのスプラッシュスクリーンがでてきます。 インストールした環境は GROWTH-DAQのバグについては修正完了後、インストール方法や実行例の記事をアップロードします。 ちなみに、Raspberry Pi上でのコンパイルはmake -j4で1時間以上かかるので、近所にフードコートがある場合はThunder Tea Rice (擂茶饭; バジル・ミント・小豆・ピーナッツ・いんげん・揚げ豆腐やミートボール・ナスの肉詰めが載ったごはん。抹茶や豆が入ったスープと一緒にいただく)を食べて待ちましょう。 ぼくはいままでTanjong Pagar Plaza Food CenterとAmoy Food Centerで食べました(写真はTanjong Pagar Plazaのほう)。どちらもとても美味しい。Tanjong Pagar Plazaの2階のお店のほうが具の選択肢が多いです。 シンガポールのグルメサイトでは各地のThunder Tea…

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

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

4. パルス計測プログラムのビルドと測定実行 – GROWTH FPGA/高速ADCボード

雷雲ガンマ線プロジェクト(GROWTH / Thundercloud Project)で開発したGROWTH FPGA/高速ADCボードに関する記事の第四回です。 GRWOTH FPGA/ADCボード関連の記事一覧 GROWTH FPGA/高速ADCボードの概要 GROWTH FPGA/高速ADCボードの拡張コネクタ GROWTH FPGA/高速ADCボードのFPGA書き込み パルス計測プログラムgrowth_daqのビルドと測定実行 GROWTH実験チームでは、GROWTH FPGA/ADCボード用のFPGAイメージに対応したパルス計測・波形取得用のDAQプログラム(growth_daq)をC++で開発して、オープンソースで公開しています。第三回の手順でFPGAを書き込んだボードをMacやRaspberry Piに接続して、growth_daqを実行すると、パルス信号をセルフトリガ方式でトリガしてFITSファイルやROOTファイルにデータを保存できます。なお、growth_daqはC++で記述されたスタンドアロンのプログラムですが、FPGAボードを制御したり取得したデータを伝送したりする機能はライブラリとして分離されています。このライブラリのクラスをユーザが自作したプログラムから利用すれば、実験ごとの要求に応じたデータ取得プログラムを開発することも可能です。 今回はこのgrowth_daqの入手方法、ビルド手順と実行方法を説明します。 この手順にそって作業していても、依存関係のエラーが出る場合があります。その場合はお手数ですが、このブログのコメント欄かgithubのIssueページで連絡してください。 GROWTH-DAQの入手とビルド gitレポジトリのクローン growth_daqは、githubで公開されているGROWTH-DAQというgitレポジトリに入っています。Mac/Raspberry Pi上のコマンドラインから以下のようにしてcloneしてください。gitが入っていない場合は、Homebrewやapt-getでインストールしてください。git submoduleコマンドは、GROWTH-DAQが依存しているライブラリのうち、githubからcloneできるものを自動的にcloneしてくるためのコマンドです。具体的には、GROWTH-DAQ/.gitmodulesに列挙されたライブラリがcloneされます。 なおGROWTH-DAQは、GROWTH実験で開発した検出器システムを雷雲ガンマ線の観測実験で屋外で自律運用するためのソフトウエア群をまとめたgitレポジトリなので、トップディレクトリのREADME.mdではGROWTH-FY2016(とそれ以降)の検出器を駆動する際の手順が説明されています。growth_daqはdaq/内に格納されており、対応するREADMEファイルはdaq/README.mdです。 依存関係のインストール Macでは、Homebrewをインストールしてから、以下の手順でgrowth_daqが依存しているライブラリをインストールしてください。 Raspberry…

FT2232のFT245 FIFOモードを使うときの留意点

GRWOTH FPGA/ADCボードでは、USBインタフェースとしてFuture Technology社のFT2232Hを搭載しています。FT2232は、USB2の高速伝送(最高40MBytes/s)に対応したシリアル-USB変換とパラレル-USB変換を2ch搭載したインタフェース変換ICで、秋月ではUSBコネクタ付きのFT2232Dのモジュール版が1450円で販売されています。 チップ単体で720円(RS)と安価で、高速通信できる仮想COMポートが2ポート取れるので、自作FPGAボードを作るときにとても便利なチップです。 A側とB側の2つのChannelは、それぞれ独立した仮想COMポートとしてMacからは認識されます。デフォルトでは、FT232のようなRS232非同期シリアル-USB変換インタフェースとして動作します。外部に設定保存用のEEPROMを付けて、FTProgというWindows用の設定ソフトウエアから設定を書き込むと、Channel AはRS232非同期シリアルモード、Channel BはFT245 Asynchronous FIFOモードで動作させることができます。このモードだと、使用時に専用ドライバ(libftd2xx)からの設定は不要で、普通の仮想COMポートとして認識されつつも最大8MBytes/sくらいの伝送ができてとても便利です(Rubyのシリアル通信ライブラリやboostから使えるので、ポータビリティも高い)。 FT245 Synchronous FIFOモードでは、最大40 Mbytes/sという高速通信ができます。ただFT245 Synchronous FIFOモードを使うためには、EEPROMとFTProgからの設定に加えて、ソフトウエア側からのモード設定変更が必要なのと、Channel Bしか使えなくなる(Channel A側のバッファなどが内部的にChannel Bの通信用に使用されるため)、データ送受信もlibftd2xxの関数を用いて行う必要がある(i.e. 仮想COMポートとしては使えない)という点がややネックですが、これらの手間をおぎなってあまりある通信速度なのでしかたないですね。 FT245 FIFOモードを使うときの留意点 実際にFT245 FIFOモードのFPGA側のインタフェースを記述するときに設定内容で少し混乱したのでメモしておきます。 FT245-likeなFIFOモードとして使用するときは、外付けのEEPROMが必要。 FT245-likeなFIFOモードとして使用するときは、FTProg等の専用の設定ソフトで、EEPROMにモード設定を書き込んでおく必要がある。 FT245-likeなFIFOとして動作するモードはSynchronous FIFOとAsynchronous FIFOの2つのモードがある。 FT245 FIFOモードに設定してある場合、電源投入後はFT245 Asynchronous FIFOモードで起動する。この状態で、何もしなくても非同期モードでの通信は可能。…

GROWTH FPGA/高速ADCボード – 3 – FPGA書き込み

雷雲ガンマ線プロジェクト(GROWTH / Thundercloud Project)で開発したGROWTH FPGA/高速ADCボードに関する記事の第三回です。 GRWOTH FPGA/ADCボード関連の記事一覧 GROWTH FPGA/高速ADCボードの概要 GROWTH FPGA/高速ADCボードの拡張コネクタ GROWTH FPGA/高速ADCボードのFPGA書き込み パルス計測プログラムgrowth_daqのビルドと測定実行 購入直後のGROWTH FPGA/高速ADCボードは、シマフジ電機による試験用のFPGAイメージが書き込まれています。実験等でADCの波形データの取得をおこなうためには、以下のいずれかの方法でFPGAイメージを用意して、Xilinx社のUSBダウンロードケーブル(プラットフォームケーブルUSB II)を用いてボード(上のEEPROM)に書き込む必要があります。 GROWTH実験が公開している標準のFPGAイメージをダウンロードする 自分たちの実験で必要な機能を独自にVHDL / Verilog HDL等で実装する この記事では「1. GROWTH実験が公開している標準のイメージをダウンロードする」について説明します。独自にFPGAを実装したい場合は、シマフジ電機から提供される仕様書と回路図をもとに機能を開発してください。 FPGA書き込みに必要なもの 12V電源 (6W以上供給可能な2.1mmプラグのACアダプタもしくは、直流安定化電源) 例: 秋月電子で販売されているACアダプタの例…

GROWTH FPGA/高速ADCボード – 2 – 拡張コネクタ

GROWTH FPGA/高速ADCボードに関する記事の第二回です。 GRWOTH FPGA/ADCボード関連の記事一覧 GROWTH FPGA/高速ADCボードの概要 GROWTH FPGA/高速ADCボードの拡張コネクタ GROWTH FPGA/高速ADCボードのFPGA書き込み パルス計測プログラムgrowth_daqのビルドと測定実行 このボードは2×20ピンの拡張コネクタ(2.54mmのソケット)を2個備えています。CN4がドーターカード用、CN5がRaspberry Pi用のコネクタになっています。 Raspberry Piはオンボードコンピュータ(搭載計算機)として、計算機・ストレージストレージまでボードと一緒に組み込みたい場合に接続します。ドーターカードは、検出器固有のアンプ回路や高圧電源モジュールを搭載するために利用します。ドーターカード用拡張コネクタには、アンプ出力を高速ADCのアナログ入力に接続するためのピンが用意されているので、ドーターカード上で生成した信号をケーブルを介さずに高速ADCで読み込むことができます。(2.54mmのソケットを利用しているので、アナログ帯域は数十MHzが限度と思われますが、FPGA/ADCボード上のADC用のバッファアンプ周りは、シマフジ電機さんの技術力でもっと高速な信号まで処理できるようになっています。広帯域が必要な場合はLEMOコネクタから直接信号を入力してください) Raspberry PiのGPIOコネクタに出ているSPI/I2Cはそれぞれ以下のように配線されています(ドータカードのデバイス構成は和田くんのPMT用アンプ・高圧電源ボードを使った場合の例)。 バス接続先接続されているデバイス SPI FPGA/ADCボード Slow ADC (MCP3208) Slow DAC (MCP4822) I2C ドーターカード…

GROWTH FPGA/高速ADCボード – 1 – 概要など

昨年アカデミストを通じてクラウドファンディングにも挑戦した「雷雲ガンマ線実験(雷雲中の高電場での粒子加速に迫るための実験 = GROWTH実験)」の、2016-17年の冬シーズンの観測実験にむけて、ガンマ線検出器の小型化と多点観測にむけた量産を進めています。(ちなみに実験の初期の頃の信号処理システムは、大型のデスクトップマシンと「VME」や「NIM」という規格のこれまたデスクトップPCくらいのサイズのADC/アンプボードでした。これらを格納するために人が入って数日暮らせるくらいの大きさのアルミフレーム製の小屋を(榎戸さんが)作って観測場所に持って行きました。信号処理回路やPC、データ記録装置(SDカード)まで含めて10cm角サイズに収まるようになったことは感動的なエレクトロニクス技術の進歩です) 雷雲ガンマ線実験(GROWTH実験) – 京都大学の榎戸さん、原研の土屋さん、東京大学の中澤さん、和田さん、奥田さん、理研の中野さんなどと進めている楽しい基礎科学の観測実験プロジェクト。2015年度の観測結果のまとめは「冬季雷雲のガンマ線測定を狙う多地点観測システムの新規開発」(榎戸、湯浅、和田ほか 2016年5月)を参照してください。 先日、榎戸さんの研究費でシマフジ電機とともに開発したFPGA/高速ADCボードが届いたので、週末や夜の時間をつかってFPGAのコーディングを進めました。2015年度の観測装置のSpartan-6 FPGAボードで動いていたパルス計測用のVHDLコードが、今回のボードのArtix-7 FPGAとAD9231という50Mサンプル/秒のADCチップでも動作するようになりました(8月最終週)。また、9月3-4日の週末を使って、このFPGA/ADCボードに載せてあるSPIのSlow ADC/DACとLED、GPIOピンをRaspberry Piから制御することもできるようになりました。 今後何回かに分けて、このボードの試験の様子をレポートしていきます。このボードを使う実験メンバや、他の実験向けに利用してみたいという人の参考になれば幸いです。 【2016年12月28日追記】 GROWTH関連の成果物(ハードウエア/ソフトウエア)を利用する人が、使い方やコードの改良について質問・議論するためのGoogleグループ「GROWTH Users Group」を作成しました。Googleアカウントでログインすれば誰でも登録申請できるようにしているので、興味のある方は登録してみてください。 GRWOTH FPGA/ADCボード関連の記事一覧 GROWTH FPGA/高速ADCボードの概要 GROWTH FPGA/高速ADCボードの拡張コネクタ GROWTH FPGA/高速ADCボードのFPGA書き込み パルス計測プログラムgrowth_daqのビルドと測定実行 初回はボードの概要と仕様をまとめます。 GROWTH FPGA/ADCボードの概要…

Raspberry Pi 3とブレッドボードを1枚にまとめる

今年の冬の雷雲ガンマ線観測のためにRaspberry Pi 3に温湿度・大気圧センサやOLEDディスプレイを接続して検出器制御ソフトウエアを作成しています。Raspberry Piとブレッドボードを机の上において作業していると、ぶらぶらしてちょっと危ないのでAliexpressのお店からRaspberry Piと小型のブレッドボードを固定するためのアクリルプレート(Breadboard Mounting Plate Prototype Experiment Plate for Raspberry Pi 3)を購入。Raspberry Piを取り付けるためのネジ穴があいたアクリル板と取り付けネジ、ゴム足が付属したキットでUS$5。送料は実質1週間くらいで届く「China Post Ordinary Small Packet Plus」プラン(公称配送日数は18-30日)だと無料。 今回もこれまで注文したOLEDやGPSモジュール同様、1週間くらいで配送されてきました。内容物は以下の写真のとおり。ブレッドボードはついていないので、自分で用意する必要があります(秋月などの部品屋さんで売っている小型のものなら取付可能。ぼくが使ったのは85mm × 55mmサイズ)。ブレッドボードに元から付いていた両面テープをつかって貼り付けました。 関連記事 → Aliexpressで600円のGPSモジュールを使ってみる → Raspberry PiでI2C接続の128×64 OLEDに日本語を表示(美咲フォント)…

Aliexpressで600円のGPSモジュールを使ってみる

先日の「Raspberry Piで128×64のOLEDに日本語を表示(美咲フォント)」に続き、今年の冬の雷雲ガンマ線観測で使用するGPSモジュールの動作試験をしてみました。このモジュールは、Aliexpress (Alibaba)のお店で$5.58(購入時のレートで約600円)で売られている「NEO-6M GPS」というもの。レシーバはubloxのNEO-6M-0-001(データシートPDF)を搭載。まだ試していませんが、RTC用の電池も載っているように見えます。が無料配送のオプションを選択すると、「China Post Ordinary Small Packet Plus」という配送サービスで中国からシンガポールまで約1週間で配送されてきます。 【参考】雷雲プロジェクト – Thundercloud Project 本番の環境では、製作中のFPGA/ADCボード上のFPGAにGPSの1PPS信号とシリアル出力(NMEA出力)を接続して、FPGA/ADCで検出したガンマ線1個1個に精密な時刻付けをするために使用します。が、まだFPGA/ADCボードが手元にないので、今回はUSB-シリアル変換モジュールを使ってMacから簡単な動作試験。 秋月のFT232RLを使ったUSB-Serial変換モジュール(AE-UM232R)のRx/Txに、このモジュールのTx/Rxを接続して、3.3Vを供給します。接続のときは、 GPSモジュールのTx → FT232RLのRx FT232RLのTx → GPSモジュールのRx となることに注意(当たり前といえば当たり前ですが)。 screenコマンドで9600bpsでFT232RLに接続して、窓際において5分くらい待つと、 のように、メッセージが表示されるようになりました。 NMEA形式のメッセージを解釈してくれるウェブサービス (http://freenmea.net/decoder )で変換してみたところ、以下のようにちゃんと現在の位置と時刻が表示されました。 2016-07-03T07:07:45Z 1°17’56.59”N, 103°50’13.97”E…