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
*
* 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