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も秋月電子で発売してほしいなぁ。

秋月電子のH8/3069Fネット対応マイコンLANボードについて

TFTPブート対応のh8monは秋月電子のH8/3069Fネット対応マイコンLANボードで開発しました。

このボードは完成品と、キット品の2種類があるのですが、完成品は面実装部品をつかったボードになっているのに対し、キット品は挿入型の部品を使っています。

私は写真のようにピンソケットを部品面に実装してブレッドボードと接続して使いたいために、キット品を使っています。(完成品は既にピンヘッダがハンダ付けされているのでこのような使い方が出来ないのです。ピンヘッダ未実装バージョンも発売してほしいなぁ。)

キット品のLANコントローラ(RTL8019AS)のクロックにはセラロックが使われいるのですが、困ったことにセラロックはクロックの精度が悪いため、LANの通信がかなり不安定です。

受信は出来るのですが、送信したパケットが大きくなると(私のボードの場合700バイト位から)受け取り側が受信できなくなります。

これに気づかず、暫くh8monのデバッグに苦労しました。

上の写真のボードはセラロックを外して、下の写真のような水晶発振子のボードを作って取り付けてあります。これで不安定だった通信が素晴らしく安定しました。

上の写真のボードはRS232Cのレベルコンバータ(SP232AEN)の接続をカットし、秋月電子のFT232RL USBシリアル変換モジュールを接続し、更にUSBバスパワーでH8/3069 LANボードを動作出来るようにしています。これで、パソコンさえあればどこでも電源入らずで開発が出来ます。(^^;

h8monでTFTPブート

2年も放置していましたが久しぶりの更新です。

以前から公開していたH8/3069用のモニタプログラム「h8mon」に「H8/3069Fネット対応マイコンLANボード(秋月電子通商)」のLANコントローラに対応したTFTPブート機能を追加しました。

この機能を使うと「H8クロスコンパイラ」でコンパイルしたELFバイナリのプログラムをTFTPサーバで公開することにより、h8monよりネットワーク経由でTFTPダウンロード、実行することが出来ます。

フラッシュメモリへの書き込みや、シリアルのダウンロードに比べて、数倍の速度でアプリケーションをダウンロード実行することが出来ます。実行画面はこんな感じです。

H8/300(H) 3069F Monitor Ver. 0.90
(c)2011 Takashi SHUDO
Virtual vector table area : FFBF20 - FFC01F
Monitor used RAM area     : FFC020 - FFD179
Monitor stack end address : FFD30C
Build date                : 12:26:30 Apr 30 2011
>ip 192.168.1.123
IP address : 192.168.1.123
RTL8019AS Initialized
MAC : 00:02:cb:01:64:bf
Start network
>tftpb 192.168.1.3 gs
TFTP boot
Target IP : 192.168.1.3
File name : gs
Load Addr : 500000
Start
Port 54278
................................................................................
................................................................................
................................................................................
............................................
Done
Receive size = 145084
Load : 00400000 - 00400583 (00000584)
Load : 005D1000 - 005F3B62 (00022B63)
Load : 005FC000 - 005FC009 (0000000A)
Load : 00FFBF20 - 00FFBF23 (00000004)
Entry address = 5D1000
GadgetSeed Ver. 0.79z17
(c)2010,2011 Takashi SHUDO
Build date : 22:45:44 Apr 28 2011
Static Memory : 0x401000 - 0x411000
Heap Memory   : 0x411000 - 0x5D1000
1856 K byte free
MAC : 00 02 CB 01 64 BF
Storage 0: "eeprom"
Ver.0.79z17
(c)2010,2011 Takashi SHUDO
:

TFTPサーバはubuntu 10.04で動作確認しています。

GadgetSeedの開発もちまちまやっていたのですが、ソフトウェアの規模がかなり大きくなってきたのでシリアルのダンロードにも数分かかるようになっていました。実行までに時間がかかると開発のモチベーションも下がってしまいます。そこで2011年の年明けあたりから少しずつIP/UDPのプロトコルスタックから作り始めていたのですが、やっと実用に耐えれれる程度になったので「h8mon Ver.0.90」として公開します。

h8mon Ver.0.90のダウンロードと、マニュアルはこちらを参照ください。

基板の課題

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

・電解コンデンサ(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シリアルの認識が不安定になります。

組み立て開始

仕事が忙しくて、折角到着した基板も組み立てもさっぱり進みません。(^^;

取りあえず、H8が動く最低限の部品を実装することにします。

img_0970

半田ブリッジはお構いなく半田をのせていきます。

img_0971

半田吸い取り線で余分は半田をとれば、綺麗になります。

img_0973

確認のためのルーペは必須です。

プリント基板到着

ついにプリント基板が到着しました。

img_0966

早速開封します。

img_0967

綺麗な仕上がりです。感動です。(^^)

img_0968

回路にミスがあったのが惜しまれます。

img_0969

部品を借り置きしてみました。サイズピッタリです。

早速組み立てたいのですが、今日も仕事がしんどかったので組み立ては明日からにしようかな?(^^;

新たなバグ発見

USBシリアル変換ICの回路に新たなバグ発見orz

H8とのTXD、RXDはクロスで繫がないといけないのね。

これの修正にパターンカット2本とジャンパ2本追加。

今回はCPUの端子からジャンパが必要なので半田付けが辛いなぁ。(´Д`;)

2018年1月
« 2月    
 123456
78910111213
14151617181920
21222324252627
28293031  

ブログロール

最近のコメント

    アーカイブ

    カテゴリー

    Powered by WordPress, WP Theme designed by WSC Project. ログイン