Armadilloフォーラム

SPIのスレーブ設定

naito

2025年7月2日 13時39分

==========
製品型番:Armadillo-900
Debian/ABOSバージョン:ABOS 3.21.3-at.14
カーネルバージョン:5.10.238-at0
その他:ATDE9使用
==========

お世話になっております。
内藤と申します。

Amradillo-900 開発セットを使用してLPSPIの検討を進めています。
ホストとしては設定できたのですが、スレーブとして設定できなかったため2点質問させてください。

①LPSPI1でのSPIスレーブ設定について
SPIのHowtoで提供いただいているDTSファイルを参考にドライバ(drivers/spi/spi-rpmsg-imx.c)を見てみると
rpmsg経由のSPIではホストの実装のみに見えました。
Howto:https://armadillo.atmark-techno.com/howto/a900-spi-adc-mcp3204
 compatible = "fsl,spi-rpmsg";

LPSPI1はスレーブとしての使用はできないのでしょうか?
こちらの設定方法が悪いのか、実装できないのかを明確にしたく存じます。

②LPSPI5でスレーブ設定について
LPSPI1でスレーブ設定ができない場合、LPSPI5でスレーブ設定を使用することを検討しています。
下記DTSファイルを適用すればLPSPI5のスレーブ設定ができると考えていますが間違いありませんでしょうか?
 imx8ulp-evk-lpspi-slave.dts
(開発セットでは試せないため、できるかどうかの確認になります)

以上、よろしくお願いいたします。

コメント

質問を追加させてください。

③LPSPIの通信速度について
なるべく早くArmadillo-900でのLPSPI通信の速度を知りたいです。
マスターかスレーブで速度に違いはでますでしょうか?
AtmarkTechno様がSPI開発をされた際に計測した通信速度などの情報があればご教示いただけますと幸いです。

at_dominique.m…

2025年7月2日 16時32分

内藤さん

お世話になっています、
マルティネです。

> ①LPSPI1でのSPIスレーブ設定について
> SPIのHowtoで提供いただいているDTSファイルを参考にドライバ(drivers/spi/spi-rpmsg-imx.c)を見てみると
> rpmsg経由のSPIではホストの実装のみに見えました。
> Howto:https://armadillo.atmark-techno.com/howto/a900-spi-adc-mcp3204
>  compatible = "fsl,spi-rpmsg";
>
> LPSPI1はスレーブとしての使用はできないのでしょうか?
> こちらの設定方法が悪いのか、実装できないのかを明確にしたく存じます。

ご認識の通り、まだホストしか実装してない状態です。
LPSPI[0-3] のスレーブモードについては RTOS 側のドライバで対応されてます(mcux-sdk/core/drivers/lpspi)ので、linux/m33両側でスレーブモードを実装すれば対応可能ですが、まだ手をつけてない状態です。

> ②LPSPI5でスレーブ設定について
> LPSPI1でスレーブ設定ができない場合、LPSPI5でスレーブ設定を使用することを検討しています。
> 下記DTSファイルを適用すればLPSPI5のスレーブ設定ができると考えていますが間違いありませんでしょうか?
>  imx8ulp-evk-lpspi-slave.dts
> (開発セットでは試せないため、できるかどうかの確認になります)

はい、LPSPI5 でしたら slave はちゃんと実装されてますので理論上で動くはずです。
ただし、こちらについても動作確認は行ってませんので、試していただければと思います。

> ③LPSPIの通信速度について
> なるべく早くArmadillo-900でのLPSPI通信の速度を知りたいです。
> マスターかスレーブで速度に違いはでますでしょうか?
> AtmarkTechno様がSPI開発をされた際に計測した通信速度などの情報があればご教示いただけますと幸いです。

申し訳ございません、最大スピードは測ってません。
THモジュールのための通信はモジュール側で 1MHz までの制限はありますので、そこまでしか試してませんが 1MHz で問題ありません。

i.MX 8ULPのデータシートの表記では以下のスピードまで対応できるらしいです:
LPSPI0-LPSPI3: 30MHz
LPSPI4-LPSPI5: 60MHz

また、スレーブもためしてないのでなんとも言えません。
LPSPIコア自体は似たような性能を発揮できると思いますが、buffer がいっぱいになった際の irq の処理速度も関わってきますので、LPSPI5 で 16 byte 以上の通信でしたら最大スピードを利用できないかもしれません。
(LPUART は 8 byte のバッファーで 115200 baud でたまに overrun しますので、 16 byte でしたらにたような 1MHz で問題ないと思いますが、それ以上のスピードで問題になる可能性があります。その場合、LPSPI[0-3] を使った方が安定して処理できますが、未実装の問題はありますね…)

お役に立てなくてすみません。
これからのことは引き続き相談させてください。

よろしくお願いします。