« 18bit 20ch ADボードを手実装 | トップページ | 特電はET2014のETフェスタにも出店(?)します »

2014.10.21

AD360ボードの火入れ

本日、開発中の新製品「AD360 データロガー」に火入れを行いました。

※18bitのADを20ch持つのでAD360という名前にしました

まず、現在の写真を掲載します。

表面には、SMAのコネクタやイーサのコネクタを取り付けました。

Ad360_top2

裏面も、足りなかった抵抗やコンデンサを取り付けました。

Ad360_bot2

 最初の電源ONのとき、スイッチング電源の1.2Vと3.3Vの電圧設定が逆になっていて、Spartan-3Aのコア電圧に3.3Vをかけてしまいました。電源電流もたくさん流れました、が大丈夫でした。結構丈夫なものですね・・

 ±2.5VをつくるLDOの選定を間違えていて、±2.5V出力のところに±3Vくらい出ていたりしました。

 100Ωの半固定抵抗を発注すべきところを100kΩの半固定抵抗を50個発注してしまっていて、しかも1個600円くらいするので、結構ショック。

 サイド取付型のSMAコネクタの寸法を間違えて、部品やネジ穴と干渉してしまった。

 イーサネットPHYの水晶が発振しない(たぶん裏面のGNDパッドがちゃんとついていない)

 Spartan-3AがなぜかSPI ROMを認識しない。

 RX63Nにつないだ時計用水晶が発振しない。

 MEMS発振器の取り付け方向が逆で、逆電圧をかけてしまった・・・

 SDRAMの容量が異なっていたため、認識されるエリアが狭い

とりあえず、今日のところ出た問題はこのくらいです。①②⑧⑨は解決しました。

    

ではかいつまんで説明していきましょう。

まず、今回はRX63Nマイコンを使っているので、RXduinoというライブラリを使いました。RXduinoライブラリを使うとRXマイコンのプログラムを簡単に作れます。今回は、RXduinoの持つ、USB-UART、SPI、SDカード、SDRAM、RTCといった機能を使おうと思います。

まずはUSBで通信しないとはじまりません。RXduinoに、このAD360ボードのボード定義を追加して、サンプルプログラムのnahimon(なひたふモニタ)をコンパイルして書き込みます。

USBでつないでTeraTermで仮想COMポートとしてオープンできるようになりました。

Ad360_test1_2

こんな画面が出て、メモリのダンプができます。SDRAMは0x08000000番地から見えるようです。

Ad360_test2

SDRAMのテスト用に乱数を読み書きするプログラムを作りました。XorShiftとうアルゴリズムで作った疑似乱数をSDRAMに書いて、読んで、比較するという単純なものです。16MByteを検査するのに約3秒でした。rand()関数よりずっと速いです。

Ad360_test5

実は、SDRAMを使えるようにするには、結構苦労しました。RX63Nのピンはいろいろな機能で複雑にマトリクスされているのですが、SDRAMとして使うには

 MPC.PFCSE.BYTE      = 0x01;   // CS0を許可
MPC.PFCSS0.BYTE     = 0x01;   // P60をCS0に
MPC.PFAOE0.BYTE     = 0x3f;   // A8~A13出力
MPC.PFBCR0.BYTE     = 0x11;   // PA0~PA7をアドレスバス、PE0~PE7をI/Oポート
MPC.PFBCR1.BYTE     = 0xd4;   // P54をALE端子 SDRAM端子許可 DQM1許可 SDCLK許可

という設定が必要でした。RX62Nと比べて変わっています。

また、非常に許しがたい仕様なのですが、RXマイコンはSDRAMのBAが、ADDRの上の方のビットとして出てきます。

  • 例えば、A13までを通常のアドレスピンとして使ったら、BA0はA14、BA1はA15から出てきます。
  • A12までを通常のアドレスピンとして使ったら、BA0はA13、BA1はA14から出てきます。

SDRAMのアドレスピンにあるNCのところにダミーのアドレス線をつないでおくことができないのです。わかりやすく言えば、「将来の拡張に備えて大きい容量のSDRAMを乗せられるような基板設計にしておくことができない」のです。

Ad360_test4


上の図でいえば、A12の端子はCPUのA13につながっている(16bit接続だから)のですが、ここは今回使用したSDRAMではNCなのですが、RXマイコンのSDRAMコントローラはNCのピンをスキップして次のA14からBAに使うという融通がききません。

※まあ、それでもジャンパを飛ばして、なんとか全16MByteを認識できるようにしました

それから、FPGAのほうも順調に進んでいます。コアに3.3VをかけてしまったSpartan-3Aですが、ちゃんとバウンダリスキャンで端子が見えました。書き込みもできます。

Ad360_test3


しかし、コンフィグ用のSDRAMが見えないのが困っています。

|

« 18bit 20ch ADボードを手実装 | トップページ | 特電はET2014のETフェスタにも出店(?)します »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 18bit 20ch ADボードを手実装 | トップページ | 特電はET2014のETフェスタにも出店(?)します »