TOPへ
特殊電子回路について

English
Loading
トップ ページ >  チュートリアル > RX-MEGAにMRAYーGBを載せてGPSを受信する

RX-MEGAにMRAYーGBを載せてGPSを受信する

MARY-GBは、9600bpsのシリアル通信でGPSのデータを出力してきます。

RX-MEGAにはMARYの拡張基板をのせるコネクタが2つ用意されています。右側のコネクタにMARY-GBを乗せた場合はRXのSCI6Aに、左側に乗せた場合はRXのSCI2Bに接続されます。

どちらがいいかというと、断然、右側のSCI6Aです。

なぜならば、RXマイコンのSCI2Bは、ポートP50と共有されています。RX62NのP50、P51、P52あたりは鬼門中の鬼門で、外部バス(SDRAMなど)を有効にすると、有無を言わさずに外部バス用のポートになってしまうのです。

つまり、SCI2BとSDRAMは同時には使えません。

実際に、MARYコネクタの右側にMARY-GBモジュールを乗せます。

プログラムは簡単なものを作ります。MARY-GBから受信したGPSの文字列を、USB仮想COMポート経由でホストPCに投げるだけの簡単なものです。

このプログラムをROMに書き込んで、装置全体を空が見える窓際に置いて、GPSの受信をしてみます。

すると、以下のようなデータをシリアルに投げてきました。

室内ではうまくGPSを補足できませんでしたが、屋外に出てしばらく置いておいたところ、無事に座標を取得できるようになりました。

作ったプログラムは次のようなものです。

int main() {
    sci_init(SCI_SCI6A,9600); // SCI6-Aを使う
 
    TKUSB_Init(); // USBを使う
    while(1) {
        while(sci_rxcount()) {
            char c = sci_getc(); // GPSから1文字受信
            TKUSB_SendByte(c); // それをUSBに投げる
        }
    }
}