2013年8月16日金曜日

R8C/M11A(M12A)でシリアル

どうもQです。

趣味ラボSCLで、友人と一緒にとあるプロジェクトをやっているのですが、自分の担当?でR8C/M11A、もしくは R8C/M12Aでシリアル通信するプログラムを書いておりました。

みんな大好き秋月のR8Cマイコン
http://akizukidenshi.com/catalog/g/gI-04524
http://akizukidenshi.com/catalog/g/gI-04525


安いし機能も少ないマイコンだから簡単だろヒャッハーwwwとか思ってたらハマったハマった…。で、ネットで色々検索かけてもあんまり情報が出てこないので、折角なんでメモ代わりに書いときます。


①書込み回路
ハードウェアマニュアルの付録に書いてある書込み回路ですが、回路図上のTXD0、RXD0は「マイコン側の」ピンを表しています。つまりPCにとっては逆。


②書込みソフト
R8CメーカのルネサスからFDTという書込みツールが出てますが、M11A,M12Aともになんかうまく認識してくれません。接続はできるんだけど、なぜかその後止まります…。一回なんかうまくいったと思ったら、ベリファイに失敗ししかも変なID書いたみたいで書込みすらできなくなりました…
同じくルネサスから出ているFlashStarterというソフトだと大丈夫です。


③機能モジュールの電力設定
最大のハマり点。これ、ハードウェアマニュアルかなんかでもっと大きく注意書きすべきだと思うのですが、まっさらなICを買うと、出荷時点で内部のフラッシュメモリにあるレジスタ、OFS2が0xFFになっています。フラッシュなので、一度意図的にプログラムでこいつを0x00に書き換えてあげないと、いつまでも0xFFのままになります。

これ自体は対処する必要はないのですが、上記の通りになっているとマイコン起動後にモジュールスタンバイ制御用のレジスタMSTCRが0xFFになります。この場合、シリアルやタイマ用の内部モジュールが全てスタンバイ状態になってしまい、各モジュール関連レジスタへの書込みが一切受け付けられません。結果、LEDチカチカみたいなのは動くけど、その他機能が何故か動かないということに。

対処法は、このMSTCRは普通に書き込めるレジスタなので、各機能の初期化の前に関連するビットを0にしてきましょう。いつまでもシリアル送信、受信ができず、ちょーーーハマりました…

多分巷に出回ってるM11A,M12A関係のマイコン情報は、上記OFS2が最初から0xFFじゃないんじゃないかなと思います(それらしいことはハードウェアマニュアルに書いてありました)。他サイトで公開されてるプログラムが何故か動いてるのはそういうことなんでないかと。


④割り込みレベル
各機能の割り込みには優先レベルがあります。初期状態では全ての機能の割り込み優先レベルが0になってて、割り込み禁止状態なので1とか2にしてあげましょう。忘れると、割り込み条件が満たしても、いつまでも割り込みが発生しません。



まあともかくこれで必要なことはできるようになりますた・・・マジでちかれた。
間違いとか、これでもいけるよーとかあったらおしえてくだちい。

10 件のコメント:

  1. つか,評価ボード買わないで,いきなりチップを買ったの? (@@;
    muneyoshi

    返信削除
  2. お久しぶりです。
    男ならいきなりIC単品買ってきて、仕様書と格闘するのが世界の常識だと伺っておりますw

    いえ、単に金がないだけですw

    返信削除
  3. いや,全くその通りなんですけどw,評価ボードがTK-80の時代の10万円ならいざ知らず,2000円だったら買った方がいいじゃないですかww.あ,確かにCPUが200円なら,当時のCPUも1万円しましたから,比をとったら同じかも知れませがwww.
    - muneyoshi

    返信削除
  4. 比率は確かに同じですねwいや、正直舐めてました、完全にトラップでした。仕様書も他のと大差ないし、他のR8使ったことあるから大丈夫だろうと思って買ってみたらってやつですね。

    でも、これ多分評価ボード買って、壊すかなんかして新規にマイコンだけ買ったら、同じトラップにはまると思いますよ。まあそういう意味で価値があると思ったからブログ起こしたんですが・・・

    返信削除
  5. 秋月をなめてはいけませんw.あそこの商品は大昔より,教育的配慮から,必ずはまる商品をラインナップしていますw.IC を買って,秋月で添付されるデータシートの通り配線しても動かない.そして,部品の型番の末尾のアルファベットが異なると,ピン配の違う部品だという事を自力で発見するww.その結果,資料は必ず原典を参照し,それ以外を一切信用しないエンジニアの王道学ぶwww.
    muneyoshi

    返信削除
  6. それ、多分ト〇技とか〇ンターフェースとかも言えるのかな、って思ってますがあってますかね?w教育的配慮から、必ずデータシート通りでない配線がどこかに入っ・・・あれ、誰か来ました。

    確かに上手く行かないのを突破した時がレベルアップの瞬間だというのは否定はしませんが・・・w

    返信削除
  7. いや,全くその通りです.大学の先輩から,DC-DC コンバータが動かない,と相談されて,思い当たるフシがあってw,それトラ義の回路写したでしょ,データシートの回路図と対照すると1個余計なコンデンサーがついてますから,それ外してデータシート通りに組んでみてくださいww.実はその数日前にはまってましたww.で,外したらちゃんと動いたとの事で,再現性ありww.
    こうして,データシートや標準・勧告書のみを読んで技術を理解して,余計な解説書を一切見ないで,設計できる様にレベルアップしていきますwww
    muneyoshi

    返信削除
  8. 昔から似たようなことの繰り返しなんですねw しかし、あのサンプルやデモ基板だって、それなりの経験者が執筆しているはずですし、テストだってやってそうなもんなんですが、どういうことなんでしょうね。

    まさか教育的配慮から、トラップ仕込んでくださいなんて依頼されてるわけでもないでしょうし・・・普通に考えたら、お金や時間が無いからテストしてない、ってところですかね。

    返信削除
  9. 先ず秋月の部品に関しては,入手経路にヒントがあると思います.もちろん,普通にメーカから仕入れてきた部品もあるのでしょうが,あの安さの裏は,メーカの工場の在庫処分品を買い取ってきて販売しているのでしょうね.(まさか,噂の倉庫からxんで来ている訳ではないでしょうw).
    なので,部品の中には部品メーカの定番品ではない部品,実態は,特定の製品向けにカスタマイズされた部品も交じっていると想像します.そういう部品の仕様は,定番品と微妙にずれていても当然でしょう.

    次に雑誌の記事ですが良く判らないですねw.実は上の話は,当時は結構有名な常連筆者が書いた記事だったのです.想像するに,記事の元にした部品がサンプル品で,量産品と違っていたとか,そのコンデンサはサンプル品の問題対処だったとかか,或いは,実は何らかの製品から切り出した回路図であり,その製品では必要な対処であった,とかじゃないかと思います.

    いずれにせよ,雑誌の記事,今なら Web の記事を見て設計するなんて,ど素人のやる事で,仕事で金を貰っている職業人のする事では無い,と体に叩き込まれればいいのですwww

    返信削除
  10. やっぱりそうですよね、秋月の部品って特定の物を除いてどう考えてもどっかの在庫品かなんかとしか思えないです。おっしゃる通り、妙な?仕様のものがちょくちょくあるので…

    そして、仕様書を見てとかになると、どんどん店にいかなくなる・・・とw

    返信削除