RXマイコンで行ってみるか

秋月電子からRXマイコンボードが発売されたことから、メインCPUをRXに変更して再び汎用マイコンボードの作成を企んでいます。

RX用gccやbinutilsも現在公開されているバージョンは今のところ問題なく使えています。binutilsは2.21まではDセクションのマッピングが変で変数の初期化処理がうまく行かなかったのですが、2.22で解決されたようです。これでフリーの開発環境も揃いました。ちなみに私はubuntu 11.10でクロス開発しています。debパッケージも作ったのでいずれ公開しようかと思っています。

昨年4月に秋月電子からRXマイコンのチップ(R5F56218BDFP)単品が発売されていたので、ボードを自作していました。JTAGデバッガ(E1)が¥14700で購入できるので開発環境はH8に比べるとかなり快適です。(E1は秋葉原の若松通称で購入)

下の写真は現在のボードの状態です。ごちゃごちゃしていますが真ん中上の配線の下に隠れているのがRXマイコンボードです。

今のところ、

・JTAGデバッガ

・FT232RL(SCI デバッグ用コンソール)

・SRAM(CY7C1041DV33 512KB 8bitバス接続)

・グラフィックLCD(TG12864B 5V変換バス接続)

・Micro SDカード(SPI接続)

・VS1053b MP3デコーダ(SPI接続)

・ENC28J60 LANコントローラ(SPI接続)

・その他、LED、スイッチx8

を繋げています。SRAMを繋いだため、かなりピンリソースを消費しましたが、まだUSBや、I2C、ポート数本が未使用で余っています。RTCも内蔵されているので、H8/3069に比べると回路もシンプルに出来そうです。

H8で開発していた自作OS(GadgetSeed)をRXに移植し、マルチタスク化を行いました。Micro SDカードのMP3、AACファイルをVS1053bで再生するソフトを作成しましたが、H8/3069に比べると圧倒的にパワーに余裕があります。SPIが専用ペリフェラルとして内蔵されていることも大きいのですが、RXの演算能力はH8に比べると別次元のように感じられます。H8はかなり長い間ホビー用マイコンとして使われてきた感がありますが、RXの登場でホビーで出来ることも一気に幅が広がりそうです。(JTAGデバッガがもう少し安ければ良いんですけどね)

と、言う訳でまた非常に久しぶりの更新でした(^^;しばらくこのネタでブログを綴っていきたいと思います。

新しいプラットホームとRXマイコン

今まで作ってきたGadgetBaseプリント基板は取り敢えず、すべてのデバイスの動作を確認し、一応の終了としました。

ドライバを作っていると、「ここはこうしたほうがよかったな」というところがいくつも出てきて新たなプラットホームの検討を開始していました。

今度のプラットホームはH8/3069では少々重いIOだったUSBホストコントローラを外して、LANコントローラ(RTL8019AS)とMP3デコーダLSI(VS1053b)を使ったインターネットラジオの動作を目指しています。

LANはTCP/IPプロトコルスタックの出来がまだまだなのですが、VS1053bを使ったMP3、AACファイルの再生が出来るようにはなりました。しかしビットレートが256Kbps位のAACファイルの再生で、ほとんどのCPUパワーを使い切っている感じです。H8/3069の限界が見えてきた感じでした。このままプリント基板を作るよりもっとパワーのあるCPUを検討したほうが良いかと思った矢先に秋月電子からルネサスエレクトロニクスの新マイコン「RXマイコン」が単品発売されました。

雑誌インターフェースの2011年5月号にもRX62N基板が付録で付いてきており、個人的にはかなり有望なマイコンです。

惜しいことに秋月電子で販売しているRXマイコン(R5F56218BDFP)はLANコントローラと、SDRAMコントローラが付いていないタイプでした。(インタフェースの付録ボードのR5F562N7BDFBはLAN、SDRAMコントローラ付きです。)

それにしても、100MHzで165DMIPSの処理能力、USBやSPI、RTC等の豊富なインタフェースはかなり魅力です。パッケージサイズも100ピンLQFPで、十分手でハンダ付けできるサイズです。

ただし、まだ新しいアーキテクチャであるがゆえにgccのサポートがまだまだな感じです。KPITでgnu関連のツールがサポートされているようですがユーザ登録が必要だったり、ちょっと敷居が高い感じです。いずれTOPPERSやuClinux等のオープンソースのOSも移植されると思いますが、まずはオープンでフリーな開発環境が欲しいところです。

やっぱりLAN、SDRAMコントローラ付きのR5F562N7BDFBも秋月電子で発売してほしいなぁ。

基板の課題

忘れないうちに基板の課題事項をメモ

・電解コンデンサ(C11)のシルクを書き忘れている

凡ミスです。

・L1のフットパターンがピッタリすぎて半田付けがしづらい

データシートの通りだとピッタリなのですが、手付けを考えると少し大きめにするべきでした。

・リセットIC(TCM809)のフットパターンがちょっと大きい

ライブラリを使ったんだっけ?自分で入力したのかな?微妙に合いませんでした。

・LCDのコネクタ用端子の穴が小さい。

コネクタ入りません。orz

・SCI0のRXDをプルアップしておくべきだった

h8monはSCI0をgdb-stub用のI/Fにしているのですが、ゴミを受信して勝手にstub機能が動作してしまいます。拡張用にと思って端子を出しておいたのですが、オープンのままだったので取りあえず10Kでプルアップしました。

・UBSシリアル(FT232RL)が不安定

USBの配線はシビアなのかな?ジャンパで安定したのですが、せいぜいフルスピード(12MBps)と思って適当に配線したのがまずかったのかも?

・USBシリアル(FT232RL)にリセット入れなくてもよかった?

リセットIC(TCM908)からのリセットをFT232RLのリセット入力に入れていたのですが、リセットのたびにUSBが再認識されるのはどうかと思い、パターンをカットしました。


あと、パターンの変更はないのですが、キーボードに乗せている面実装LED(松下 LNJ208R8ARA)を点灯するとかなり熱くなっていました。抵抗10Ω入れていたのですが、電流が流れすぎていたようです。1KΩまで上げてもちゃんと光るのでこの値にしました。

いま、HT7750Aを使った電源回路を試しているのですが、あまり電流流せないみたい。スペック上200mAですが、よく見たらDRAMってリフレッシュ中90mAも流れるんで結構きついようです。電源をエネループ2本直列だとUSBシリアルがPCから認識しません。電池駆動は厳しいかなぁ(^^;

完成間近?

少しずつ部品を実装して動作を確認しています。

DRAM実装後、h8monのメモリチェック機能を使って動作を確認しました。

ベリファイエラーが山のように出ます。(;_;)

H8のD0とD1が半田ブリッジしていました。

直して再び確認すると僅かにエラーが出ます。

>memck
Memory check.
Start  : 400000
End    : 5FFFFF
F.Data : 00000000
Writing…
Checking…
Verify Error at 455C1C W:00015707 R:00095707
Verify Error at 4F674C W:0003D9D3 R:0003D9D2
Verify Error at 540070 W:0005001C R:0005201C
Verify Error at 58FE44 W:00063F91 R:00063791
Verify Error at 59FD1C W:00067F47 R:00467F47
>memck
Memory check.
Start  : 400000
End    : 5FFFFF
F.Data : 00000000
Writing…
Checking…
Verify Error at 455C1C W:00015707 R:00095707
Verify Error at 58FE44 W:00063F91 R:00063791
Verify Error at 59FD1C W:00067F47 R:00467F47
>

DRAMのリフレッシュ間隔を縮めるとエラーが無くなりました。取りあえずこれで良しとします。

DRAMは沖電気のMSM5117800を使っています。BSCの設定は以下にしました。

RTCOR = 5;    //
RTMCSR= 0x30;    // Φ2048

DRCRB = 0x98;    // カラムアドレス10bit

DRCRA = 0x7c;    // CS2:DRAM空間,P81出力

MicroSD、LCD、EEPROM、RTCも取りあえず動いているようです。

img_0983

LCDはコネクタで接続しようと思っていたのですが、GadgetBase側のスルーホールが小さくてコネクタが入りませんでした。(;_;)いろいろミスっています。

キーボードも半田付け終わりました。46個のタクトスイッチがあります。を正直しんどかったです。終わった後のビールがう旨かった。(^^;

img_0986

残りは電源回路と、USBホストです。

キーボードのドライバがまだなのでGW中に書く予定です。

何とか動いてきました。

なんとか動き出してきました。

最初、MD2ピンのプルアップ抵抗の半田不良に気づかず、FLASH書き込みソフトは動作するのに、書き込んだモニタソフトが起動せず、かなりうろたえました。(^^;

MD2がLowだと内蔵FLASH ROMが有効にならないのです。

img_0975

USBシリアル変換は回路のミスで2本のジャンパが必要です。

img_0978

クリスタルの下にスルーホールを置いたのも、ちょっと失敗でした。部品と密着させて実装すると回路がショートする恐れがあるので、少し浮かせて半田付けする必要があります。

img_0981

Mini-USBコネクタにもジャンパを1本入れています。パターンが問題なのか原因は不明ですが、これを入れないと、PCからのUSBシリアルの認識が不安定になります。