9 years, 4 months ago.

LPC11U35-501でSPIスレーブの構成方法

タイトルのとおり、SPIスレーブを構成しようとしてハマっています。

基板がLED交互点滅のFault状態になって、どうにもなりません。 識者の助言があれば、うれしい状況です。

コーディングをいろいろ削って行くと、 SPISlave device(p5, p6, p7, p8); を記述するだけで問題となることがわかりました。

ブリンクプログラム、コンパイル、転送、実行OK SPISlave定義を追記、コンパイル、転送、実行NG とするだけで、再現できます。

p11~p14を使っても同様。 ただし、LPC1768にプラットフォーム変更してリコンパイル、LPC1768に転送実行すると動作しました。

スペック的な問題なのでしょうか? 何かご存知のかたいらっしゃいましたら、フォローをお願いします。

大変遅くなりましたが、ピンアウトの図に該当ピンを追加しました。 http://developer.mbed.org/media/platforms/trg_lpc11u35-501_pinout_2.png

posted by Toyomasa Watarai 20 Feb 2015

1 Answer

9 years, 4 months ago.

こんにちは(前回の回答が間違っていたので、ポストし直します)。

mbed SDK のコードを調べてみたのですが、Slave select 信号は p8 (P0_7) には指定出来ません。

https://github.com/mbedmicro/mbed/blob/master/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/TARGET_MCU_LPC11U35_501/PeripheralPins.c

TG-LPC11U35-501 の場合は、

SPISlave spi0(p5, p6, p7, p22);
SPISlave spi1(p11, p12, p13, p29);

の組み合わせのみが可能だと思います。

念のため、LPC1768 の p8 (P0_6) を確認したところ、SPI Slave の SSEL として使用可能な端子になっていました。

https://github.com/mbedmicro/mbed/blob/master/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC176X/spi_api.c

お手数ですが、ご確認をお願いします。

Accepted Answer

回答ありがとうございます。

無事RUNしました。 SPI0 SPI1ともに動作します。

マスタ側受信がうまくいってませんが、それっぽい波形がクロックに同期して出てるので、こちらのプログラムの問題と思います。

あと、ライブラリのソースの見かたも参考になります。 重ねてありがとうございました。

posted by masahiko yamamoto 09 Dec 2014

Assigned to Toyomasa Watarai 9 years, 4 months ago.

This means that the question has been accepted and is being worked on.