Armadilloフォーラム

Armadillo-410でUART4を使用するには

funayama

2014年6月18日 14時06分

お世話様です。

現在Armadillo-410では、pin:57(TxD)、pin58(RxD)にUART4としてGPSが接続されています。
(※Armadillo-410 ハードウェアマニュアル Ver 1.0.1、P.28、表6.6のマルチプレクスBの形)

①使用できるデバイスファイルは標準のttymxc3でよろしいのでしょうか。

 /dev/ttymxc3   UART4
 (※Armadillo-400シリーズ ソフトウェアマニュアル Ver 1.8.1)

②コンフィグレーションの設定方法をご教授下さい。
カーネルコンフィグレーションで、”ARMADILLO400_UART4_CON11”を"y”とすることだけでよろしいのでしょうか。

(※Armadillo-410上で見ると、この/dev/ttymxc3が存在しません)
(※Armadillo-410 ハードウェアマニュアル Ver 1.0.1では、P.67の
  A440との対応説明しかcon11は出てこないのですが...)

よろしくお願いいたします。

コメント

at_daisuke.sasaki

2014年6月19日 18時36分

佐々木大輔です。

> 現在Armadillo-410では、pin:57(TxD)、pin58(RxD)にUART4としてGPSが接続されています。
> (※Armadillo-410 ハードウェアマニュアル Ver 1.0.1、P.28、表6.6のマルチプレクスBの形)
>
> ①使用できるデバイスファイルは標準のttymxc3でよろしいのでしょうか。

UART4を使用する場合のデバイスファイルは「/dev/ttymxc3」で正しいです。

> ②コンフィグレーションの設定方法をご教授下さい。
> カーネルコンフィグレーションで、”ARMADILLO400_UART4_CON11”を"y”とすることだけでよろしいのでしょうか。

「make menuconfig」のインターフェースを使用したカーネルコンフィグレーションでは
「Enable UART4 at CON11」と「UART4」にチェックを入れれば良いです。
 ※「Enable UART4 at CON11」にチェックを入れると「UART4」にもチェックが入ります。

Linux Kernel v2.6.26-at19 Configuration
    System Type  --->
        Freescale MXC Implementations  --->
            MX25 Options  --->
                Armadillo-400 Board options  --->
                    [*] Enable UART4 at CON11 チェックを追加
                    [*] UART4           チェックを追加         

上記menuconfigを実施すると、以下のコンフィグが"y"となります。

ARMADILLO400_UART4_CON11
ARMADILLO400_CON11_44_UART4_RXD
ARMADILLO400_CON11_45_UART4_TXD
SERIAL_MXC_SELECT4
ARMADILLO400_UART4_WAKE_SRC_SELECT
SERIAL_MXC_WAKE_SRC_SELECT4

佐々木さん

大変遅くなり申し訳ありません。

デバイスファイルttymxc3が見えるようになりました。
ありがとうございました。

お世話になっております。

続きの質問になります。
冒頭で記述していますが、
現在Armadillo-410では、pin:57(TxD)、pin58(RxD)にUART4としてGPSが接続されています。
デバイスファイル(/dev/ttymxc3)を指定しOpenし正常終了するのですが、
UART4の通信がうまくいきません。

GPSに対するコマンドを送信(write)し応答を待つところで(read)で、だんまりになってしまいます。
ちなみに、デバイスファイルをttymxc2にしたところ同じ現象となります(当然相手がいませんので)。

シリアル通信のプログラムは、「Armadillo実践開発ガイド 第2部 6.5.1 シリアルエコーサーバー」
のソースプログラムをベースに、read()とwrite()の処理の部分を逆にして、
GPSコマンドをwrite()して、何もせずread()を呼び出しています。

UART4、もしくは、pin57,pin58との接続が有効になっていないような気もしています。

解決策をご教授下さい。
よろしくお願いいたします。

お世話になっております。
UART4についてハード側の問題解決により送受信ができるようになりました。
お騒がせ致しました。

ただ、GPS利用に関してPPSの割込みを受けて受信しないと正しく情報が
取得できない問題があります。
今、GPSのPPS出力が
A410 pin53
につながっております。
その信号から割込みを発生させ、そのタイミングで受信を行おうと思うのですが、
どのような設定が必要でしょうか。
ご教授下さい。よろしくお願いいたします。

お世話になっております。

GPIOに関する投稿を見つけ、同じようにやったところうまく受信ができるようになりました。
・A410  CON2_53 GPIO1_1
・拡張ボード CON11_49 GPIO1_1
ATDE3:
 /linux-2.6.26-at19/arch/arm/machh-mx25/Kconfig
で該当箇所を変更することで、
Armadillo-410:
 /sys/class/gpio/CON11_49
が現れました。
fd=open("/sys/class/gpio/CON11_49/direction", O_RDWR);
write(fd,"in",2);  // 入力に設定
open("/sys/class/gpio/CON11_49/edge", O_RDWR);
write(fd,"rising",6);  // 立ち上がりエッジに設定
も、うまく行き、
poll(&pfd,1,-1); // 割り込み待ち
で、PPSのタイミングに合わせてreadできるようになりました。
ありがとうございました。