お世話になります。 RL78/G14(R5F104GGGFB 48pin)を使っています。 P2.4を出力設定にして、1を書き込むコードをビルドするとビルドエラーになります。
環境は以下 Windows 11 Pro CS+ for CA/CX 4.08.00 Compiler V1 for RL78,78K (CA78K0R,CA78K0) RL78,78K0Rビルド・ツールCA78K0R用プラグイン V5.08.00.01 ビルド時のエラーは以下。 ..\src\drv\Uart.c(470) : CC78K0R error E0407: Cannot write for read/only sfr 'P2' エラーを見る限りP2レジスタはRead OnlyだからWriteできない 実際のこの部分のソースは以下 RS485_SND; この定義は以下。 #define RS485_SND (P2.4 = 1)
ただ、ユーザーズマニュアル ハードウェア編を見てもここがRead Onlyとは書かれていません。 試しにプロジェクトのマイクロコントローラをR5F104EEに変更すると出なくなる出なくなることから 本当に本当にり本当にRead Onlyなんだと思います。 ユーザーズマニュアルのどこにP2がRead Onlyと書かれているのか教えていただけないでしょうか?
ビルド時にエラーになるので関係ないと思いますが、以下は実行しています。 PMC0 = 0b11111100; P2 = 0b00000000; ADPC = 0b00000011;
すいません、自己解決しました。
マイコン設定をR5F104BGにしていました。
チョコです。
P2.4はRead Onlyではありません。端子機能としては以下のように4-3-3で、
以下のようなブロック図になっています。
どちらかと言うと、CAが「#define RS485_SND (P2.4 = 1)」を処理出来ていないような気がします。#define をP2.4までにしたらどうなりますか。
それより、PM2レジスタの設定はどうなっていますか。
また、48pinにはPMC0レジスタは存在しないはずです。
以上
前回のコメントは入れ違いになったようです。
どちらにしても、PMC0とPM2は再確認してください。
追伸
P2の出力は他のポートに比べてかなり弱いです。ハイレベルでは、0.1mAになっています。
本当にこれでいいのですか。
ありがとうございます。
マイコン設定を正しく直したらPMC0はエラーが出ました。データシートを見ても確かに使えないですね。ここで気が付くべきでした。
P2の出力ですが、485バッファICのIinは5µA/LED用バッファICのIinは2µAなので問題ないです。