7 years, 3 months ago.

LPC11U68のSPIについて

LPC11U68にてSPI通信を利用する場合、SSP0とSSP1の2系統の入出力がありますが、 SSP0を使用するとプログラムが実行されず固まってしまいます。 例:

code

#include "mbed.h"

Serial pc(P1_23, P0_20);
SPI spi(P0_9, P0_8, P0_10); // SSP0 mosi, miso, sclk

int main() {
    while(1) {
        pc.printf("OK\r\n");
        wait(0.2);
    }
}

この場合、printf文が実行されません。 SSP1を使用する(P1_22, P1_21, P1_20をMOSI, MISO, SCLKとして使う)と、printf文は実行されます。

原因、解決策等、もしご存知でしたらご教授お願い致します。

1 Answer

7 years, 3 months ago.

こんにちは。

LPC11U68のP0_10ポートは、チップとしてはSSP0_SCKで使用可能なのですが、Mbedでは、インタフェースチップと接続されてフラッシュ書き込み等の用途で使われるので、ユーザからは使用できないようになっています。

SSP0のSCLKは、P0_6、P1_29、P2_7が使用可能です。

https://github.com/ARMmbed/mbed-os/blob/master/targets/TARGET_NXP/TARGET_LPC11U6X/spi_api.c#L26-L33

Accepted Answer

回答ありがとうございます。 P0_10は使用できないのですね、P0_6を使うことにします。

posted by Tk Og 25 Aug 2017