Armadillo-IoT(G3)と組み合わせて利用可能な
RS232Cアドオン(OP-AGA-RS00-00)
の
CON3/CON4(テストインタフェース)のスルーホールで、
Armadillo-IoTゲートウェイ G3 マルチプレクス表のUART、I2C、GPIO等の機能(※)が使用できます。
※)同表の「RS232C RS00」列で使用されている端子以外で使用可能な機能。
ここでは、Armadillo-IoT(G3)のアドオンインタフェース(CON2)に接続した場合に、
RS232CアドオンのテストインタフェースでUART3(※)を使用可能にします。
※)RS232Cアドオンは、Armadillo-IoT(G3)のアドオンインタフェース(CON1)および
Armadillo-X1のアドオンインタフェース(CON7)でも使用できますが、これらのアドオンインタフェースには
UART3は割り当てられていないため、本方法は使用できません。
1.RS232CアドオンのテストインタフェースでUART3に使用可能な端子
Armadillo-IoTゲートウェイ G3 マルチプレクス表のUART3の列より、Armadillo-IoT(G3)の
アドオンインタフェース(CON2)の下記の端子でUART3が使用可能になっています。
36ピン:UART3_RX_DATA
37ピン:UART3_TX_DATA
Armadillo-IoT ゲートウェイ G3製品マニュアル 表19.7 CON4 信号配列より、Armadillo-IoT(G3)の
アドオンインタフェースの信号は、RS232Cアドオンのテストインタフェースにスルーされています。
よって、ここでは、RS232Cアドオンのテストインタフェースの下記の端子がUART3として使用できます。
CON4の36ピン:UART3_RX_DATA
CON4の37ピン:UART3_TX_DATA
2.Armadillo-IoT(G3)のアドオンインタフェース(CON2)のUART3の設定
Armadillo-IoT(G3)のアドオンインタフェースの端子の機能を設定する場合は、
下記ディレクトリ内にある、アドオンのデバイスツリーのソースコードに記述します。
linux-4.9-x1-at[version]/arch/arm/mach-imx/armadillo_iotg_addon
Armadillo-IoT(G3)のアドオンインタフェース(CON2)にRS232Cアドオンを接続した場合の
デバイスツリーのソースコードは、上記ディレクトリの下記ファイルになります。
addon_atmark_techno_rs232c_iotg_g3_intf2.dts
上記のファイルを下記のように変更します。
addon_atmark_techno_rs232c_iotg_g3_intf2.dts
/* * Copyright (C) 2017 Atmark Techno, Inc. All Rights Reserved. * Author: Daisuke Mizobuchi <mizo@atmark-techno.com> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. */ #include <dt-bindings/clock/imx7d-clock.h> #include "../../../../arch/arm/boot/dts/imx7d-pinfunc.h" /dts-v1/; /plugin/; / { fragment@0 { target = <&iomuxc>; __overlay__ { addon-intf2 { pinctrl_uart2: uart2grp { fsl,pins = < MX7D_PAD_LCD_VSYNC__UART2_DCE_CTS 0x00 /* INTF2_38 */ MX7D_PAD_LCD_HSYNC__UART2_DCE_RTS 0x70 /* INTF2_39 */ MX7D_PAD_LCD_ENABLE__UART2_DCE_TX 0x00 /* INTF2_40 */ MX7D_PAD_LCD_CLK__UART2_DCE_RX 0x70 /* INTF2_41 */ MX7D_PAD_I2C3_SCL__GPIO4_IO12 0x70 /* INTF2_42 */ MX7D_PAD_SAI2_TX_SYNC__GPIO6_IO19 0x70 /* INTF2_46 */ MX7D_PAD_SAI2_TX_BCLK__GPIO6_IO20 0x70 /* INTF2_47 */ MX7D_PAD_SAI2_RX_DATA__GPIO6_IO21 0x70 /* INTF2_48 */ MX7D_PAD_SAI2_TX_DATA__GPIO6_IO22 0x70 /* INTF2_49 */ >; }; /**** 20200928: begin ****/ pinctrl_uart3: uart3grp { fsl,pins = < MX7D_PAD_UART3_RX_DATA__UART3_DCE_RX 0x70 /* INTF2_36 for UART3_RX*/ MX7D_PAD_UART3_TX_DATA__UART3_DCE_TX 0x00 /* INTF2_37 for UART3_TX*/ >; }; /**** 20200928: end ****/ }; }; }; fragment@1 { target = <&uart2>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart2>; fsl,uart-has-rtscts; status = "okay"; }; }; /**** 20200928: begin ****/ fragment@2 { target = <&uart3>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart3>; status = "okay"; }; }; /**** 20200928: end ****/ };
補足)上記のソースコード内で、下記コメントで挟んであるところが、
CON4の36,37ピンをUART3に設定した箇所です。
/**** 20200928: begin ****/
/**** 20200928: end ****/
上記の変更後、ビルドして生成された下記uImageとdtbで、
Armadillo-IoT(G3)のカーネルイメージとデバイスツリーを書き換えます。
linux-4.9-x1-at[version]/arch/arm/boot/uImage
linux-4.9-x1-at[version]/arch/arm/boot/dts/armadillo_iotg_g3_m1.dtb
RS232CアドオンをArmadillo-IoT(G3)のアドオンインタフェース(CON2)に接続して起動すると、
UART3は/dev/ttymxc2というデバイスファイル(※)で制御できるようになっています。
※)例えば、ボーレート等の設定は下記コマンドで確認できます。
stty -F /dev/ttymxc2 -a