kazukitakahashi
2019年3月8日 11時34分
解決扱いになっているのか、以前の投稿に続けた質問に返信が無いので
新規投稿させていただきます。
https://users.atmark-techno.com/forum/armadillo/3776
上記投稿の中でご教示頂いた方法により
Armadillo-IoT G3L、CON5デバッグシリアルインターフェースのフロー制御用端子を
出力のGPIOとして動作させることができました。
ただ、OS起動からアプリが出力のGPIOとして制御を開始するまで
当該端子の出力が安定しませんでした。(0.5V程度が継続)
GPIOの初期値が入力だからでしょうか?
できれば、立ち上げ時はきれいなLOWを出力してほしいのですが
GPIOとしたこの端子の初期値も設定する方法はないでしょうか?
一時回答だけでも返信頂けると幸いです。
コメント
at_koseki
古関です。
回答が遅れてしまい申し訳ありません。
kernel起動前だと、以下状況でのピンの状態もケアしなければなりませんね。
(1) 電源投入直後(i.MX7リセット直後のデフォルト設定)
i.MX7のデータシートを確認しましたが、どちらもGPIO input 100k pulldownのようです。
lowが期待値とのことですので、ここはこのままで良さそうです。
(期待値と逆だったらSoC側より強くハード的にpulldownする必要があったのですが)
(2) ブートローダー起動後の設定
中村様が回答済みですが、
bootloaderは以下の処理を変更すればできると思います。
---------------------------------------------------------------------------------------
board/atmark-techno/x1/x1.c
static iomux_v3_cfg_t const uart5_pads[] = {
MX7D_PAD_GPIO1_IO06__UART5_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
MX7D_PAD_GPIO1_IO07__UART5_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
MX7D_PAD_GPIO1_IO04__UART5_CTS_B | MUX_PAD_CTRL(UART_PAD_CTRL),
MX7D_PAD_GPIO1_IO05__UART5_RTS_B | MUX_PAD_CTRL(UART_PAD_CTRL),
};
---------------------------------------------------------------------------------------
y.nakamura
中村です。
> (1) 電源投入直後(i.MX7リセット直後のデフォルト設定)
> i.MX7のデータシートを確認しましたが、どちらもGPIO input 100k pulldownのようです。
なら、ブートローダのRTSとCTSの設定
> MX7D_PAD_GPIO1_IO04__UART5_CTS_B | MUX_PAD_CTRL(UART_PAD_CTRL),
> MX7D_PAD_GPIO1_IO05__UART5_RTS_B | MUX_PAD_CTRL(UART_PAD_CTRL),
をコメントにして初期化しないようにするだけでも
よさそうですね。
--
なかむら
kazukitakahashi
kazukitakahashi
y.nakamura
at_koseki
古関です。
以下URLに書かせていただきましたdtbのサンプルだと、外部pulldown前提で書いてしまったため、
SoC側でpulldownしておらず、フローティング状態かもしれません。
https://users.atmark-techno.com/comment/6705#comment-6705
"armadillo_iotg_g3l.dtb" を以下のように修正し、SoCの内部pulldownを有効にすることで対策にならないでしょうか。
---------------------------------------------------------------------
pinctrl_lpsr_uart5: lpsr_uart5grp {
fsl,pins = <
MX7D_PAD_GPIO1_IO07__UART5_DCE_TX 0x00
MX7D_PAD_GPIO1_IO06__UART5_DCE_RX 0x70
MX7D_PAD_GPIO1_IO05__UART5_DCE_RTS 0x10 ※削除
MX7D_PAD_GPIO1_IO05__GPIO1_IO5 0x10 ※追加
MX7D_PAD_GPIO1_IO04__UART5_DCE_CTS 0x00 ※削除
MX7D_PAD_GPIO1_IO04__GPIO1_IO4 0x10 ※追加
>;
};
---------------------------------------------------------------------
y.nakamura
中村です。
スミマセン、訂正です。
何本か前に
> なら、ブートローダのRTSとCTSの設定
> > MX7D_PAD_GPIO1_IO04__UART5_CTS_B | MUX_PAD_CTRL(UART_PAD_CTRL),
> > MX7D_PAD_GPIO1_IO05__UART5_RTS_B | MUX_PAD_CTRL(UART_PAD_CTRL),
> をコメントにして初期化しないようにするだけでも
> よさそうですね。
と書きましたが、
古関さん:
> 以下URLに書かせていただきましたdtbのサンプルだと、外部pulldown前提で書いてしまったため、
> SoC側でpulldownしておらず、フローティング状態かもしれません。
これを忘れてました。
カーネル起動後にDevicTreeでの設定がありました。
--
なかむら
kazukitakahashi
y.nakamura
2019年3月8日 11時48分
中村です。
> 解決扱いになっているのか、以前の投稿に続けた質問に返信が無いので
> 新規投稿させていただきます。
>
> https://users.atmark-techno.com/forum/armadillo/3776
の投稿を読んだときに、
アットマークテクノさんが何か示してくれると期待して、
書かずにいました。すぐに書けばよかったですね。
> できれば、立ち上げ時はきれいなLOWを出力してほしいのですが
> GPIOとしたこの端子の初期値も設定する方法はないでしょうか?
>
> 一時回答だけでも返信頂けると幸いです。
ブートローダーを改造して、ブートローダーでプルダウンに
設定することで可能と思います。
--
なかむら