ENC28J60のSPIインターフェース仕様


【ENC28J60のSPIインターフェース】

 ENC28J60のSPIインターフェースは、標準のSPIインターフェースの
「モード0,0」で直接接続できるようになっています。
したがってPICの場合にもPICのSPI制御ピンと直接接続することができます。
とくに、PICを5V動作させたときでも、ENC28J60の入力ピンは5V対応に
なっていますので直結ができます。

SPIの基本的な接続ですので、CS、SCK、SI、SOの4本の線で接続します。
モード0,0ですので基本的なタイミングは下図のようになります。
つまりSIピンの入力はSCKの立上りエッジで行われ、SOピンへの出力は
SCKの立下りエッジで行われます。






【SPI制御コマンド構成】

SPIインターフェースを通して制御する場合のデータのフォーマットは
下表のようにします。1バイトまたは2バイト構成のコマンドとなっています。
ビットフィールドのセット、クリアコマンドはETHグループのレジスタのみ有効
でMACグループ、MIIグループ、PHYレジスタ、バッファメモリには使えません。

略号 コマンド機能 Byte0 Byte1
命令コード パラメータ データ
RCR 制御レジスタ読み出し 0 0 0 a a a a a N/A
RBM バッファメモリ読み出し 0 0 1 1 1 0 1 0 N/A
WCR 制御レジスタ書き込み 0 1 0 a a a a a d d d d d d d d
WBM バッファメモリ書き込み 0 1 1 1 1 0 1 0 d d d d d d d d
BFS ビットフィールドセット 1 0 0 a a a a a d d d d d d d d
BFC ビットフィールドクリア 1 0 1 a a a a a d d d d d d d d
SC システムコマンド、リセット 1 1 1 1 1 1 1 1 N/A

注) a:制御レジスタのアドレス   d:8ビットのデータ

【SPI読み出し】

SPIコマンドで制御レジスタやバッファを読み出すときには、3種類のタイミングがあります。

(1) ETHグループのレジスタ読み出しタイミング
  ETHグループレジスタの場合には、CSピンをLowにしてからRCRコマンドを
  出力すると、ENC28J60のSOピンに直ぐにデータが出力されるので、いきなり
  データ入力することができます。



(2) MACグループとMIIグループのレジスタの読み出しタイミング
  MACグループ、MIIグループレジスタの場合には、CSをLowにしてRCRコマンドを
  出力してからSOピンに出力されるまで時間がかかるため、ダミーで1回空読みを
  する必要があります。



(3) イーサネットバッファの読み出しタイミング
SPIコマンドでイーサネットバッファを読み出すときのタイミングは、上記(1)のETHの
タイミングと同じですが、AUTOINCビットを1に設定していると内部のアドレスポインタ
が自動的に+1されますから、連続でSPI読み込み用のSCKを出力すれば連続読み出し
ができます。



【SPI書き込み】

SPIインターフェースから制御レジスタやイーサネットバッファへの書き込み
のときのタイミングは下記のようになります。

(1) 制御レジスタへの書き込み
 制御レジスタへの書き込みは単純で、CSをLowにしてからWCRコマンドで
書き込めます。



(2) イーサネットバッファへの書き込み
 バッファへの書き込みもAUTOINCビットがセットされていれば、内部アドレス
ポインタが自動的に+1されますので、連続的に書き込みデータを送信して
書き込むことができます。



【リセット制御】

SPIコマンドでソフトウェアリセットを行う場合には、単純にSCコマンドを送信
するだけです。この場合にはパラメータもありません。CSピンをHighにしたとき
リセット解除となります。







        目次に戻る