2022年1月22日土曜日

[組み込みLinux] SPI通信における送受信

こんにちは、針山散策を今日もほのぼのと行います。


現在、組み込みLinux上にCCLinkボードと

通信するアプリを実装しています。

SPI通信を使用しているのですが、

SCKの立ち上がりで送信、立下りで受信

のような仕様だったのでどうすれば

設定出来るのか調べてみました。


カーネルのデバイスツリーで設定を

変えればよいのか?

と思いましたが、デバイスツリーでは

SPIの配線の定義なので違うようです。

など、色々調べてみたところ、

上位アプリ側をいじればSPI動作モード

を変更出来る事が分かりました。

以下のリンク先が参考になりました。

https://manual.atmark-techno.com/armadillo-guide-std/armadillo-guide-std-hardware-expansion_ja-1.0.0/ch06.html

私の書いたソースとしては、

    unsigned char mode= 0;

    rtc = ioctl(Serial_Port_Fd, SPI_IOC_RD_MODE, &mode);

    if (rtc == -1) {

        return rtc;

    }

   

    mode&= ~(SPI_CPOL | SPI_CPHA);

   

    rtc = ioctl(Serial_Port_Fd, SPI_IOC_WR_MODE, &mode);

    if (rtc == -1) {

        return rtc;

    }

私の場合、こちらの処理で対応できました。


CPOLとCPHAの組み合わせにて対応が出来るということで

理解しました。



0 件のコメント:

コメントを投稿