60歳からの電子工作ノート

生涯学習として取り組んでいます。

新ペルチェ制御用ボードの試作(ソフトウェア 2)

通信(SPI,SCI)処理とファイル関連情報が記載されています。

 

SPI通信

 LCDコントローラ(ILI9488)へのSPI通信フォーマットは、DBI Type-C Option1(3 line)(9bit)です。前回の資料1*1と同じです。

ただし前回は「CPUの割込み処理」で送信していましたが、今回は「DMA転送」に変更しました。これは長いデータをCPUの割込み処理内で転送していると、他の割込みが入らない場合があるためです。

・DMAの設定

DMA チャンネル2をRSPI0の送信に使用します。

図1. DMA転送(SPI送信)

 

「送信バッファエンプティ割り込み(SPTI0)」が発生するとDMA転送が開始されます。全データの送信が終了するまでは待機する仕様としたため、データ転送中は「送信中フラグ」をセットし、アイドル割り込み(SPII0)でをクリアします。

図2. SPI送信処理

シリアル通信(SCI1)

パソコンとのデータ送受信にも、DMAを利用します。DMAチャンネル0を受信に、チャンネル1を送信に使用します。

・DMAの設定

DMA チャンネル0をSCI1の受信に使用します。

図3. DMA転送(SCI1 受信)

DMA チャンネル1をSCI1の送信に使用します。

図4. DMA転送(SCI1 送信)

図5. コマンド受信からレスポンス送信まで

コマンドとレスポンスにはCRCが付きます。

CRC演算器を使用します。CRC-16-CCITT, MSB-First, 初期値 0xffff, 生成多項式x^{16} + x^{12} + x^{5} + 1です。

図6. モニタコマンド

図7. 書き込みコマンド

使用メモリとmapファイル

使用したRAMは約21[Kbyte]、ROMは約40[Kbyte]でした。

図8. mapファイルとtotal size

図9. ファイル一覧


ファイル一覧

登録場所(マイコン):https://github.com/vABCWork/pid_new

登録場所(パソコン):https://github.com/vABCWork/WPF-PID-NEW

実験風景

図10. 実験の様子

 

 

*1:資料1「I2C通信とSPI通信(4インチ LCDパネルとインターフェイスボード)」  https://vabc.hatenadiary.jp/entry/2022/10/10/174722