Armadilloフォーラム

Armadillo-IoT A6をリブートするとき、GPIOが一瞬とはいえ、H出力になってしまう。

sawadamasanori

2021年8月31日 18時33分

 澤田です。いつもお世話になっております。

 Armadillo-IoT A6をリブートしたときの現象なのですが、サブユニットCON3におけるピン番号3(ピン名「GPIO1_IO17」GPIO番号「17」)及びピン番号5(ピン名「GPIO1_IO16」GPIO番号「16」)において、一瞬だけハイレベルの出力が出る現象がありますが、これはArmadillo-IoT A6の仕様と考えてよろしいでしょうか。

 もし、ブートローダーのバージョンを最新のものにする等によって、この現象を回避できる場合にも御指南を頂けますと非常に助かります。
 現在、ブートローダーにはソース「linux-v4.14-at33.tar.gz」をコンパイルしたものを使用しています。

 何卒よろしくお願い申し上げます。

コメント

 澤田です。いつもお世話になっております。

 すみません、不正確な部分がありました。
 正確には、A6のブート時においてGPIOからHレベルの出力が出るのではなく、3V未満程度の大きさですが、一瞬だけ大きめの電圧出力が出てしまう現象があります。

 私はA6のGPIOから Nch MOS-FET を駆動してリレーのスイッチングをする仕組みを作ったのですが、A6をブートするときやリブートするときにリレーが作動してしまうので不思議に思いました。そこでGPIO端子にテスターを当ててみたところ、どうやら Nch MOS-FET のスレッショルド電圧を超える大きさで電圧出力がある、と分りました。

 リレー回路側で対処する方法(GPIO端子と Nch MOS-FET のゲート端子を繋げる回路のインピーダンスを下げる目的でGPIO端子とGNDとの間に4.7kΩ程度の抵抗を入れる方法)も試したのですが、ちょっと難儀しています。もっとインピーダンスを下げないと、場合によってはスレッショルド電圧を超えてしまうことが分りました。

 もし何らかの対処法や成功事例等ございましたら、ご指南いただけますと幸いです。何卒宜しくお願い申し上げます。

 澤田です。度々恐縮です。この件については、コンデンサをゲート・ソース間に入れる等、何らかの無難な手段で解決したいと考えております。
 もし他にも有効なアイデアをお持ちの方が居られましたら、御教授頂けますと幸いです。

アットマークテクノの古賀です。

澤田さん(2021年8月31日 18時33分):
>Armadillo-IoT A6をリブートしたときの現象なのですが、サブユニットCON3におけるピン番号3(ピン名「GPIO1_IO17」GPIO番号「17」)及びピン番号5(ピン名「GPIO1_IO16」GPIO番号「16」)において、一瞬だけハイレベルの出力が出る現象がありますが、これはArmadillo-IoT A6の仕様と考えてよろしいでしょうか。
>
>もし、ブートローダーのバージョンを最新のものにする等によって、この現象を回避できる場合にも御指南を頂けますと非常に助かります。

頂いている質問に対する回答ではなく、恐縮ですが、二点確認させて下さいませ:

1.) 「リブートしたときの現象」と書いていらっしゃいますが、電源投入での起動時は発生せず、リブートした時にのみ発生するのでしょうか?

2.) (1) の回答が NO の場合(電源投入での起動時にも発生する場合)、Armadillo-IoT A6 の、メインユニットのユーザースイッチ(SW1)を押しながら電源投入することにより、ブートローダー(U-Boot)を保守モードで起動した場合、U-Boot の起動直後(つまり、電源投入直後)にのみ発生するのでしょうか?

ところで、

>現在、ブートローダーにはソース「linux-v4.14-at33.tar.gz」をコンパイルしたものを使用しています。

ブートローダーのソースは、u-boot-a600-v2018.03-at9.tar.gz です。linux-v4.14-at33.tar.gz は、Linux カーネルのソースですね。

sawadamasanori

2021年9月6日 9時23分

アットマークテクノ
古賀様

 澤田です。御指導に感謝申し上げます。
 ブートローダーのソースについてですが、2021年6月中旬の時点で最新であったソースコードにパッチを当てた後のものをコンパイルして使用しています。
 前回の投稿においては、間違ってブートローダーではなくlinuxカーネルのソースコードのファイル名を記してしまいました。気付かずに投稿してしまい、申し訳ございませんでした。

 メインユニットのユーザースイッチを押しながら電源投入しても同じ現象が確認されました。また、リブート時、もしくは電源オフの状態からの電源投入時においても同じ現象が確認されました。
 Armadillo-IoT A6 に電源投入した瞬間に直ちに起きる現象です。タイムラグはオシロスコープで測定しないと分からないくらい小さいと思います。ブートローダーの読み込みが始まったかどうか、くらいのタイミングで起きているのではないか?と感じています。

 ハードウェアとしての仕様として発生する現象のように思えるので、使用目的如何によっては GPIO を用いて Nch MOS-FET のゲートを直接操作する、といった使い方には注意を要する場合があると感じました。試行錯誤しておりますが、なかなか、回路側の工夫で対応するとしても難しいと感じています。

 もし、何か対処法等ございましたら御指南いただけますと幸いです。何卒宜しくお願い申し上げます。

at_syunya.ohshio

2021年9月6日 16時04分

大塩です。

>  ブートローダーのソースについてですが、2021年6月中旬の時点で最新であったソースコードにパッチを当てた後のものをコンパイルして使用しています。
>  前回の投稿においては、間違ってブートローダーではなくlinuxカーネルのソースコードのファイル名を記してしまいました。気付かずに投稿してしまい、申し訳ございませんでした。
>
>  メインユニットのユーザースイッチを押しながら電源投入しても同じ現象が確認されました。また、リブート時、もしくは電源オフの状態からの電源投入時においても同じ現象が確認されました。
>  Armadillo-IoT A6 に電源投入した瞬間に直ちに起きる現象です。タイムラグはオシロスコープで測定しないと分からないくらい小さいと思います。ブートローダーの読み込みが始まったかどうか、くらいのタイミングで起きているのではないか?と感じています。
>
>  ハードウェアとしての仕様として発生する現象のように思えるので、使用目的如何によっては GPIO を用いて Nch MOS-FET のゲートを直接操作する、といった使い方には注意を要する場合があると感じました。試行錯誤しておりますが、なかなか、回路側の工夫で対応するとしても難しいと感じています。
>

u-boot の最新バージョンである at9 で確認したところ、ご報告頂いた現象が発生しませんでした。
以下パターンで、同様の症状が発生するかご確認いただけますでしょうか。

■パターン
・u-boot-aiotg-a6-v2018.03-at9.imx をそのままArmadillo-IoT A6 に書換え、現象を確認
・u-boot-a600-v2018.03-at9.tar.gz にお客様が作成されたパッチを当てていただき、作成したイメージで現象を確認

■ u-boot 配布ページ
https://armadillo.atmark-techno.com/resources/software/armadillo-iot-a6…

以上です。
宜しくお願い致します。

大塩様

 澤田です。御指導有難うございます。
 まだ最新のブートローダーを用いたテストに成功していないのですが、現象が発生したSDカードからのブートではなく、デフォルトの設定のまま変えていないeMMC側からのブートを試した結果、現象は発生しませんでした。

 このことから、現象が発生したケースにおいて使用していたSDカード側のブートローダーに原因があると判断しました。
 ブートローダーにおけるコンパイル時の設定や扱い等において何らかの原因があった可能性を疑いながら今後のトラブルシューティングを進めたいと思います。
 少なくともハードウェア側の仕様ではないことが分りました。私の勘違いをお詫び申し上げます。

 お手数をおかけしてしまい、申し訳ございませんでした。有難うございました。

大塩様

 澤田です。御指導有難うございます。
 ただいま最新のブートローダーに更新したSDカードからのブートをテストした結果、現象は発生しませんでした。
 Linuxカーネル及びDTBは変更していない、ブートローダーのみ最新のイメージで書き直した状態だったのですが、GPIOの制御も成功しました。

 御指導のお陰で課題が解決できました。心より御礼申し上げます。