|
|
||
slashdot.jpでの日記はこちらです。サイトはこちらです。(簡易投稿フォーム,転記処理
)
先日某所にあつまってインターフェース付録基盤で遊んできました。
68000の流れを汲むColdFireマイコン(MCF52233)の基盤です。
イーサネットのI/FもあるのでコネクタをつければLANにもつながります。いろいろ応用できそうですね。
3冊買っちゃいました。
● じゃあ早速組み立ててみよう
パルストランス入りのイーサネットのソケット(RJ45)や電源のACアダプタ、DCコネクタがが必要なのですが、間違った部品かってもつまらないので若松通商で売ってた全部いりセットを買ってきました(インターフェース 9月号付録 基板周辺実装部品一式)。ラジオ会館4階のお店で売ってます(アゾンの隣w)。3000円。
パルストランス内臓RJ45ソケットも790円で単品売りしているので次からはこれだけを買えばいいでしょう。
部品取り付けイメージ
取り付け完了
LANにつないだらちゃんとランプがついたよ!
HUB側では10Mbpsで認識(あとで設定ファイル変更したら100Mbpsで接続できました)。
リセットスイッチを取り付けた
PCからPingも通る
設定ツールは、SilentCで書かれているのね。
すごいすごい
成功。
(ブレッドボードにのせたら、幅がキツキツですね。とりあえず片側のピンしかつかわないのでずらして載せた)
(ブラウザからCGIとしてSilentCで書かれたプログラムを呼び出す仕組みになってました)
内蔵のSilentCは、昔のBASICみたいに行番号つきでプログラミングします。
TELNETでつないだらそのままプログラム開始。
インタプリタなので試しながら組めるのがいいですね。
さて、では手始めにLED ON/OFFでもしてみっか・・・
と思ったら、GPIOを操作する関数がありません。えー?
D/Aコンバーターを使ったアナログ入力や、シリアル入出力の関数群はあるのに基本ぽいGPIOがないなんて・・・プンスカ
うーん、ほかの機能とぶつかるからあえて実装しなかったのかあ。
これは、ドライバーとか書かないといけないのかな・・・と思いましたが、よくかんがえたらI/Oポートはメモリマップドだから当該番地のメモリを普通に読み書きすればいいのか。
とりあえずインターフェース誌にのってたメモリマップをみると、0x40000000番地からがI/Oポートのようです(32bitマイコンはアドレスが長いなー)。
この辺をダンプして見ました。
10 main() {
20 PrStr("START\n");
50 char *a;
60 int i;
70 a = 0x40000000;
80 for ( i=0; i<1024; i++ ) {
90 PrHex( a );
100 PrChar( ':' );
110 PrHex( *a );
120 PrStr("\r\n");
130 a++;
140 }
150 }
save Main
して
run
40000000:00000040 40000001:00000000 40000002:00000000 40000003:00000001 40000004:00000000 40000005:00000000 40000006:00000000 40000007:00000000 40000008:00000020 40000009:00000000 4000000a:00000002 4000000b:00000000 4000000c:00000000 4000000d:00000000 4000000e:00000024 4000000f:00000000 40000010:ffffff80 40000011:00000001 40000012:00000000 40000013:00000000 40000014:00000000 40000015:00000000 40000016:00000000 40000017:00000000 40000018:00000000 40000019:00000040 4000001a:00000000 4000001b:0000000c 4000001c:00000030 4000001d:ffffffe1 4000001e:00000000 4000001f:00000000 40000020:00000003
お、なんかそれっぽいデータが表示されたぞ。
でも途中でハングアップ。なんか、アクセスしてはいけないとこを読んでしまったようです(4000007e)。
まあでも、SilentCでもポインタは普通に使えることがわかって一安心。
じゃあ、ColdFireのリファレンスマニュアルを見てと・・・
「Chapter 14 General Purpose I/O Module」
なんかGPIOいっぱいある・・・
PORT DD,AS,QS,TA,TD,TC,UC,UB,UA,AN,NQ,LD,GP
とりあえず基盤の右側にでてるのは、TA(GPT[0]-[3])とかAN(PAN[0]-[7])だな。
じゃあ、早速操作してみよ・・・あれ?
なんでこんなに制御しないといけないレジスターがあるのー?
Port Output Data Registers
Port Data Direction Registers
Port Pin Data/Set Data Registers
Port Clear Output Data Registers
Port Pin Assignment Registers
Port Pad Control Registers
HCS08でいうところのPTAD,PTADD,PTAPE とかに相当するのってどれ? ←いまココ
● 参考URL
・データシート
http://www.freescale.com/files/32bit/doc/data_sheet/MCF52235DS.pdf
http://www.freescale.com/files/32bit/doc/ref_manual/MCF52235RM.pdf
・付録基盤の回路図
http://www.cqpub.co.jp/interface/download/2008/09/kairozu.pdf
近場の本屋、9月号のときは大量にあったのに、10月号は今日みたら2冊しかない・・・
当然、そんなみんなが手にとってみてるようなのは買いたくないので、おいらはまだ?買ってないなりー
POR(パワーオンリセット)時は、基本全部 GPIO の in になってるみたいだ。
だから、実験レベルなら、DDR(データディレクションレジスタ)を
いじるだけでOKな気がする。
だが、SilentC がそれらをどう使っているかは、完全には公開されていないから、
要解析という所だね。この辺は、のりたんさんが詳しく調べてくれている。
http://noritan-micon.blog.so-net.ne.jp/2008-08-22
のりたん神にもアドバイスいただいたし、今夜もなんかやってみるー。それにしてもポートが細かく分断されちゃってて不便だね。ぼくはてっきり8bitポートx3くらいはあるのかと思ってた。
八甲田山はドリフネタくらいにしとけ
せめて加速度センサーのSleepのピンを制御できるようになってたらよかったのに。
コンテストは付録基盤改造はありなのかな
でもマイコンの足自体は全部付録基板からもでてなかったっけ?
音楽が「芥川也寸志」と聞いて即買い!(基準そこかよ・・・)
http://www.7andy.jp/dvd/detail/?accd=D0038126
http://ja.wikipedia.org/wiki/%E8%8A%A5%E5%B7%9D%E4%B9%9F%E5%AF%B8%E5%BF%97
http://www.cqpub.co.jp/interface/download/2008/09/kairozu.pdf
【電源以外で外に出て行かない信号のリスト】
EXTAL-XTAL これは、外に出すと発振しなくなるのでしかたがない。
PHY_RBIAS これも、電源みたいなものか。
TEST 基板内でGNDに接続されている。
以上。
というわけで、差分の16本のうち12本分は、すべて電源端子でした。
# 端子一覧表を作りたくなってきたぞ。
そういやSS-1をブレッドボードにさす変換基盤つくりましたが、ICGがうまく動かなくなっちゃって悩みました。結局EXTAL-XTALの線を取り除いたら動くようになりました。あんま無茶しちゃいけませんね・・・
待ってます♪〜
http://spreadsheets.google.com/ccc?key=pQhAXZoz3u6-eBUVT-LzYEw
緑背景のGPIOが未使用ぽいもの。32本もあった(こまぎれだけど)
後ほどメールお送りします。