読者です 読者をやめる 読者になる 読者になる

PSoC の SPI

電子工作 PSoC

SPI の勉強と言うことで、以前 mbed で使ってた SPI 接続の OLEDPSoC で使ってみました。
http://d.hatena.ne.jp/hijouguchi/20101210/1291973831
なお、今回は OLED にコマンドとデータを投げるだけなので、受信は考えていません。

コンポーネントはこんな感じにしておきます。
MISO は今回使わないので Low に落としておきます(少なくとも Open はダメなので固定します)。
clock は 12MHz までの様です(PSoC5LP の場合)。

サンプルコードはこんな感じです。
ちゃんとデータが送信出来ているかを SPIM_1_ReadStatus() で確認しないとダメみたいです。
SPIM の送信バッファがあふれるのか、ちゃんとデータが送信出来てないことがあります。

#include <project.h>

int main()
{
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    SPIM_1_Start();
    /* CyGlobalIntEnable; */ /* Uncomment this line to enable global interrupts. */
    for(;;)
    {
        /* Place your application code here. */
        SPIM_1_WriteTxData(0xFF);
        while(!(SPIM_1_ReadStatus() & SPIM_1_STS_BYTE_COMPLETE)) {}
    }
}

今回は文字を書いてみました。