JAJU951 October 2024
ダイレクト メモリ アクセス (DMA) モジュールは、UART および SPI バスを介した通信をサポートし、最小限の CPU 帯域幅負荷で MSPM0L2228 とのパケット転送を可能にします。
SPI バスを介した ADS131M03 との通信には、2 つの DMA チャネルが使用されます。DMA チャネル 0 は ADS131M03 にデータを送信するために使用され、DMAチャネル 1 は ADS131M03 からデータを同時に受信するために使用されます。ADS131M03 から完全なパケットを受信すると、DMA DONE 割り込みが生成され、CRC 検証やデータ パケットの電圧と電流未加工 ADC 値への分解など、必要な転送後の処理がトリガされます。
DMA チャネル 2 は、PC の GUI からの UART データ受信に使用されます。各 DLT-645 パケットの 14 番目のバイトには、PC の GUI から送信されたパケットの全長が含まれます (パケット長はパケットごとに動的に変化するため)。UART データは、予測される初期 DMA 長を 14 バイトに設定して、HAL_startUARTDMAReceive() 関数で処理されます。バイト 14 をデコードした後、UART DMA 転送長の値が更新されます。この長さは、DLT-645 プロトコル パケットの残りの部分 (全長 - 14 バイト) に等しくなります。UART パケットの末尾で DMA が再度トリガされるため、PC の GUI のパケットは合計 2 つの割り込みで受信できます。