Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

RL78/F14の初期設定(クロック,ポート)について

RL78/F14を使った製品を初めて取り扱うのですが、初期設定が上手くいかず動きません。どなたかお力添えをお願いします。

現状としては、E1エミュレータを繋げてデバッグできているのでCPU周りの回路は問題ないと考えています。

・クロックについて

PLL設定ができません。高速OCOおよびX1クロックに切り替えて動くことは確認できましたが、PLL設定の際にロックアップが終わりません。(PLLSTSのLOCKが1になりません。)

・ポート設定について

PMxxでポートを出力に設定し、ポートレジスタに1をセットしたのですがポートから出力されません。(Pxxに1が入っていることは確認しています。)

 

自動生成されたコードを参考に設定したので間違いはないと思います。ハードウェアマニュアルも確認しましたが改善されるような記述は見つけられませんでした。

間違いやすい箇所や見落としがちな注意事項などあればご教授願います。

  • わわいです
    まずはそこんところのあなたの書いたコードを晒してみましょう。
    想像でアドバイスしても的はずれなだけですしねー
  • NoMaYと申します。

    RL78/Fxxは使ったことが無く詳しくは無いのですが、特定のデバイスの話や実際のコーディングの話の前に、E1を繋いでデバッグしているのですがポートからの出力が出来ないので困っています、というような投稿で何度かあった結末として、原因はCS+でのデバッグツールの選択がE1では無くてシミュレータになっていた為でした、というのがあります。今回の件も、まずは、そこが気になります。

  • チョコです。

    RL78/F14はオートモーティブ用なので使ったことはありませんが,RL78/F14のPLLはメイン・システム・クロックが

    4/8MHzでのみ使用可能なようです。ここらの設定はどうなっているのでしょうか。コード生成で設定してみた画面の

    イメージを示します。

    設定を確認してみてください。RL78/F14の環境をもっていないのでデバイスでの確認はできないので,

    これくらいしか言えません。

     

    ポートに関しては,具体的なポート名称(ついでにデバイスの具体的な名称)が分からないと確実なことは

    言えません。ポートにどのような兼用機能があるかで設定が異なります。

    また,ポート出力を使用するには,兼用機能の出力が初期状態になっている必要もあります。

    また,N-chオープン・ドレイン出力の場合には外部でプルアップしないとハイにはなりません。

    もっと,具体的な情報を開示してください。

    追伸

    NOMAYさんもコメントされていますが,ちゃんとE1で実際のデバイスを動作させていますか。

    シミュレータはPLLには対応していないので,PLLの部分で先に進まなくなります。

  • かんとんさん おはようございます。NAKAといいます。

    RL78/F14は良く使います。
    もし参考になれば、比較してみてください。

    /************************************************************************
    // 関数名 : fn_Init_Clock(void)
    // 動作 : システムクロックの初期化
    // 引数 :
    // 作成 : NAKA 16.01.26
    // **********************************************************************/
    void fn_Init_Clock(void)
    {
    //************外部水晶振動子発振8MHz⇒PLL⇒32MHzの設定***************
    volatile unsigned short i;
    CMC = 0x40; //X1発振モード(端子有効)
         //XT1:低消費発振(デフォルト)、X1(8MHz)<10MHzで使用
    OSTS = 0x07; //安定時間設定
    MSTOP = 0; //X1発振回路 起動
    for(i=0;i<0xFFFF;i++){__nop();} //発振安定待ち
    MCM0 = 1; //メインクロックに高速システムクロックfMXを選択
    PLLCTL = 0x92; //8MHz/4分周×16逓倍=32MHz
    PLLON = 1;
    for(i=0;i<0xFFFF;i++){__nop();} //発振安定待ち
    while ((PLLSTS & 0x80) == 0){}
    SELPLL = 1; //PLLクロック選択モード
    XTSTOP = 1; //XT1(サブ)発振回路 停止
    SELLOSC = 1; //低速オンチップオシレータ 起動
    CSS = 0; //CPU/周辺をメイン/PLLクロックを選択
    MDIV = 0; //fMP/1=32MHz?  
    HIOSTOP = 1; //高速オンチップオシレータを停止
    RTCCL = 0x42; //RTCのクロック選択 適当?
    TRD_CKSEL = 0; //TRD用クロックの選択
    }
  • CS+の使用するデバッガツールがE1ではなく、RL78シミュレーションになってませんか?

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page