ボーレート設定を460800に設定するため、
(スマートコンフィギュレータでボーレート設定150000にしたとき↓)
/* Set control registers */ SCI9.SMR.BYTE = _00_SCI_CLOCK_PCLK | _00_SCI_MULTI_PROCESSOR_DISABLE | _00_SCI_STOP_1 | _00_SCI_PARITY_DISABLE | _00_SCI_DATA_LENGTH_8 | _00_SCI_ASYNCHRONOUS_OR_I2C_MODE; SCI9.SCMR.BYTE = _00_SCI_SERIAL_MODE | _00_SCI_DATA_INVERT_NONE | _00_SCI_DATA_LSB_FIRST | _10_SCI_DATA_LENGTH_8_OR_7 | _62_SCI_SCMR_DEFAULT; SCI9.SEMR.BYTE = _00_SCI_BIT_MODULATION_DISABLE | _00_SCI_DEPEND_BGDM_ABCS | _00_SCI_16_BASE_CLOCK | _00_SCI_NOISE_FILTER_DISABLE | _00_SCI_BAUDRATE_SINGLE | _80_SCI_FALLING_EDGE_START_BIT;
/* Set bit rate */ SCI9.BRR = 0x18U;
上記の太文字の部分を変えているのですが、うまくいきません。この値をどう変えたらよいでしょうか。
コードに直接手を入れるとコード生成が動くタイミングで変更が消されるのでやめた方がいいです。GUIのビットレートのところで直接希望のボーレートをセットすれば良いのではないでしょうか?(RX72Nに20MHzや24MHzのクリスタルがついている場合、このビットレートはエラーが大きいと思います)。選択肢にないものは直接キーボードで入力すれば適用されます。
ご回答いただき、ありがとうございます。
直接入力したところ、115200までは動作することを確認しました。
ただ、230400、460800になると動作しなくなります。こちらの原因や解決方法などはございますでしょうか。
動かなくなる経験がないので・・・ボーレートの設定だけが問題とは限りません。私の場合はRX72Mですが、アブソエンコーダのためにRS485通信でSCIのボーレート設定を2500000bpsで使っています。問題なく動いています。
動かなくなるって・・・エラーレートが原因では?相手は同じボード?エラーレートが1%超えるならやめた方がいいです。
相手は同じボードで、エラーレートは1%超えてないです。。。
同じボードの場合はエラーレートは気にする必要がないです。あくまでターゲットボーレートとのズレです。もし、相手が違うボードでターゲットボーレートにピッタリの時エラーレートのズレがモロに影響します。
送信側が信号を全く出さない状態ですか?それとも最初のバイト、もしくは数バイトだけ送信される状態でしょうか?オシロスコープなどで確認してみくてください。もし、送信データが途中で止まっているならボーレートとは関係ないところで問題が起こっていると思います。
オシロで確認したところ、なにも信号を出していない状況です。(ボーレート115200では信号はでていました。)