2012/04/14

[arm]AHBバスってなんだろう

LPC2388というNXPのチップを使おうとしている。
ARM7ベースということだが、そもそもARMに詳しくない・・・。

ハードに詳しくないので、よくわからん用語を自分なりに解釈しよう。


AHBバス、という用語が出てきた。

ARM7自体は入出力をARM7固有のバスでやるらしいが、LPC2388はAHBバスに変換する、と雑誌に書かれている(めんどくさいので、自分では調べない…)。
さらに、AHBバスを2つ使っているらしい(デュアルAHB)。

 

では、AHBバスってのはなんだろう?
AMBA、という標準バス仕様らしいが、元はARM社らしい。
ここの記事がわかりやすかった。
http://www.atmarkit.co.jp/fsys/zunouhoudan/038zunou/arm_amba.html

説明のところにタイミングチャートが書いてあるものの、私にとってはあまり影響がない(と思う)。
だいたいバスってのはデバイスとやりとりするための通路みたいなもので、そこまでソフト的に意識しなくていいものだと思っている。
初期設定で気にしておけばいい、くらいがありがたい。


まずは、AHBバスにどういうデバイスが載っているか見ていこう。
ユーザーズマニュアルを見て、それっぽいところだけ抜き出した。

image

うーん。。。やっぱり図を見てもよくわからないな。

データシートのメモリマップにはAHB用のアドレスがあるのだが、詳細がわからない。
やはり、ユーザーズマニュアルを読まないとわからんようだ。


http://jp-origin.rd2011.nxp.com/products/microcontrollers/arm7/lpc2300/LPC2388FBD144.html

ここがLPC2388のページらしい。
jpって付いているが、だいたい英語だ。
ここからドキュメントをダウンロードできる。

 

2章にメモリアドレッシングがある。
見た感じだけだが、AHB上にあるデバイス用になっているだけで、AHB自体は何もしなくてもいいような気がする。

いや・・・AHBの設定をAHB周辺機器のメモリでやるわけはないか。
3章で見つけることができた。
AHBCFG1とAHBCFG2だ。


この2レジスタは構成がほぼ同じになっているようだ。

説明書きによると、デフォルトではラウンドロビンになっていて、以下の順で見て回るとのこと。

  • AHB1 : CPU, DMA, AHB1, USB
  • AHB2 : Ethernet, CPU

この順番を入れ替えることができる。
できるようだが、私が使う範囲では気にしなくてもよさそうだ。
どうりで、どのサンプルソースを見ても変更してないわけだ。

 

 

というような決定をいちいちしていかないといかん。
めんどうなので使い慣れたマイコンにしたいところだが、どれもあまり変わらん。
あきらめて調べ続けますかね。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。