takio9408
2024年10月31日 14時39分
==========
製品型番:
Debian/ABOSバージョン:
カーネルバージョン:Linux armadillo840-0 3.4-at25 #1 PREEMPT Mon Feb 26 14:02:26 JST 2018 armv7l GNU/Linux
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
お世話になります。takio9408と申します。
Armadillo-840のSDブート動作についてですが
ある装置でArmadillo-840をSDブートで使用しています。
同じ装置でArmadillo-840を交換(数年前に購入していたもの)して
SDブートで起動したのですが、UARTが動作しません。
オシロで信号を見た感じではUARTに設定されていないように見えます。
UARTはSCIFA0とSCIFA1です。
何が原因として考えられるでしょうか。
コメント
takio9408
お世話になっております。以下回答致します。
>「UARTが動作しない」とはどのような挙動でしょうか?
シリアルのデバイス(/dev/ttySC0、/dev/ttySC1)は存在するが、弊社作成のアプリ(ATDEのQTを使用)で
でシリアルポートのオープン後、何かしらの送信・受信を行っても、相手先で何も送受信されてない状態です
アルマジロのコンソール上でsttyコマンドで/dev/ttySC0・/dev/ttySC1を確認してみましたが、弊社作成の
アプリで指定したボーレートを表示していますので、シリアルポートとしての認識はされているようです
>ピン設定は、どのように行っていますか?
コネクタはCON7を使用しています。
ハードウェア・ソフトウェアで特別な事はしてません
/dev/ttySC0・/dev/ttySC1なので、ピン2/3/4/5/7/8/9/10を使用する事になります(実際には、CTS/RTSは未使用です)
>Hermit-At, Linuxカーネルのカスタマイズを行っているかと思いますが、修正内容を教えてください。
Hermit-Atでは、SDカード起動するための操作をしています。
Linuxカーネルは、/dev/ttySC1を使用するために、カーネルの設定を行っています。
Hermit-Atでは、御社のSDカードブートについてのページ(https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_ma…)
に書かれている事を行いました。
具体的には、上記ページに書かれているsetenvコマンドとsetbootdeviceを行っています。
setenv console=ttySC2,115200 noinitrd rootwait root=/dev/mmcblk0p2
setbootdevice mmcblk0p2
上記コマンドを再度入力しましたが、SDカードの設定にはなっているようです
hermit> setenv
1: console=ttySC2,115200
2: noinitrd
3: rootwait
4: root=/dev/mmcblk0p2
hermit> setbootdevice
bootdevice: mmcblk0p2
上記を設定した上でHermit-Atを終了しアルマジロの電源切り入りを行うと、下記のログが出てきますので、SDカード起動はできていると思われます。
Hermit-At v3.9.0 (Armadillo-840/mmcsd) compiled at 20:35:27, Jun 21 2017
Linuxカーネルでは、ttySC1を使用するため、ATDEよりmake menuconfigを行い、下記の項目にチェックを入れたうえでカーネルイメージを作成しています。
[Kernel Configration]
[System Type]
[Armadillo-840 System Configration]
[use SCIFA1]<-チェックを入れる
お手数をおかけしますが、ほかに見落としなどありましたら、宜しくお願いいたします。
> 溝渕です。
>
> > Armadillo-840のSDブート動作についてですが
> > ある装置でArmadillo-840をSDブートで使用しています。
> > 同じ装置でArmadillo-840を交換(数年前に購入していたもの)して
> > SDブートで起動したのですが、UARTが動作しません。
>
> 「UARTが動作しない」とはどのような挙動でしょうか?
>
> - /dev/以下に、ttySC0, ttySC1が存在しない
> - ttySC0, ttySC1は存在するが、アクセスしても波形が出ない
>
> のように教えていただけたらと思います。
>
> > UARTはSCIFA0とSCIFA1です。
>
> ピン設定は、どのように行っていますか?
>
> Hermit-At, Linuxカーネルのカスタマイズを行っているかと思いますが、修正内容を教えてください。
>
> また、(フラッシュメモリではなく)SDメモリカードのソフトウェアが起動に利用されているかどうかを確認してください。
>
> SDメモリカードのHermit-Atが起動しているかどうかは、起動ログから確認できます。次のように、"Armadillo-840"に続く起動デバイスが"mmcsd"となっているとSDメモリカードから起動しています。
>
>
> Hermit-At v3.2.3 (Armadillo-840/mmcsd) compiled at 15:34:56, Jul 03 2013 > ^^^^^ >
>
> また、同様にLinuxカーネルについてはHermit-Atの保守モードで次のようにコマンドを実行し、"mmcblk0p2"が表示されるとSDメモリカードから起動しています。
>
>
> hermit> setbootdevice > bootdevice: mmcblk0p2 >
>
at_mizo
溝渕です。
ご回答ありがとうございます。
SDカードのソフトウェアは適切に利用されている状態です。このSDカードで起動した他のArmadillo-840では正常に動作しているとの事ですので、ハードウェアの問題が疑われます。
オシロスコープで波形をご確認されたとの事ですが、CON7の波形を直接確認しましたか? それとも拡張ボード経由でしょうか?
拡張ボード経由の場合は、CON7を直接確認してみていただけますか。これでコネクタの嵌合の確認ができます。
また、標準イメージで起動し、GPIOの出力(HighおよびLow)を行っていただけますか?
SCIFA1のRxD/TxDピンに該当するGPIOディレクトリは次の通りです。
CON7 2 ピン /sys/class/gpio/gpio195
CON7 3 ピン /sys/class/gpio/gpio196
もしHigh/Lowできなければ、ピン自体が破損している可能性が高まります。
takio9408
お世話になります。
情報を元に色々調べた所、CON7のGPIO44・45・46・47・48のいずれかがGNDと繋がっていると、hermitで各種設定を行っても失敗する事がある?ようです。弊社がアルマジロのCON7と接続するために作成した基板が、上記のような状態になっていました。
アルマジロを単体で起動させてのhermitによる設定、及び弊社で作成した基板を修正した所、通常の動作になったようです。
色々教えて頂き、ありがとうございました。
今後とも、宜しくお願い致します。
> 溝渕です。
>
> ご回答ありがとうございます。
>
> SDカードのソフトウェアは適切に利用されている状態です。このSDカードで起動した他のArmadillo-840では正常に動作しているとの事ですので、ハードウェアの問題が疑われます。
>
> オシロスコープで波形をご確認されたとの事ですが、CON7の波形を直接確認しましたか? それとも拡張ボード経由でしょうか?
>
> 拡張ボード経由の場合は、CON7を直接確認してみていただけますか。これでコネクタの嵌合の確認ができます。
>
> また、標準イメージで起動し、GPIOの出力(HighおよびLow)を行っていただけますか?
>
> SCIFA1のRxD/TxDピンに該当するGPIOディレクトリは次の通りです。
>
> CON7 2 ピン /sys/class/gpio/gpio195
> CON7 3 ピン /sys/class/gpio/gpio196
>
> もしHigh/Lowできなければ、ピン自体が破損している可能性が高まります。
>
at_mizo
2024年11月5日 14時14分
溝渕です。
> Armadillo-840のSDブート動作についてですが
> ある装置でArmadillo-840をSDブートで使用しています。
> 同じ装置でArmadillo-840を交換(数年前に購入していたもの)して
> SDブートで起動したのですが、UARTが動作しません。
「UARTが動作しない」とはどのような挙動でしょうか?
- /dev/以下に、ttySC0, ttySC1が存在しない
- ttySC0, ttySC1は存在するが、アクセスしても波形が出ない
のように教えていただけたらと思います。
> UARTはSCIFA0とSCIFA1です。
ピン設定は、どのように行っていますか?
Hermit-At, Linuxカーネルのカスタマイズを行っているかと思いますが、修正内容を教えてください。
また、(フラッシュメモリではなく)SDメモリカードのソフトウェアが起動に利用されているかどうかを確認してください。
SDメモリカードのHermit-Atが起動しているかどうかは、起動ログから確認できます。次のように、"Armadillo-840"に続く起動デバイスが"mmcsd"となっているとSDメモリカードから起動しています。
また、同様にLinuxカーネルについてはHermit-Atの保守モードで次のようにコマンドを実行し、"mmcblk0p2"が表示されるとSDメモリカードから起動しています。