Armadilloフォーラム

Armadillo-420 で USB デバイス機能の使用について

kunimaru

2016年9月20日 16時14分

Armadillo-420 で USB デバイス機能の使用について

Armadillo-420のUSBインターフェース1でPCとシリアル通信したいと考えております。

Howto : Armadillo-410 液晶モデル開発セット で USB デバイス機能を使用する
http://armadillo.atmark-techno.com/howto/a400-use-usb-gadget

Howto : Armadillo-800 EVAのUSBデバイス機能を使用する
http://armadillo.atmark-techno.com/howto/a800eva-use-usb-gadget

を参考に

USBの電源部を改造し、

menuconfigを

Device Drivers --->
    [*] USB support --->
        < > Support for Host-side USB
        <*> USB Gadget Support --->
            [*] Debugging information files (DEVELOPMENT)
            USB Peripheral Controller (Freescale USB Device Controller) --->
                Freescale USB Device Controller
            [ ] Support for OTG peripheral port on Freescale controller
            <M> USB Gadget Drivers
            <M> Serial gadget (with CDC ACM support)

としてmakeしたイメージで、
insmodコマンドを実行すると
以下のエラーが出てしまいます。

[root@armadillo420-0 (ttymxc1) ~]# insmod g_serial.ko
Using /lib/modules/2.6.26-at26/kernel/drivers/usb/gadget/g_serial.ko
gs_module_init: cannot register gadget driver, ret=-19
insmod: cannot insert `/lib/modules/2.6.26-at26/kernel/drivers/usb/gadget/g_serial.ko': No such device (-1): No such device

以下の環境でもパッチが必要なのでしょうか?
何か解決策をご存知でしたら、ご教授ください。

開発環境は
Armadillo-420
ATDE3
Linux v2.6.26-at26
です

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

以上

コメント

at_takashi.sasayama

2016年9月21日 10時01分

笹山です。

> 何か解決策をご存知でしたら、ご教授ください。

Howto : Armadillo-410 液晶モデル開発セット で USB デバイス機能を使用する
http://armadillo.atmark-techno.com/howto/a400-use-usb-gadget

上記Howtoの記載通り、linux-2.6.35-at-alpha4 環境で試してみてください。
Armadillo-410 向けの内容ですが、Armadillo-420,440 でも動作確認ができると思います。

USBケーブル(Aオス - Aオス) が手元に無かった為、 insmod までしか動作確認ができていませんが、
恐らく動作するのではないかと思います。

[root@armadillo440-0 (ttymxc1) /mnt]# uname -r
2.6.35-at-alpha4
[root@armadillo440-0 (ttymxc1) /mnt]# insmod g_serial.ko
Using g_serial.ko
g_serial gadget: Gadget Serial v2.4
g_serial gadget: g_serial ready
fsl-usb2-udc: bind to driver g_serial

笹山様コメントありがとうございます。
試すのに時間がかかり、返信が遅れてしまいました。
申し訳ありません。

> 上記Howtoの記載通り、linux-2.6.35-at-alpha4 環境で試してみてください。
> Armadillo-410 向けの内容ですが、Armadillo-420,440 でも動作確認ができると思います。
確かに
Armadillo-420+linux-2.6.35-at-alpha4
の組み合わせでPCからCOMデバイスとして認識することができました。

ただArmadillo-420でSPIも使用したいのですが、 linux-2.6.35-at-alpha4で
ここのように
Armadillo実践開発ガイド 第2部 2.3. SPI接続A/Dコンバーター
http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-3_ja-2…
設定をするとコンパイルエラーになります。

linux-2.6.26でUSB デバイス動作させられないでしょうか?

以上

> 笹山です。
>
> > 何か解決策をご存知でしたら、ご教授ください。
>
> Howto : Armadillo-410 液晶モデル開発セット で USB デバイス機能を使用する
> http://armadillo.atmark-techno.com/howto/a400-use-usb-gadget
>
> 上記Howtoの記載通り、linux-2.6.35-at-alpha4 環境で試してみてください。
> Armadillo-410 向けの内容ですが、Armadillo-420,440 でも動作確認ができると思います。
>
> USBケーブル(Aオス - Aオス) が手元に無かった為、 insmod までしか動作確認ができていませんが、
> 恐らく動作するのではないかと思います。
>

> [root@armadillo440-0 (ttymxc1) /mnt]# uname -r
> 2.6.35-at-alpha4
> [root@armadillo440-0 (ttymxc1) /mnt]# insmod g_serial.ko
> Using g_serial.ko
> g_serial gadget: Gadget Serial v2.4
> g_serial gadget: g_serial ready
> fsl-usb2-udc: bind to driver g_serial
> 

>

at_takashi.sasayama

2016年10月5日 11時42分

笹山です。

> linux-2.6.26でUSB デバイス動作させられないでしょうか?
動作実績はありませんので、恐らく使用できないものと思われます。

> ただArmadillo-420でSPIも使用したいのですが、 linux-2.6.35-at-alpha4で
> ここのように
> Armadillo実践開発ガイド 第2部 2.3. SPI接続A/Dコンバーター
> http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-3_ja-2…
> 設定をするとコンパイルエラーになります。

linux-2.6.35-at-alpha4 は標準では SPI をサポートしていません。
添付のパッチを適用すると SPI が使用できるようになります。

パッチの適用方法は以下です。

[ATDE3]$ cd linux-2.6.35-at-alpha4/
[ATDE3]$ patch -p1 < linux-2.6.35-alpha4-add-spi.patch
patching file arch/arm/mach-mx25/Makefile
patching file arch/arm/mach-mx25/armadillo400.c
patching file arch/arm/mach-mx25/armadillo400_spi.c
patching file arch/arm/mach-mx25/clock.c
patching file drivers/spi/mxc_spi.c
patching file drivers/spi/mxc_spi.h
patching file include/linux/fsl_devices.h

SPI を使用するためのカーネルコンフィギュレーションは以下です。

Linux Kernel Configuration
    System Type  --->
        Freescale MXC Implementations  --->
            Armadillo-400 Board options  --->
                [ ] Assign UART3 to CON9  #SPI1使用時はチェックを外す
                [ ] Assign UART5 to CON9  #SPI3使用時はチェックを外す
                            :
                [ ] Assign SPI1 to CON9           #SPI1使用時はチェックを入れる
                [ ]   Assign SPI1_SS0 to CON9_25  #必要に応じて選択
                [ ]   Assign SPI1_SS1 to CON9_11  #     〃
                [*] Assign SPI3 to CON9           #SPI3使用時はチェックを入れる
                [*]   Assign SPI3_SS0 to CON9_16  #必要に応じて選択
                [ ]   Assign SPI3_SS1 to CON9_18  #     〃
                [ ]   Assign SPI3_SS2 to CON9_15  #     〃
                [ ]   Assign SPI3_SS3 to CON9_17  #     〃
    Device Drivers  --->
        [*] SPI support  ---> # チェックを入れる
            --- SPI support
                 *** SPI Master Controller Drivers ***
           <*>   Utilities for Bitbanging SPI masters  # チェックを入れる
           < >   GPIO-based bitbanging SPI Master
           < >   Freescale i.MX SPI controllers
           < >   Xilinx SPI controller common module
           <*>   Freescale MXC CSPI controller         # チェックを入れる
           < >   DesignWare SPI controller core support
                 *** SPI Protocol Masters ***
           <*>   User mode SPI device driver support   # チェックを入れる
           < >   Infineon TLE62X0 (for power switching)
ファイル ファイルの説明
linux-2.6.35-alpha4-add-spi.patch linux-2.6.35-alpha4用 SPI 追加パッチ