• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PIC16F1823 SPI通信)

PIC16F1823 SPI通信でのデータ受信に問題あり

このQ&Aのポイント
  • PIC16F1823をマスターとして、スレーブデバイスからSPI通信にてデータを読み込もうとしていますが、受信しているのは0x00のデータのみです。
  • PIC側のマスター受信では、SSP1BUFをダミーで読み込んだ後、SPIでコマンドを送信し、再度SSP1BUFを読み込んでいます。
  • データ受信用にはダミーデータと受信を行い、読み込む前にSSP1BUF.BFを確認していますが、期待したデータが受信できません。

質問者が選んだベストアンサー

  • ベストアンサー
  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.3

SPI モード ( CKP , CKE ) 設定は合ってますか? スレーブデバイス がマイコンの場合 WAIT が必要になる時もあります 参考 MCC SPI ライブラリ #define SPI_RX_IN_PROGRESS 0x0 uint8_t SPI_Exchange8bit(uint8_t data) { // Clear the Write Collision flag, to allow writing SSP1CON1bits.WCOL = 0; SSP1BUF = data; while(SSP1STATbits.BF == SPI_RX_IN_PROGRESS) { } return (SSP1BUF); }

reset_sw
質問者

お礼

その後、PIC16F1823は、アナログ入力も同一ピンで行われていて、デフォルトがアナログ入力なので、ANSELレジスタでデジタルIOに切替る事で、リードできるようになりました。 ありがとうございました。

その他の回答 (2)

  • TIGANS
  • ベストアンサー率35% (245/681)
回答No.2

今後のことも考えると Microchipのフォーラムで質問することを覚えるべきでしょうね。 https://www.microchip.com/forums/m1036310.aspx https://www.microchip.com/forums/f524.aspx

reset_sw
質問者

お礼

ありがとうございます。確認します。

  • TIGANS
  • ベストアンサー率35% (245/681)
回答No.1

開発環境は? ライブラリは? ここらあたりの問題だったっりして https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12163939517

reset_sw
質問者

お礼

ありがとうございます。

reset_sw
質問者

補足

XC8コンパイラーを使用しています。PIC16F877では、受信できます。 PIC16F1823では、SSP1BUFがNULLのままです。

関連するQ&A