Etherドライバの作り方

締切り済みの質問

Etherドライバの作り方

Etherコントローラを初めて開発するのですが、どこからどう初めてよいのかよくわかりません。

CPU側とPHY側のドキュメントを読んでみましたがあまりイメージできませんでした。

例えばPHYをリセットさせるのにHIの信号を100ns以上与える。
HIはビットを立てればいいと思うのですが100nsとかどうやって判断?とわからないのです。

何かいいサンプルとかあれば教えてほしいです。
CPUはSHを使っています。

投稿日時 - 2008-06-10 23:24:00

連想キーワード:

QNo.4090982

すぐに回答ほしいです

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(2件中 1~2件目)

ANo.2

SH2/3/4どれですか?
OSは使いますか?
開発環境は?
質問者さんは学生んさですか?

とりあえずOSなしの場合で書くと、

> 100nsとかどうやって判断?とわからないのです。

真っ正直にやるなら、SHの内蔵周辺回路にあるタイマを使うとか。しかし、リセット信号ならそれほど厳密な時間でなくてもいいでしょうから無駄時間ループでもよいでしょう。(コンパイラの最適化で削除されないよう工夫が必要です)

> 何かいいサンプルとかあれば教えてほしいです。

Etherコントローラを内蔵したSHを使っているのであれば、ルネサスが提供しているアプリケーションノートを見るのが一番確実だと思います。
アプリケーションノートはこちら。
http://japan.renesas.com/fmwk.jsp?fp=/products/mpumcu/superh_family/&cnt=Application_Notes.jsp&title=%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%8E%E3%83%BC%E3%83%88&lid=2

イーサネット関連は6件載っていますね。

投稿日時 - 2008-06-11 23:55:20

ANo.1

OSは? それともOSなし?
時間待ちはOSにドライバサポート機能があるならそれを使う。
なければビジーウェイトだな。あらかじめループ命令の実行クロック数を調べて100ns分のループ数を計算しておき、その回数だけループする。CPUクロックを変えてもそのまま動くようにしようと思ったら起動時にクロックを読み取ってループ数を調整する必要もあるので結構面倒だと思うけど。

HIは対応アドレスにビット書き込みで良いと思うけど、HIが1か0かは確認しておくこと。

サンプルは、LinuxかBSDのソースを見て良ければSHボード用のEtherドライバもあると思うけど。

投稿日時 - 2008-06-10 23:58:34

あわせてチェックしたい
  • PS2、コントローラーでリセット ...
  • USBコントローラ信号の分岐 ...
  • Ethernetコントローラについて ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら