RSPIは8bit単位のDMAC/DTCでの転送は不可能?

RSPIのデータレジスタ(SPDR)は、16bit/32bitでのアクセスしか許可されていません。

8bitのデータを送信する時でも、SPDRへは16bitでライトする必要があります。

これは、DMAC/DTCでは8bit単位でのデータ転送は使えないという事でしょうか?

実際に送信をDMACの転送サイズ8bitで試してみましたが、DMACは確かに転送はしていますがRSPIからデータは送信されません。

DMACの転送サイズを16bitにすればRSPIから送信されますが、送信元データを上位8bitを無駄にした16bit単位で用意する必要があります。

バイト単位の転送が出来ないなんて、とても信じ難いのですがこれが正しい仕様という事でしょうか?

ハードウェアマニュアルからはこれ以上の情報は見つけられないのですが、どなたか8bit単位でRSPIにDMAC/DTCで転送出来た方いませんか?

Parents
  • わわいです
    これはここでもたびたび話題になってたりしますが、どーも、そういうもんだ、ということであきらめないとしゃーないよーです。

    まあしかし、データ作成を最初から16ビットバッファに作っておく、とか、送信時に16ビットバッファに展開する、とかすれば済む話なのでそんなに問題にはならないかと思われます

    単純なSPIの通信なら、SCIの同期通信モードを使う、という手もありますが、RSPIとはビミョーに動作が違ったりするので検討が必要ですねー
Reply
  • わわいです
    これはここでもたびたび話題になってたりしますが、どーも、そういうもんだ、ということであきらめないとしゃーないよーです。

    まあしかし、データ作成を最初から16ビットバッファに作っておく、とか、送信時に16ビットバッファに展開する、とかすれば済む話なのでそんなに問題にはならないかと思われます

    単純なSPIの通信なら、SCIの同期通信モードを使う、という手もありますが、RSPIとはビミョーに動作が違ったりするので検討が必要ですねー
Children
No Data