MCF52233 - LED端子をGPIOとして使いたい [ColdFire V2]
MCF52233には、EPHYが搭載されていて、通信の様子を外部に知らせるために最大7個のLEDを装備できます。 EPHYCTL0というレジスタにLEDENというビットがあって、Disable/Enableできるらしいのだけど、二つだけ使いたい場合には、どうしたらいいんだろう。
この記事は、ここでの問題提起に基づいています。
Service Requestにお願い
マニュアルを読んでもわからないし、手軽に確認できるハードウェアもないので、freescale.comのService Requestに質問しました。
MC52233のEPHYインターフェイスを使って、ACTLEDとLNKLEDの二つのLEDを付けようと思っています。 その結果、COLLED, DUPLED, そして SPDLED の三つの端子は使われません。 そこで、これら三つの端子をGPIOとして使おうと思います。
LED出力機能を有効・無効にするらしい EPHYCTL0 レジスタの設定ビット LEDEN を見つけました。 でも、この設定ビットは私の使用目的には合わないように思います。
- これらのLED出力機能を個別に有効にするような設定ビットが他にあるのでしょうか。
- もし、そういった個別設定ビットがあるとしたら、 LEDEN ビットはそれよりも優先順位が高いのでしょうか。
Service Requestからの返答
22時間後、返答がありました。
Yes (何に対する Yes なのかは不明。)、まず第一に、LED が光るようにしたいのであれば、もちろん、 EPHYCTL0[LEDEN] ビットはセットしなくてはなりません。
さらに、Ethernet コントローラの PHY 信号 (ACTLED, COLLED, DUPLED, LNKLED, SPDLED, RXLED そして TXLED) は、ポート LD 端子で GPIO 機能と多重化されています。 詳しい情報は、 MCF52235RM リファレンス・マニュアルを見てください。
PLDPAR (ポート LD 端子割り当てレジスタ)を設定して、端子を第一機能(primary function : この場合 LED 出力機能)か GPIO 機能に割り当てる必要があります。 リセット後のデフォルトでは、 PLDPAR で第一機能が設定されなければ、 GPIO 機能が有効になるでしょう。
もうひとつ、注意すべき点があります。 最初のシリコン(rev 0 silicon)では、 ACT/RX/TX の各 LED 出力機能に問題があります。 シリコンのバージョンを CIR[PRN] レジスタで確認してください。 それ以降のバージョンでは問題はありません。
というわけで、 LEDEN ビットをセットしないと LED 出力機能は働かないし、 PLDPAR レジスタで個別に GPIO 機能と第一機能を切り替えないと LED は光らないということらしいです。 あとは、試してみるしかないか。
日本語訳に疲れました。
これで、試してみよう
Interface (インターフェース) 2008年 09月号 [雑誌]
- 作者:
- 出版社/メーカー: CQ出版
- 発売日: 2008/07/25
- メディア: 雑誌
おお、今回は明確な解答ですね。PLDPARの方が優先度が高いと。
しかしもうじき実験できますね。楽しみです。
by hamayan (2008-07-19 17:21)
今回のもうひとつの収穫は、「EPHYCTL0レジスタのLEDENビット」が EPHYCTL0[LEDEN] と簡単に表現されるということがわかったことです。この表記方法は、8bit MCU 世界では見られませんでした。
よくよく、考えたら、 M52233DEMO ボードを死蔵しているので、実験しようと思えば出来るのでした。まあ、いいか。
by noritan (2008-07-19 17:32)
> よくよく、考えたら、 M52233DEMO ボードを死蔵しているので
あらー!
by hamayan (2008-07-19 18:22)