PIC24FでUARTの送信が反転していた

PIC24FJ64GA004でUARTを使うことになり,適当に組んでみたところ挙動がおかしいので少し調査してみたところ,どうやら送信時の極性に関する設定が間違っているらしいことを突き止めた.オシロスコープでみると,アイドル時の極性が反転していました.

UARTの設定はライブラリを使用しているわけで,ヘッダファイルを探してみたところ

 #define UART_IrDA_POL_INV_ONE 0xEFFF /*IrDA encoded, UxTX Idle state is '1' */
 #define UART_IrDA_POL_INV_ZERO 0xAFFF/* IrDA encoded, UxTX Idle state is '0' */

というパラメータが見つかった.ここで注意するのが,このパラメータはIrDAのみだけではなくUARTのTxに関しても影響する点で,うっかりしていると「IrDAか・・・ まあUARTには関係ないだろ」と思い込んで要らぬ時間の浪費をするかもしれない.


詳細は下記のPDFを参照してもらえば良いかと思います.
http://ww1.microchip.com/downloads/en/DeviceDoc/DS39708A_JP%20PIC24F%20Ref.Manual%20Section%2021.pdf

よくデータシートを見れば大した問題では無いだろうけど,もし上手く動作しないときにはパラメータを見直してみると良いかもしれない.