e-yamada
2015年5月1日 15時17分
はじめまして。山田と申します。
Armadillo-840にて、RS-485の通信制御(半二重通信)を行いたいと考えております。
下記の書き込みの内容も確認させていただきましたが、
ソフトにて制御できればと考えております。
http://lists.atmark-techno.com/pipermail/armadillo/2013-January/008542…
Linuxのドライバを改造する方法などを検討しておりますが、
実際に対応された方がおられましたら、情報をいただけますと幸いです。
以上よろしくお願いいたします。
コメント
e-yamada
y.nakamura
中村です。
余計なお世話、かもしれませんが・・・
(and カーネル2.6ですが)
> LinuxではRS485対応するために構造体が用意されているようで、
> 以下に、構造体の利用方法などが記載されています。
>
> https://www.kernel.org/doc/Documentation/serial/serial-rs485.txt
>
> 実装方法は他のドライバーを参考にするのが良さそうです。
>
> Linuxカーネルのmainlineで探してみると
> drivers/tty/serial/omap-serial.c
> が参考になりそうです。
...
> 上記のドライバーなどを参考に
> linux-3.4-at/drivers/tty/serial/sh-sci.c
> を改造する流れになると思います。
Armadillo-IoTのシリアルドライバも参考になると思います。
http://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produc…
の少し下に
アプリケーションプログラムの作成方法については、
Linuxカーネルのソースコードに含まれているドキュメント
(Documentation/serial/serial-rs485.txt)を参照してください。
と書いてあり、ソースを見ると、linux-2.6.26-at21からat22の変更で、
serial-rs485.txt記載のioctlを使ったRS-485対応が実装されているようです。
linux-2.6.26-at21->at22の差分をとってみれば、
どういう修正をすればいいのか?を理解する手助けに
なるかもしれません。
(at23->at24でもRS485関係で少し修正が入ってます)
(at21->at22->at23->at24の差分を見ながらこの投稿を書いてます)
--
なかむら
e-yamada
at_kojiro.yamada
2015年5月19日 11時59分
実際に試したわけではないのですが、
参考になりそうな情報が見つかりましたので展開します。
LinuxではRS485対応するために構造体が用意されているようで、
以下に、構造体の利用方法などが記載されています。
https://www.kernel.org/doc/Documentation/serial/serial-rs485.txt
実装方法は他のドライバーを参考にするのが良さそうです。
Linuxカーネルのmainlineで探してみると
drivers/tty/serial/omap-serial.c
が参考になりそうです。
このドライバーでは、RTSの制御をGPIOで行い、RS485に対応しています。
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tr…
上記のドライバーなどを参考に
linux-3.4-at/drivers/tty/serial/sh-sci.c
を改造する流れになると思います。