スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

RX220 シリアル通信の隠し受信ビット

新しいマイコンを導入したら真っ先に開通させたいのがPCとのシリアル通信だ.
AKI-RX220には合計5CHものSCI(UART)が付いているのだが,難点がひとつ.
受信レジスタ(RDR)にデータが入ったのを知るためのステータスビットが存在しないのである.
このため受信データは割り込みで取得する必要がある.
しかし,動作確認の段階でイチイチ割り込みの仕様を調べてそれ用のコードを書くのは抵抗がある.
とにかくPCのターミナルソフトで何かキーを押して,ソフトウェアポーリングでサクッと読みたい.

そんなときはSSRレジスタのB6を読もう.

ここがなぜか受信完了フラグビットとして機能するのである.
RX220のハードウェアマニュアルには「予約ビット:読んだ場合,その値は不定」と書いてある.
これはもしかしたら古いSCIのSSRのレジスタ仕様がそのまま残っているからかもしれない.
ただし,ビットフィールドのメンバ変数がiodefine.hに定義されてないので,

while((SCI1.SSR.BYTE&0x40)==0){} //受信フラグがが1にセットされるのを待つ
data = SCI1.RDR; //データを読み出す

のような記述でポーリングする必要がある.


スポンサーサイト

AKI-RX220 あれこれ

このごろは 1300円で広がる小宇宙 を堪能する.
ルネサス32bitマイコンRX220.かつてのAKI-H8-3664TINYと同じ姿かたちながら,中身は32bit高性能マイコンに進化している.



さて,このAKI-RX220マイコンだが,使う上でいくつかポイントがある.

①RxD1,TxD1をRS232CレベルコンバータICから切り離す
64ピンの小宇宙とはいっても,周辺機能テンコ盛り仕様のこのマイコンを使い倒すには,1ピンたりとも無駄にはしたくないところ.
使っているPCにRS232CのCOMポートがない場合,TxD1,RxD1はただのTTLレベルUARTとして,PCとはFT232R等で接続したい.
その際は基板裏側のIC2のすぐ右,C11コンデンサのすぐ左の2本のパターン(TxD1,RxD1線)をカットしよう.

②E1と最小4ピン接続して楽々デバッグ
E1を持っている人は,白い箱から生えている14ピンコネクタの取り回しとはんだ付けのめんどくささにウンザリしているのではないだろうか.
E1を使わず,シリアル経由での書き込み(FDTを使う場合)ならピン数は少なくてすむが,変数ウォッチができないためLEDデバッグになってしまう.
さりとて,自作ボードを作るたびに毎回E1との接続に14ピンを半田付けするのは骨が折れる.
それに,貴重なユーザピンをデバッガに占有されるのはできるだけ避けたいものだ.

RX220では,実は4ピン接続でオンチップデバッグができる.使うピンは
GND
RES#
MD/FINE
VCC
である.
E1接続時の起動モードは「シングルチップモード」に設定する.
デバッガとのデータ通信はFINEインターフェースの1線のみで行われる.
やりかたとしては,E1に接続する2列ピンヘッダ内でGND3箇所を接続し,ターゲット側には上記4ピンのみを伸ばす変換コネクタを作成することだ.


③内蔵高速発振子HOCOを使う
秋月のボードには,20MHzのクリスタルが外付けされているが,RX220の最高クロックである32MHzで動かすには内蔵高速オシレータHOCOを使うのが手っ取り早い.もちろん,追加部品やクリスタル交換は不要である.
HOCOクロックの精度は0~50℃で±1%と悪くないレンジだ.
この内蔵発振子を使うには,例えば以下のようなコードをmain関数の初めに記述するだけでよい.
SYSTEM.SCKCR3.BIT.CKSEL=1; //HOCOをクロックソースに設定
SYSTEM.HOCOCR.BIT.HCSTP = 0; //HOCO動作
SYSTEM.HOCOCR2.BIT.HCFRQ = 0; //HOCOのクロック選択 0**32MHz
32MHzクロックを利用することで,通信系の最高速度は以下となる.
SCI 2Mbps(FTDIのFT232Rで設定可能)
RSPI マスタクロック 16MHz スレーブクロック 4MHz(スレーブのほうが遅いので注意!)
また,CPU処理性能は49MIPSとなる.

注意したいのが,このマイコンをH8やSH,PICマイコンのような感覚で使おうとすると,最初にMPC(マルチファンクションピンコントローラ)なる機能の設定項目の多さに挫折しかねない点だ.
I/Oポートを複数の周辺機能のピンとして割り当てる設定をするのだが,これが正直,初心者が軽く絶望するレベルにややこしい.
設定するレジスタの数もさることながら,マルチプレクスされる周辺ピンが「被っている」ところがミソで,ちゃんと「ご利用は計画的に」やらないとあとで必要な機能のピンが他の機能でつぶれてしまったりするのだ.少ないピン数で多数の機能を実装した結果,こうなってくるのはしかたないのかもしれないが,ピンと機能が1対1の単純な構造のマイコンしか使ったことのない人にとっては混乱の元になりそうだ.
とにかくマイコンから先の部品のはんだ付けの前に,機能とポートの割り振り一覧をエクセルなどで作成してから回路作成を始めたほうがよいと思う.


プロフィール

もやね

Author:もやね
長野県在住の会社員(メカニカル・エンジニア).
ロボットは完全な趣味としてやってます.
E-mail:
mo_ya_ne[a]yahoo.co.jp
[a]⇒@

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
FC2カウンター
ブログ内検索
RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。