sx_iino
2024年12月2日 18時40分
A6E+di8ai4を使用しています。
BaseOS: 3.20.3-at.5
Alpine Linux: 5.10.230-0-at
現在、この拡張基板である+di8ai4に近い拡張基板を作成しようとしています。
基本的には、A/Dは同じで、UART1とUART7を追加したものです。
これを実現するために、まずat-dtwebでUART1とUART7を追加したものを作成し、作成したarmadillo-iotg-a6e-at-dtweb.dtboを本体に入れて、overlays.txtに追記して起動してみた所、いくつかのピンが既に使われているといったログがでます。
Starting kernel ...
[ 1.212353] imx6ul-pinctrl 20e0000.pinctrl: pin MX6UL_PAD_LCD_DATA01 already requested by 20e0000.pinctrl; cannot claim for 3-0027
[ 1.212398] imx6ul-pinctrl 20e0000.pinctrl: pin-71 (3-0027) status -22
[ 1.212433] imx6ul-pinctrl 20e0000.pinctrl: could not request pin 71 (MX6UL_PAD_LCD_DATA01) from group pi4ioe5v9554_1grp on device 20e0000.pinctrl
[ 1.212457] pca953x 3-0027: Error applying setting, reverse things back
[ 1.538733] imx6ul-pinctrl 20e0000.pinctrl: pin MX6UL_PAD_CSI_DATA06 already requested by 20e0000.pinctrl; cannot claim for ain-leds
[ 1.550772] imx6ul-pinctrl 20e0000.pinctrl: pin-127 (ain-leds) status -22
[ 1.557593] imx6ul-pinctrl 20e0000.pinctrl: could not request pin 127 (MX6UL_PAD_CSI_DATA06) from group gpio_leds_aingrp on device 20e0000.pinctrl
[ 1.570875] leds-gpio ain-leds: Error applying setting, reverse things back
[ 1.590380] imx6ul-pinctrl 20e0000.pinctrl: pin MX6UL_PAD_GPIO1_IO01 already requested by 20e0000.pinctrl; cannot claim for 2198000.adc
[ 1.602681] imx6ul-pinctrl 20e0000.pinctrl: pin-24 (2198000.adc) status -22
[ 1.609706] imx6ul-pinctrl 20e0000.pinctrl: could not request pin 24 (MX6UL_PAD_GPIO1_IO01) from group adc1_vingrp on device 20e0000.pinctrl
[ 1.622448] vf610-adc 2198000.adc: Error applying setting, reverse things back
ログで表記されたピンをpinctrl_expansion_interfacehogからコメントアウトして何度か再トライしたのですが、
最終的に
[ 1.212308] imx6ul-pinctrl 20e0000.pinctrl: pin MX6UL_PAD_LCD_DATA01 already requested by 20e0000.pinctrl; cannot claim for 3-0027
[ 1.212358] imx6ul-pinctrl 20e0000.pinctrl: pin-71 (3-0027) status -22
[ 1.212389] imx6ul-pinctrl 20e0000.pinctrl: could not request pin 71 (MX6UL_PAD_LCD_DATA01) from group pi4ioe5v9554_1grp on device 20e0000.pinctrl
[ 1.212415] pca953x 3-0027: Error applying setting, reverse things back
この表記がどうやったら消えるのかがわかりません。
MX6UL_PAD_LCD_DATA01__GPIO3_IO06の行はコメントアウトしているのですが・・・
この事象に絡み、いくつかお教えいただきたい事項がありますので、以下に羅列致します。
1.上記のログ(エラー?)が出ないようにするにはどうすればよいか。
2.+di8ai4の回路図が見当たらないのですが、どこからダウンロード出来ますか?
3.最終的には、+di8ai4基板ではなく作成した拡張基板に切り替えたいのですが、現状では
armadillo-iotg-a6e-di8ai4-1st.dtboが必ずロードされてしまいます。
これをロードしないようにするには、どうすればよいでしょうか?
色々とあって申し訳ありませんが、ご教授のほどよろしくお願い致します。
コメント
sx_iino
ご返答頂きありがとうございます。
> armadillo-iotg-a6e-at-dtweb.dts内のinctrl_expansion_interfacehogのことでしたら、
> 部分的なコメントアウトではなく、
>
> pinctrl_expansion_interfacehog: expansion_interfacehoggrp { > … > }; >
> を丸ごと削除していただければエラーは発生しなくなると思われます。
これにより、エラーログが出ない事は確認出来ました。
pinctrl_expansion_interfacehogは、at-dtwebが吐き出したものなので必要かと思っておりましたが、必要ないという事ですね。
> > 2.+di8ai4の回路図が見当たらないのですが、どこからダウンロード出来ますか?
> 申し訳ございませんが、+di8ai4の回路図については公開しておりません。
公開されていないのであれば仕方ないのですが、この質問の意図はarmadillo-iotg-a6e-di8ai4-1st.dtsを見た際に、I2C以外にもいくつかのGPIOが使用されており、これらの用途や、カスケードの先では使用出来ないことになることから、最低限そのあたりを把握しておきたいと思ったからです。
ainのLEDなどは、どのタイミングで光るかの説明も見当たりませんし、AIN POWERやadcのinterruptも同様です。
せめてdi8ai4基板が使用していて、カスケード先で使用できないピンの一覧だけでもご提示いただけないでしょうか?
以上、よろしくお願い致します。
at_shota.shimoyama
下山です。
> 公開されていないのであれば仕方ないのですが、この質問の意図はarmadillo-iotg-a6e-di8ai4-1st.dtsを見た際に、I2C以外にもいくつかのGPIOが使用されており、これらの用途や、カスケードの先では使用出来ないことになることから、最低限そのあたりを把握しておきたいと思ったからです。
> ainのLEDなどは、どのタイミングで光るかの説明も見当たりませんし、AIN POWERやadcのinterruptも同様です。
> せめてdi8ai4基板が使用していて、カスケード先で使用できないピンの一覧だけでもご提示いただけないでしょうか?
di8ai4基板側が使用しておらず、カスケード先で何の制約もなく使用できるピンの番号は 10・14・16・17・19~30 です。
一方で、di8ai4基板側が使用しており、カスケード先で使用できないピンの番号は 7・8・9・15・31・32 です。
ですので、UART1 TX・RX(8・9)は使用できません。
使用できないピンの用途ですが、
7:VINのモニター
8:EEPROMのWrite切り替え
9:DO(VOUT-VCOM間)の制御
15:GPIOエキスパンダからの割り込み
31:ADCの電源制御
32:ADCからの割り込み
となっています。
armadillo-iotg-a6e-di8ai4-1st.dts には pinctrl_gpio_leds_ain という記述がありますが、
ledと付いているもののLEDには全く関係ありません。(紛らわしく申し訳ありません)
I2Cについてはdi8ai4基板側が 12・13番のピンを使用していますが、カスケード先でも使用できます。
よろしくお願いします。
sx_iino
ご返答ありがとうございます。
> ledと付いているもののLEDには全く関係ありません。(紛らわしく申し訳ありません)
何かなこれと思っていたのですが、関係なかったのですね。
ご提示頂いた内容からすると、
> 31:ADCの電源制御
がこの定義ということになるでしょうか。
> ですので、UART1 TX・RX(8・9)は使用できません。
uart1を使いたい場合は、やはりカスケード接続ではなく、新規に基板を作る必要があるということですね。
> I2Cについてはdi8ai4基板側が 12・13番のピンを使用していますが、カスケード先でも使用できます。
I2Cのプルアップ抵抗は何Ωで、どこにありますでしょうか?
A6E本体でプルアップ?Di8Ai4基板でプルアップ?
引き続きで申し訳ありませんが、よろしくお願い致します。
at_shota.shimoyama
下山です。
> > 31:ADCの電源制御
> がこの定義ということになるでしょうか。
はい、そのとおりです。
> I2Cのプルアップ抵抗は何Ωで、どこにありますでしょうか?
> A6E本体でプルアップ?Di8Ai4基板でプルアップ?
A6E本体側ではプルアップ抵抗は取り付けられていません。
また、Di8Ai4基板ではカスケード接続のためにI2CバスリピーターICを実装しており、
Di8Ai4基板のA6E側のI2Cバスでは4.7kΩのプルアップ抵抗が取り付けられていますが、
Di8Ai4基板のカスケード接続側(A6E本体の反対側)のI2Cバスにはプルアップ抵抗が取り付けられていません。
ですので、A6E本体に別途の拡張基板を取り付ける場合でも、
Di8Ai4基板にカスケード接続する場合でも、I2Cバスにプルアップ抵抗が別途必要となります。
よろしくお願いします。
sx_iino
at_shota.shimoyama
2024年12月3日 14時25分
下山です。
> 現在、この拡張基板である+di8ai4に近い拡張基板を作成しようとしています。
> 基本的には、A/Dは同じで、UART1とUART7を追加したものです。
> これを実現するために、まずat-dtwebでUART1とUART7を追加したものを作成し、作成したarmadillo-iotg-a6e-at-dtweb.dtboを本体に入れて、overlays.txtに追記して起動してみた所、いくつかのピンが既に使われているといったログがでます。
これらのピンはarmadillo-iotg-a6e-di8ai4-1st.dtsとarmadillo-iotg-a6e-at-dtweb.dts内の両方で使用しているピンであり、
両者の.dtboをロードしてしまうことで干渉が起こり、エラーが発生しています。
> ログで表記されたピンをpinctrl_expansion_interfacehogからコメントアウトして何度か再トライしたのですが、
> 最終的にこの表記がどうやったら消えるのかがわかりません。
> MX6UL_PAD_LCD_DATA01__GPIO3_IO06の行はコメントアウトしているのですが・・・
> 1.上記のログ(エラー?)が出ないようにするにはどうすればよいか。
armadillo-iotg-a6e-at-dtweb.dts内のinctrl_expansion_interfacehogのことでしたら、
部分的なコメントアウトではなく、
を丸ごと削除していただければエラーは発生しなくなると思われます。
> 3.最終的には、+di8ai4基板ではなく作成した拡張基板に切り替えたいのですが、現状では
> armadillo-iotg-a6e-di8ai4-1st.dtboが必ずロードされてしまいます。
> これをロードしないようにするには、どうすればよいでしょうか?
/boot/overlays.txt の中に armadillo-iotg-a6e-di8ai4-1st.dtbo が記載されていない場合でも、
u-boot起動時に+di8ai4基板を検出すると自動的にこの.dtboをロードするようになっています。
この具体的な処理内容についてはu-bootのソースコードからご確認いただけますが、
簡単に言いますと+di8ai4基板上のEEPROMの内容から+di8ai4基板かそうでないかを判別しています。
ですので、+di8ai4に近い拡張基板をお作りになる際にEEPROMを搭載しなければ、
armadillo-iotg-a6e-di8ai4-1st.dtboはロードされません。
また、+di8ai4を使用する場合でもu-bootのソースコードをカスタマイズしてロードさせないようにすることは可能ですし、
ロードさせてしまうことにはなるものの、armadillo-iotg-a6e-di8ai4-1st.dtsの内容を以下のように空にしてビルドした.dtboで
/boot/armadillo-iotg-a6e-di8ai4-1st.dtboを上書きするという方法もあります。
拡張基板を作成する前の検証段階などで+di8ai4を使用する必要がある場合は、この方法が最も簡単だと思われます。
また、armadillo-iotg-a6e-di8ai4-1st.dtsはArmadillo-IoT ゲートウェイ A6E Linuxカーネル
https://armadillo.atmark-techno.com/resources/software/armadillo-iot-a6…
で公開しており、
at-dtwebでUART追加したarmadillo-iotg-a6e-at-dtweb.dtsも、at-dtweb起動時に選択した
Linuxカーネルソースコードの内部で確認することができます。
(両方ともarch/arm/boot/dts/ディレクトリ内にあります)
自作拡張基板用のデバイスツリーを作成する場合は、
これら2つのdtsをご参考ください。
デバイスツリーを新たに用意する場合は
armadillo-600-customize.dtsとして作成することを推奨しております。
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
> 2.+di8ai4の回路図が見当たらないのですが、どこからダウンロード出来ますか?
申し訳ございませんが、+di8ai4の回路図については公開しておりません。
よろしくお願いします。