そのボード、僕が積んでおきます。

たくさんの電子工作基板が積みっぱなしになってるので、頑張って工作しようとしていますが、どんどん溜まっていっております。

FRDM-KL25Zでmbed【USB serial編】

Lチカ編では、mbedでプログラムの書き込みをする方法と、DigitalOut、PwmOutまで試してみた。今回はFRDM-KL25Zに搭載されたセンサーを使ってみようかな、と思ったけど、その前にデバッグとかでも使いたいので、シリアル通信の準備をする。

 

USB serialでシリアル通信

FRDM-KL25Z | mbed

FRDM-KL25Zには3つのUARTが搭載されている。USB-Serial変換のチップを使い、UARTでシリアル通信をしてもいいけど、せっかく接続しているUSBポートで接続しているのだから、USBを利用した通信を行ってみることにする。

 

Hello World!

USBポートを利用したシリアル通信はmbedに準備されている。

#include "mbed.h"

Serial usbserial(USBTX, USBRX);

int main() {
    while(1) {
        usbserial.printf("hello world!\r\n");
        wait(2);
    }

このように、SerialクラスのインスタンスをUSBTXとUSBRXをパラメータとして渡して作り、インスタンスのprintf()メソッドを用いればいい。

このプログラムを実行すると、2秒に1回、「Hello World!」がシリアルに投げられる。

 

Mac側でTerminalからシリアル通信を行う

FRDM_KL25Zと接続したMac側でシリアル通信の準備をする。

Macのterminalから以下のコマンドでシリアルデバイスを確認する。

ls /dev/tty.* 

すると、現在Macで認識されているシリアルデバイスが確認できる。僕のところでは、

「/dev/tty.usbmodem1422」としてFRDM_KL25Zが認識されている。

このポートでシリアル通信を行う場合、以下のコマンドを実行する。

sudo cu -l /dev/tty.usbmodem1422

シリアルデバイスのりようにはsu権限が必要となるのでsudoでcuコマンドを実行する。

これで準備完了。

 

Windowsでは、USBポートの認識にデバイスドライバのインストールが必要となるかもしれない。

Windows serial configuration - Handbook | mbed

このページを見て、ドライバのインストールを行うこと。

 

シリアル通信の確認

シリアルをつないだ状態で、先ほどのプログラムをコンパイルしてできたバイナリをMBEDドライブにコピーすると、一旦デバイスが切断される。この際、Terminalには「cu: Got hangup signal」と表示され、シリアル接続が切断される。再度MBEDドライブがマウントされたのを確認したら、cuコマンドを再度実行する。

 

ボードには新しいプログラムが書き込まれただけでまだ実行されていないので、シリアルが接続されたのを確認した後、ボードのresetボタンを押すと、ボード側でプログラムが実行される。

 

MacのTerminalに「Hello World!」の文字が打ち出されればUSB serialを用いたシリアル通信の確認完了。

 

次回こそ、FRDM_KL25Zに搭載されたセンサーを用いたプログラミングを行う。

 

Freescale FRDM-KL25Z

Freescale FRDM-KL25Z