高田馬場の組み込みおやじ-電子工作、回路設計、ファーム TIPS

このブログは令和デバイス株式会社の菅原が、電気電子、電子工作、組み込みソフトウェアなどで、自分が苦労したところや面白い気づきなどを記事にしていきます。電子工作やマイコンに親しむ人が少しでも増えたらという思いでつづります。
やっぱり、電子工作が好きなんですよ。
an-r01an0339ju0205-rx-can RX63系で CAN0が動作しないことがある報告
0

    JUGEMテーマ:組み込み開発

     

    RX600 シリーズ CAN アプリケーションプログラミングインタフェース

    an-r01an0339ju0205-rx-can 

    R01AN0339JU0205
    Rev.2.05
    2018.02.07

    にて。。

     

    RX63 の CANのマイコンで不具合があります。RX62系はありません。

     

    RX630 で 以下のようにCAN0のポートを PD1,PD2にしたところ 動作しませんでした。

     

    config_r_can_rapi.h 

    #define CAN0_RX_PORT PD2
    #define CAN0_TX_PORT PD1

     

    実機でデバッグ中にレジスタを見てみると CAN0のレジスタに書き込みされていませんでした。

     

     

    原因を探ったところ以下のところに不具合がありました。

     

    r_can_api.h 

    78行目から

    /******************************************************************************
    Definitions Used to make the port pin selection logic work 
    ******************************************************************************/
    #define    P14        14
    #define    P15        15
    #define    P32        32
    #define    P33        33
    #define    P54        54
    #define    P55        55
    #define    P66        66
    #define    P67        67

     

    とあります、 PD1,PD2の設定がありません。

     

    PD1,PD2の設定がないところだと 以下のような記述の場合

     

    #if (CAN0_RX_PORT) && (CAN0_RX_PORT == P33)

     

    #elif (CAN0_RX_PORT) && (CAN0_RX_PORT == PD2 )    

      ここを有効としたい

    #else     

      しかしここが有効となっていた

    #endif    

    PD2が #defineされていないので #else以下が有効となってしまいました。

    すなわち、 ポートが設定されていないので CANは使わないという解釈がされていました。

     

     

    そこで

    #define      PD2        132
    #define      PD1        132

     

    と追加したところ 動作するようになりました。

     

    PD2,PD1に設定する値は 他のポート設定と重複しなければOKです。

     

    今回 北斗電子のHRSBRX630Bで開発していました。

    HRSBRX630B は PD2,PD1をCANのポートとして 回路設計しています。同じようにはまることがありませんように。

     

     

     

    | 令和デバイス-菅原 | Renesas RXマイコン | 20:59 | comments(0) | trackbacks(0) |
    FT232とRX231の組み合わせでちょっと速いシリアル通信をする
    0

      JUGEMテーマ:組み込み開発

      RX231には USB機能が付いていて、ルネサスでもサンプルソースが公開されていて割と気軽にUSBはできたりする。

      で、結構速度も出る。

       

      だが、ルネサスのベンダーIDをそのまま使うわけにもいかないことと、いまいち、安定性がない(自分の感覚で)のであまり使いたくはない。

       

      そこで そんなに通信速度もいらない場合には FTDI社 FT232 系の ICを使って マイコンからシリアル通信をすることになる。

      普通のボーレートは 9600bpsとか 19200、速くても 115.2KBPSぐらいではないだろうか

       

      この前 460.8Kbpsで通信できたので、ちょっとメモしておく。

       

      FT232系のICでシリアル-USB変換するものは大抵 3Mbpsが最大通信速度となる。

      3MHzを分周した値が通信速度となる。

      PC側で 115.2K とか 9600BPS とか設定するのだが、一番近い通信速度が割り当てられる。

      例えばこんな感じで通信レートができる。

       

      1500000
      1000000
      750000
      600000
      500000
      428571.4286
      375000
      333333.3333
      300000
      272727.2727
      250000

      まだまだ続く

       

       

      これと RX231の通信レートを合わせると そこそこ速い通信速度で通信できる。

       

      230.4Kbpsとか 460.8Kbpsぐらいになるとプリスケーラでなんとかなる周波数ではなくなるので、

      あらかじめ その通信ができるようにクロックを決めてやらないといけない。

       

      RX231は PLLを搭載していて27MHz, 26.25Hz,25.5MHz,24MHz など メインクロックをかえられる。

      メインクロックから生成できる UARTの通信速度の組み合わせをエクセルの表にしてみて

      FTDIとRX231の各周波数が大体合うところを見つけ出す。

       

      この方法で 460.8Kbpsの通信に成功した。

      ただし、UARTの送信はともかく受信では取りこぼす可能性もあるので、RX232の送受信はDMAを使った。

       

       

       

       

       

      | 令和デバイス-菅原 | Renesas RXマイコン | 01:03 | comments(0) | trackbacks(0) |
      Renesas Rx621 :FreeRTOS CS+プロジェクト移植
      0

        JUGEMテーマ:組み込み開発

         

        ルネサスRx62マイコンのRTOSをいろいろ調べている。

        ところが ダウンロードしてCS+のプロジェクトでサクッと動くものが見つからない。 

        Toppersの uITRONが最有力候補だったが HEW だったことと、プロジェクト自体が複雑過ぎて CS+に変換するには苦労しそうだ。

        次は FreeRTOSだが、ソースファイルがどこにあるかわからない。

         

        忘備録-備忘録 技術的な備忘録 lm324様の

        RX62NでFreeRTOSを動かす のページにてサクッとソースファイルが手に入った。e2Studioということだったので、CS+のプロジェクトにしてみた。

         

        高機能なマルチタスクOSは数多く出ているが、機能はそこまでいらない。

        ・複数のタスクが動かせる。

        ・時間指定のスリープができる。

        ・セマフォと タスク間のメッセージ転送

        ぐらいの機能があれば十分だ。

        それよりも・プロジェクトに簡単に組み込める方が大切

        FreeRTOSについて詳細を調べてはいないが、私の要求に一番合致していると思われる。

         

        ダウンロードはこちら

        Renesas RX62 FreeRTOS CS+プロジェクト

         

         

        今回は RX621で試した。 写真は北斗電子 HSBRX621-A R5F56218BDFB

        ペリフェラルは PORTD と CMT0 ・・それから クロック発生回路しか使っていない。

        クロック発生回路のソースコードを変えたら、他のRX6シリーズ RX200シリーズなどへの移植も容易であろう。

         

        | 令和デバイス-菅原 | Renesas RXマイコン | 11:14 | comments(0) | trackbacks(0) |
        1234567
        891011121314
        15161718192021
        22232425262728
        293031    
        << December 2019 >>
        + RECOMMEND
        + RECOMMEND
        + SELECTED ENTRIES
        + RECENT COMMENTS
        + RECENT TRACKBACK
        + CATEGORIES
        + ARCHIVES
        + つぶやき
        + MOBILE
        qrcode
        + LINKS
        + PROFILE