[Armadillo:06112] Re: Armadillo-440でシリアル通信のボーレートを変更する方法について

和佐田 翔一 email@hidden
2010年 11月 5日 (金) 18:29:16 JST


溝渕様

和佐田です。

> どのようにシリアルポートの設定を確認しましたか?
>   
手元にArmadillo-440のシリアルポート2と通信を行うための部品がないので、
シリアルポート1から出力される電文をロガーで確認し、正常に取得できる
ボーレートを調べることで確認しています。
ちなみにH8マイコンから送信している電文は19200bpsで正常に確認できている
状態です。

現在、下記サイトにあるLinuxカーネルとAndroidユーザランドを使用しているの
ですが、
バージョンが原因で変更できなかったりすることは有り得たりするのでしょうか?

http://armadillo.atmark-techno.com/howto/try-android-on-armadillo440



On 2010年11月04日 16:28, mizo wrote:
> 溝渕です。
>
> 和佐田 翔一 wrote:
>   
>> 古賀様
>>
>> 和佐田です。返信が遅くなってしまい申し訳ございません。
>>
>>     
>>> 念のために確認ですが、同様のソースコードを PC Linux で動かした場合
>>> (※デバイス名は "/dev/ttymxc1" から変更する必要がありますが)、
>>> および、Armadillo-440 にプレインストールされた Linux で動かした場合、
>>> 送信ボーレートは意図通りに変更されるでしょうか?
>>>   
>>>       
>> PC Linux(Ubuntu 10.04.1 LTS)で実行してみたところ、変更できませんで
>> した。
>> そもそも変更方法自体間違っているということなのでしょうか?
>> 何分、Linux開発の経験が浅いので、参考になるHPなどご存知でしたら
>> ご教示頂けないでしょうか?
>> 宜しくお願いいたします。
>>     
> どのようにシリアルポートの設定を確認しましたか?[Armadillo:06062]のコー
> ドから、退避したtermios設定でシリアルポートの復旧を行なうコードを削除し
> た(sttyコマンドで設定が確認できるようにするため)もので動作確認してみました。
>
> [armadillo440]# stty -F /dev/ttymxc2
> speed 9600 baud;
> -brkint -imaxbel
> [armadillo440]# ./a.out
> [armadillo440]# stty -F /dev/ttymxc2
> speed 19200 baud;
> intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof =
> <undef>;
> start = <undef>; stop = <undef>; susp = <undef>; rprnt = <undef>;
> werase = <undef>; lnext = <undef>; flush = <undef>; min = 0; time = 1;
> -brkint -icrnl -imaxbel
> -opost -onlcr
> -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
>
> ボーレート自体は設定できているようです。
>
> 以上です。
>
>   
>> On 2010年11月02日 17:58, Shin-ya Koga wrote:
>>     
>>> サムシングプレシャスの古賀です。
>>>
>>> 和佐田さん([Armadillo:06064]):
>>>   
>>>       
>>>> 早速、ご返信いただき、ありがとうございます。
>>>>
>>>>     
>>>>         
>>>>> そうではなく、tcgetattr() を呼び出す前に、*oldtio に対して* bzero()
>>>>> を呼び出すように変えてみては、いかがでしょうか。
>>>>>       
>>>>>           
>>>> 上記アドバイスを受けて下記のように変更してみました。
>>>>
>>>> ----------------------------------------------------------------------------------
>>>>
>>>>  fd = open("/dev/ttymxc1", O_RDWR | O_NOCTTY);
>>>>
>>>> bzero(&oldtio, sizeof(oldtio));
>>>>
>>>> tcgetattr(fd,&oldtio);
>>>> newtio = oldtio;
>>>>
>>>>  …
>>>> ---------------------------------------------------------------------------------
>>>>
>>>> しかし、やはり送信ボーレートが9600bpsになってしまいます。
>>>>
>>>> もしかしたら古賀様のアドバイスに対しての私の変更が間違っているのかもしれ
>>>> ません。
>>>> 恐れ入りますが、上記変更内容についてご確認していただけないでしょうか。
>>>>     
>>>>         
>>> bzero() の呼び出し方は、上のコードで良いと思います。
>>>
>>> 念のために確認ですが、同様のソースコードを PC Linux で動かした場合
>>> (※デバイス名は "/dev/ttymxc1" から変更する必要がありますが)、
>>> および、Armadillo-440 にプレインストールされた Linux で動かした場合、
>>> 送信ボーレートは意図通りに変更されるでしょうか?
>>>
>>> --
>>> 古賀信哉 (株)サムシングプレシャス
>>> _______________________________________________
>>> armadillo mailing list
>>> email@hidden
>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>>
>>>
>>>   
>>>       
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>
>>
>>     
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
>
>   




armadillo メーリングリストの案内