■ PIC18FxxJxxなどのPeripheral Pin Select(PPS)機能を持つデバイスでUARTを使う例
PIC18FxxJxxなどのデバイスで、PPSによってピンアサインを変更できるデバイスを使う場合、あらかじめ各命令を使用する前に必ずレジスタの設定をして、ピンに目的の機能をアサインする必要があります。
ピンのアサインについてと、PPSの一覧、レジスタの一覧は各デバイスのデータシートをご覧ください。
PPSではもともとのピン名(例えばPORTBのビット0 = RB0)などと異なっており、別にRPxという番号が付いています。RPxの番号とRB0などのピン名とは一致していませんので、必ずデータシートで確認をしてください。 (例 PIC18F25J50の場合→ RB0=RP3, RA0=RP0など)
PBPでPPS機能のついたデバイスを使う場合には、レジスタに値を直接代入して設定してください。
■UART通信をする場合の例
UART通信をする場合でハードウエアUARTを使う場合、HSERIN,HSEROUT命令を使用します。PPSに割り当てられていないハードウエアUARTを使う場合には、HSERIN(OUT)命令を使います。PPSによってユーザーが適宜割り当てたRPxピンを使う場合には、PPS関連のレジスタを設定した後、HSERIN2(OUT)命令を使います。 下記のプログラムはPIC18F25J50を使った場合の例です。
※内蔵発振子8MHz(PLL未使用) ※UART1系統→ TX:RC6 , RX:RC7 ※UART2系統(PPS)→ TX:RA1(RP1) , RX:RA0(RP0)
http://github.com/microtechnica/pbp3_pic18f25j50_pps_test
|