095128 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

ISHマイクロマウス

ISHマイクロマウス

SH2をマウスで使う方法

個人で入手可能な最近のSH2紹介等(マイクロマウスへSH2を使う場合を想定しています)

 個人的に趣味で、H8Tiny(3664F~3694F)や、H8/300H(3048F~3052F)などH8ファミリーを好んでアセンブラで記述して使っていました。
マイクロマウス競技へ挑戦するにあたり、自分を成長させるキッカケだと思い(込み・・・無謀にも)SH2を採用しました。エキスパートの方々も多数採用しているし、H8よりCPUクロックは速いし、と同じルネサス製だから・・・という軽いノリで安易にスタートしたので、なにかと引っかかって時間ばかりが過ぎ、開発は今なお続いている状態です。
 まだまだ初心者レベルのSH2使いですが、判ってしまえば当たり前な事なのに、当初は無知な故に戸惑い混乱し悩んだ現在進行形の経験を書き連ねてみます。同じようなSH2マイコンへ挑戦してみようという方への僅かな情報提供と、忘れっぽい自分への備忘録だったりします。

・SHを使う前に知っておくと役に立つ・・・かもしれない情報(ボード購入前が吉です♪)

 事前に使うCPUシリーズ(型番SH7125とかSH7146とか)のハードウエアマニュアルをルネサスのホームページから入手してください。ルネサスHP(http://japan.renesas.com/)の製品情報からSuperHファミリで品種を選んで、当該ページの左にあるドキュメントを選択すれば(いろいろ窓が次々出てきますが)タダで最新のハードマニュアルのPDFが入手可能です。

1:SHは、リセット後に、殆どの周辺(タイマーやシリアルやA/Dとか)が電気食わないように死んだフリしている!
 →マニュアルの低消費電力状態(モード)の項を最初に調べ、使いたい機能がデフォルトでスタンバイ(=殺してある)設定かどうか確認しましょう。H8とかはリセット後に全部生きていますが、SHは逆です。H8でもスタンバイ状態にして消費電力を減らす事も可能ですが、私はスタンバイにしたことが無いっす。
SHでは使いたくても生かさないと使えないので、仕方なく生かす作業から行う事が必要です。このときリセット直後に各クロック(φI、φB、φPなど)の分周率を切り替える作業を先に行ってから、スタンバイを解除するのが最も効率が良いでしょう。(クロックの設定変更時は、CPUとメモリ以外をスタンバイ状態にして行う必要があるため)

2:SHは、あちこちにピン機能を切り替えることが出来る・・・ってかどこに配置するか決めないといけない!
 →マニュアルのピンファンクションコントローラ(PFC)の項を眺めて使うペリフェラルの機能ピンを実際に何ピンで生かすかを決めないとならないのです。完全なフレキシブルではないで、あとから、あっちもダメ、こっちもダメってこともあります。事前の計画が大切です。シリーズごとにレジスタ配置が違うので上位の品種でも互換は無いのが当たり前ですからマニュアルをよく眺めましょう。

3:SHは内部クロック(φI)と周辺クロック(φP)の上限が異なる!!
 →システムクロックはどんな仕様にも明記してありますが、実はSHの周辺クロック(φP)には限界があり、私が使っているSH7146シリーズだと40MHzが上限となります。(現行の最新SH2は50MHz上限みたい) SH2コア部分(CPU、内蔵メモリ)は高速で動けますが、周辺機能のタイマーやシリアルなどのPφで動作するモジュールは既に追いつかない領域に達している状態なのです。PLLを使って源発信の水晶から×4倍とか×8倍とかしてクロックを作っている関係で、φIが50MHzまでのSH2では、40MHzを超えるφIで使用する場合、φPはφIの1/2に設定する羽目になり20MHzと半分になってしまいます。周辺クロックを限界の40MHzで使いたい用途では、泣く泣く50MHzで動くのにφIを40MHzまで下げてφPを1:1設定にすることもあります。ここ数年でφIが80MHzのシリーズが出てきましたので、こちらのシリーズを使えば、1/2で設定しても周辺φPは限界の40MHzで使えるので、お勧めです。(趣味の範囲でSHへ移行してからSH7146やSH7149をもっぱら個人的に採用してるのは、この部分に理由があります)

4:SHは結構大食らいで発熱も大きい!!!
 →マニュアルを読んでもピンと来ないですが、H8が数十mA程度しか電流を食わないのに、SHは平気で100mA以上が流れます。2倍以上の電流が流れると考えておいた方がいいでしょう。このためICは「暖かい」では済まず「熱い!」の一歩手前です。

 自分の経験から云って、何かしらつまずいた事は、大概は他人もつまづいているものですよね。日頃から困り事はWebで検索し、経験談とか解説したページに巡り会えて無事解決したり糸口を掴んだりすることも多々ありますので、何かしら自分にも出来ないかと思い中途半端ながら記してみました。少しでも役に立てば幸いです。

ページ作成 2008.12.03 2012.12.21加筆訂正 by いしやん2001


追記

私が使っているSH7146シリーズの後に、SH7147,SH7137シリーズがより周辺機能を充実させた形で出ています
・コア80M動作とか基本的な部分はSH7146と変わりないですが・・・
SH7147
 ◎メモリがフラッシュ512KB、RAM16KBまでラインナップされました(特にRAMが増えたのがGoodですね)
 ◎ADが40MHz動作可能、12bit精度に進化しています(ちなみにSH7146/SH7149はADが最大25MHzまでしか動かず、10bit精度です)
注意点としてはAD前段のサンプルホールドが2段になって同時2chサンプリングする方式に変わっておりAD変換時間は期待したほど早くないようです
 ○CAN-I/Fがつきました(私にとっては全く使い道ないな~)

SH7136 / SH7137
 ◎メモリがフラッシュ256KB、RAM16KBまでラインナップされました(SH7146/SH7149が256KB、8KBなので、一気にRAM容量が倍♪)
 ◎ADが40MHz動作可能、12bit精度に進化しています(SH7147と同様)
 ◎I2Cがつきました(EEPROMや加速度センサーやらを接続が容易で便利です)
 ○CAN-I/Fがつきました(SH7147と同様)


これら新しいSH2では電源電圧が3.3Vでも5Vでも動作するのは良いのですが、ADが高性能となった為にAVccは4.5~5.5Vと以前より使用電圧範囲が厳しくなってしまっていますので注意が必要です(私の使っているSH7146/SH7149だとCPUも周辺も4.0~5.5Vなので3.3Vでは駆動不可すから進化しているのですけどね)

これらの新型が出たことにより、私が現在使っているSH7146シリーズはφIが80MHzな製品って存在でしか無くなったぞw(あえてアドバンテージを挙げれば・・・BSCで16bitバス幅設定が可能って事だけ・・・そこまでピンリソース使う用途って^^;ナイダロ~)
次に採用するなら、外部メモリを載せるならバス拡張出来るSH7137、シングルチップならSH7136が良いかと。
これから入門される方は、現時点においては周辺機能のアドバンテージがある新型(SH7136/SH7137あたり)がおすすめで~す 出始めでは200MHz動作のSH2AとかMMUとかイラネって思って見向きもしなかったのですが、FLASHメモリ搭載SH2Aシリーズが5V駆動で100MHz、3.3V駆動で160MHz動作するようになり超贅沢使用ですが使ってみても面白そうです

マイクロマウスでもARM(Cortex-M3)系を搭載して大会で活躍しているのを最近知り、組込み制御系の世界において32bit分野ではARM系CPUがメインとなっている現状からみると、これからはARM系が増えてゆくのかなぁ~って感じます
やっぱ自国で生産され機械翻訳でない日本語マニュアルが読める国産MCUに頑張って貰って、是非生き残って欲しいと願う気持ちが強いんですけどね~

加筆訂正 2012.12.21 by いしやん2001



© Rakuten Group, Inc.
X