82
00000-A ルネサス エレクトロニクス株式会社 ルネサス半導体トレーニングセンター Rev. 1.00 2013/08/02 © 2013 Renesas Electronics Corporation. All rights reserved. RX63N 周辺機能紹介 ETHERC/EDMAC イーサネットコントローラ/イーサネットコントローラ用DMAコントローラ

RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

  • Upload
    lethuan

  • View
    216

  • Download
    2

Embed Size (px)

Citation preview

Page 1: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

00000-A

ルネサス エレクトロニクス株式会社

ルネサス半導体トレーニングセンター Rev. 1.00 2013/08/02

© 2013 Renesas Electronics Corporation. All rights reserved.

RX63N 周辺機能紹介 ETHERC/EDMAC イーサネットコントローラ/イーサネットコントローラ用DMAコントローラ

Page 2: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

コンテンツ

ETHERC/EDMACの概要

プログラムサンプル プログラム仕様

プログラム・フローチャート

PHY-LSIの初期設定

– PHY-LSIレジスタへのアクセス方法

– PHY-LSIのリセット

– 自動交渉結果の取得

EDMAC/ETHERCの初期設定

– ETHERCのレジスタ設定

– EDMACのレジスタ設定

– ディスクリプタ領域の初期化

フレーム送信

フレーム受信

– 受信割り込み(フレーム受信、受信ディスクリプタ枯渇)の許可

PHY-LSI変更時の注意点

2

Page 3: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 3

ETHERC/EDMACの概要

3

Page 4: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 4

ETHERC/EDMACの仕様

イーサネットコントローラ

イーサネット用DMAコントローラ

4

Page 5: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ETHERC/EDMACの動作概要

5

RAM EDMAC ETHERC

外付け PHY-LSI

MAC

送信ディスクリプタ

受信ディスクリプタ

送信バッファ

受信バッファ

内部 インタ フェース

ディスクリプタ 情報

ディスクリプタ 情報

送信DMAC

受信DMAC

送信FIFO

受信FIFO

EDMAC インタ フェース

ポート

送信制 御部

受信 制御部

コマンド ステータス

インタフェース MII

RMII

5

Page 6: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 6

プログラムサンプル

6

Page 7: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 7

プログラム仕様

■ETHのプログラム例

イーサネットフレームを10フレーム送受信する。

仕様 ・PHY-LSIインタフェース MIIを使用 ・動作モード 自動交渉により決定 ・ディスクリプタ面数 送信:4面、受信:4面 ・1フレーム/1バッファ バッファ容量=1536バイト ・ディスクリプタ長 16バイト ・エンディアン リトルエンディアン ・割り込み フレーム受信割り込み

7

Page 8: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 8

プログラム・フローチャート

初期化 送信 受信

モジュールストップ解除

init_ETHERC ETHERCの 初期化

init_EDMAC EDMACの初期化

init_PHYLSI PHY-LSIの初期化

main

割り込みコントローラの設定

A

送信および受信の許可

snd_frame イーサネットフレームの送信

10フレーム送信完了?

A

Yes

No

フレーム受信割り込み?

ステータスの確認

10フレーム目?

フレーム受信割り込みを禁止

0が読み出せるまで待つ

ステータスのクリア

割り込み要求なし?

ETHER割り込み

END

Yes

Yes

No

No

Yes

No

rcv_frame イーサネットフレームの受信

8

Page 9: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

モジュールストップコントロールレジスタB(MSTPCRB)

ETHERCおよびEDMAC使用可 C言語マクロ表記:MSTP(EDMAC) = 0;

9

Page 10: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 10

初期化フロー -PHY-LSIの初期化-

_phy_reset PHY-LSIのリセット

init_PHYLSI

_phy_get_autonego 自動交渉結果の取得

return

PHY-LSI内蔵の MIIレジスタ経由で制御

自動交渉(オートネゴシエーション):

接続相手によって動作モード(10Mbps/100Mbps, 全二重/半二重)を自動で切り替える機能。リンク接続ごとにPHY-LSIが自動で実行する。

※詳細は、使用するPHY-LSIのデータシートを確認してください。

IEEE802.3規格準拠

モジュールストップ解除

init_ETHERC ETHERCの 初期化

init_EDMAC EDMACの初期化

init_PHYLSI PHY-LSIの初期化

main

割り込みコントローラの設定

A

送信および受信の許可

端子の設定

10

Page 11: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 11

PHY-LSI との接続

IEEE802.3u準拠のMII信号

管理情報 クロック

データ

データ受信

クロック

4ビットデータ

CSMA/CD キャリア検出 衝突検出

データ受信 有効データ

エラー状態

RX63N

11

データ送信

エラー通知

クロック

許可

4ビットデータ

Page 12: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

P7n 端子機能制御レジスタ(P7nPFS)(n=0 ~ 7)

12

Page 13: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

P8n、PAn、PBn、PCn、PEn 端子機能制御レジスタ

13

Page 14: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

P8n、PAn、PBn、PCn、PEn 端子機能制御レジスタ

14

Page 15: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

P8n、PAn、PBn、PCn、PEn 端子機能制御レジスタ

15

Page 16: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

P8n、PAn、PBn、PCn、PEn 端子機能制御レジスタ

16

Page 17: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

P8n、PAn、PBn、PCn、PEn 端子機能制御レジスタ

17

Page 18: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ポートモードレジスタ(PMR)

18

Page 19: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

イーサネット制御レジスタ(PFENET)

19

Page 20: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

書き込みプロテクトレジスタ(PWPR)

20

Page 21: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 21

リセットと自動交渉の方法

※詳細は、使用するPHY-LSIのデータシートを確認してください。

リセット

自動交渉結果

MIIレジスタ

データ

クロック

RX63N

21

Page 22: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 22

MIIレジスタ

※詳細は、使用するPHY-LSIのデータシートを確認してください。

アドレス MIIレジスタ名

制御

機能

リセットや自動交渉の許可/禁止など 0

状態 自動交渉の完了通知の確認など 1

物理層識別子 PHYの組織識別子情報の確認など 2, 3

自動交渉告知 自動交渉で相手に通知した値 4

自動交渉リンク先能力 自動交渉で相手から通知された値 5

自動交渉拡張 - 6

自動交渉次ページ送信 - 7

PHY-LSI

22

Page 23: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

MIIレジスタのリード/ライト手順

(例)リセット

(例)自動交渉結果

23

■MII管理フレーム

Hi-Z Hi-Z Hi-Z

<リード>

<ライト>

Hi-Z Hi-Z

32ビットの連続した”1” フレームの先頭を示す”01” アクセス種別(リード=“10”、ライト=“01”) PHY-LSIアドレス(5ビット) MIIレジスタ番号(5ビット) データの送信元を切り替える時間 レジスタアクセスデータ(16ビット) 待機時間

23

Page 24: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 24

シリアル通信の実現方法

24

Page 25: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 25

PHY部インタフェースレジスタ(PIR)

クロック

方向

書き込み

読み出し

25

Page 26: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 26

MIIレジスタのリード/ライト手順の実現

1 ビット単位のデータ書き込み

バスの解放

1 ビット単位のデータ読み出し

単独バス解放

26

Page 27: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 27

プログラムイメージ

void _phy_preamble(void) { int i; for( i = 0; i < 32; i++ ) { // 1ビット単位で1を書き込み _phy_mii_write_1(); } }

static void _phy_mii_write_1(void) { volatile i; ETHERC.PIR.LONG = 0x00000006; for( i=0; i<XXX; i++ ); ETHERC.PIR.LONG = 0x00000007; for( i=0; i<YYY; i++ ); ETHERC.PIR.LONG = 0x00000007; for( i=0; i<ZZZ; i++ ); } ※PHY-LSIのデータシートを確認してください。

27

Page 28: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 28

ETHERCの初期化フロー

init_ETHERC

return

ETHERC/EDMAC ソフトウェアリセット

リンクモードの設定

MACアドレスの設定

ETHERCステータスのクリア

モジュールストップ解除

init_ETHERC ETHERCの 初期化

init_EDMAC EDMACの初期化

init_PHYLSI PHY-LSIの初期化

main

割り込みコントローラの設定

A

送信および受信の許可

個別のアドレスを IEEEから取得してください

28

Page 29: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 29

EDMACモードレジスタ(EDMR) -ソフトウェアリセット-

内部バスクロックの64サイクル必要

29

Page 30: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 30

ETHERCモードレジスタ(ECMR) -リンクモードの設定-

30

Page 31: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 31

MACアドレスの設定

MAC アドレス下位設定レジスタ(MALR)

MAC アドレス上位設定レジスタ(MAHR)

31

Page 32: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 32

ETHERCステータスレジスタ(ECSR) -ステータスクリア-

各ビット、1を書き込むとクリアされる

32

Page 33: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ETHERCの初期化関数

// サンプルのMACアドレス const static uint8_t mac_addr[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}; void init_ETHERC( uint16_t autoNego ) // 引数は自動交渉の結果 { volatile int i; /* ETHERCとEDMACのリセット */ EDMAC.EDMR.BIT.SWR = 1; // 64/4[clock/loop] ETHERCとEDMACはICLKで動作 for( i = 0 ; i < 16 ; i++ ); /* リンクモードの設定 */ if( autoNego & 0x0140 ){ ETHERC.ECMR.BIT.DM = 1; // 全二重 } else{ ETHERC.ECMR.BIT.DM = 0; // 半二重 } /* MACアドレスの設定(上位32、下位16) */ ETHERC.MAHR = (mac_addr[0]<<24) | (mac_addr[1]<<16) | (mac_addr[2]<<8) | mac_addr[3]; ETHERC.MALR.BIT.MA = (mac_addr[4]<<8) | mac_addr[5]; /* ステータスのクリア */ ETHERC.ECSR.LONG = 0x00000037; }

init_ETHERC

return

ETHERC/EDMAC ソフトウェアリセット

リンクモードの設定

MACアドレスの設定

ETHERCステータスのクリア

33

Page 34: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 34

EDMACの初期化フロー

init_EDMAC

return

送信および受信 ディスクリプタの設定

ディスクリプタの登録

エンディアンの設定

FIFO容量の設定

受信方式の設定

ETHERC/EDMAC ステータスのクリア

割り込みの許可

モジュールストップ解除

init_ETHERC ETHERCの 初期化

init_EDMAC EDMACの初期化

init_PHYLSI PHY-LSIの初期化

main

割り込みコントローラの設定

A

送信および受信の許可

34

Page 35: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 35

ディスクリプタ設定の事前準備 -RAM領域に配置-

送信ディスクリプタ1面 =16バイト

送信ディスクリプタ2面 =16バイト

送信ディスクリプタ3面 =16バイト

送信ディスクリプタ4面 =16バイト

受信ディスクリプタ1面 =16バイト

受信ディスクリプタ2面 =16バイト

受信ディスクリプタ3面 =16バイト

受信ディスクリプタ4面 =16バイト

RAM領域

16バイト境界

16バイト境界

ユーザ領域(4バイト)

ユーザ領域(4バイト)

35

Page 36: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ユーザ領域

36

送信ディスクリプタ -送信ディスクリプタ無効の設定-

0

36

Page 37: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ユーザ領域

37

送信ディスクリプタ -送信フレーム内位置の設定-

11

ユーザ領域

37

Page 38: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ユーザ領域

38

送信ディスクリプタ -送信バッファアドレスの設定-

送信バッファの先頭アドレス

32バイト境界

※TBL(送信データ)が16バイト以下の場合、送信バッファは32バイト境界に配置

38

RAM領域

Page 39: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 39

送信ディスクリプタ -送信ディスクリプタ最終の設定-

送信ディスクリプタ1面 =16バイト

送信ディスクリプタ2面 =16バイト

送信ディスクリプタ3面 =16バイト

送信ディスクリプタ4面 =16バイト

RAM領域

16バイト境界 0

1

ユーザ領域

ユーザ領域

39

Page 40: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ユーザ領域

40

受信ディスクリプタ -受信ディスクリプタ有効の設定-

40

Page 41: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ユーザ領域

41

受信ディスクリプタ -受信フレーム内位置の設定-

11

41

Page 42: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ユーザ領域

42

受信ディスクリプタ -受信バッファの設定-

バッファ長

先頭アドレス

32×nバイト

32バイト境界

42

Page 43: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 43

受信ディスクリプタ -受信ディスクリプタ最終の設定-

受信ディスクリプタ1面 =16バイト

受信ディスクリプタ2面 =16バイト

受信ディスクリプタ3面 =16バイト

受信ディスクリプタ4面 =16バイト

RAM領域

16バイト境界 0

1

ユーザ領域

ユーザ領域

43

Page 44: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ユーザ領域

44

ディスクリプタ用の構造体記述例

ビットオーダー:ライト or レフト バイトオーダー:リトル or ビッグ

44

Page 45: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ディスクリプタとバッファのRAM領域への配置

送信ディスクリプタ1面

送信ディスクリプタ2面

送信ディスクリプタ3面

送信ディスクリプタ4面

受信ディスクリプタ1面

受信ディスクリプタ2面

受信ディスクリプタ3面

受信ディスクリプタ4面

送信用ポインタ

受信用ポインタ

送信バッファ 4×1532

受信バッファ 4×1532

リンケージエディタのオプションで RAM上の32の倍数のアドレスを設定する。

ETHERセクション 32バイト境界

45

Page 46: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

ディスクリプタの設定記述例

バッファ1のアドレス

ディスクリプタ2面のアドレス

0 1 1 0

バッファ2のアドレス

ディスクリプタ3面のアドレス

0 1 1 0

バッファ3のアドレス

ディスクリプタ4面のアドレス

0 1 1 0

バッファ4のアドレス

ディスクリプタ1面のアドレス

0 1 1 1

バッファ1

バッファ2

バッファ3

バッファ4

送信ディスクリプタとバッファ

46

Page 47: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 47

ディスクリプタの登録 -先頭アドレス-

送信ディスクリプタリスト先頭アドレスレジスタ(TDLAR)

送信ディスクリプタ1面 =16バイト

送信ディスクリプタ2面 =16バイト

送信ディスクリプタ3面 =16バイト

送信ディスクリプタ4面 =16バイト

受信ディスクリプタ1面 =16バイト

受信ディスクリプタ1面 =16バイト

受信ディスクリプタ1面 =16バイト

受信ディスクリプタ1面 =16バイト

RAM領域

受信ディスクリプタリスト先頭アドレスレジスタ(RDLAR)

47

Page 48: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 48

ディスクリプタの登録 -ディスクリプタ長-

EDMACモードレジスタ(EDMR)

送信ディスクリプタ1面 =16バイト

送信ディスクリプタ2面 =16バイト

送信ディスクリプタ3面 =16バイト

送信ディスクリプタ4面 =16バイト

受信ディスクリプタ1面 =16バイト

受信ディスクリプタ2面 =16バイト

受信ディスクリプタ3面 =16バイト

受信ディスクリプタ4面 =16バイト

RAM領域

48

Page 49: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 49

EDMACモードレジスタ(EDMR) -エンディアンの設定-

49

Page 50: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 50

FIFO容量指定レジスタ(FDR) -FIFO容量の設定-

50

Page 51: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 51

受信方式制御レジスタ(RMCR) -受信方式の設定-

51

連続受信を有効

Page 52: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 52

ETHERC/EDMAC ステータスレジスタ(EESR) -ステータスフラグのクリア-

各ビット、1を書き込むとクリアされる

52

Page 53: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 53

ETHERC/EDMAC ステータス割り込み許可レジスタ(EESIPR) -フレーム受信割り込み-

53

Page 54: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

EDMACの初期化関数

void init_EDMAC(void) { /* ディスクリプタリストの設定 */ _setDesc(); /* ディスクリプタリストの登録 */ // 送信ディスクリプタの先頭アドレス EDMAC.TDLAR = (void *)desc.snd; // 受信ディスクリプタの先頭アドレス EDMAC.RDLAR = (void *)desc.rcv; // ディスクリプタリスト長=16バイト EDMAC.EDMR.BIT.DL = 0; /* エンディアンの設定(リトルエンディアン) */ EDMAC.EDMR.BIT.DE = 1; /* FIFO容量(送受信ともに2048バイト) */ EDMAC.FDR.LONG = 0x00000707; /* 受信方式の設定(連続受信を有効) */ EDMAC.RMCR.BIT.RNR = 1; /* ステータスのクリア */ EDMAC.EESR.LONG = 0x47FF0F9F; /* フレーム受信割り込み要求許可 */ EDMAC.EESIPR.BIT.FRIP = 1; }

init_EDMAC

return

送信および受信 ディスクリプタの設定

ディスクリプタの登録

エンディアンの設定

FIFO容量の設定

受信方式の設定

ETHERC/EDMAC ステータスのクリア

割り込みの許可

54

Page 55: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 55

割り込みコントローラの設定フロー

モジュールストップ解除

init_ETHERC ETHERCの 初期化

init_EDMAC EDMACの初期化

init_PHYLSI PHY-LSIの初期化

main

割り込みコントローラの設定

A

送信および受信の許可

フレーム受信割り込み

割り込みコントローラ

ETHERのIER(許可)

ETHERのIPR(優先レベル)

CPU

ETHERの割り込み要求を許可

割り込み優先レベルを設定

その他要因

55

Page 56: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 56

割り込み要求許可レジスタm(IERm)(m = 02h ~ 1Fh)

ETHER割り込み要求の設定:IER04 C言語マクロ表記:IEN(ETHER,EINT) = 1;

56

Page 57: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 57

割り込み要因プライオリティレジスタm(IPRm)(m= 00h~8Fh)

ETHER割り込み:IPR08 C言語マクロ表記:IPRETHER,EINT)=1;

57

Page 58: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 58

送信および受信の許可

受信EDMACの起動

ETHERCの送信機能と 受信機能を許可

モジュールストップ解除

init_ETHERC ETHERCの 初期化

init_EDMAC EDMACの初期化

init_PHYLSI PHY-LSIの初期化

main

割り込みコントローラの設定

A

送信および受信の許可

送信EDMACは送信時に起動

58

Page 59: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 59

EDMAC受信要求レジスタ(EDRRR) -受信EDMACの起動-

59

Page 60: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 60

ETHERCモードレジスタ(ECMR) -送受信の許可-

60

Page 61: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

初期化プログラム

void main(void) { uint16_t autoNego; /* モジュールストップの解除 */ MSTP(EDMAC) = 0; /* PHY-LSIの初期化 */ autoNego = init_PHYLSI(); /* ETEHRCの初期化 */ init_ETHERC( autoNego ); /* EDMACの初期化 */ init_EDMAC(); /* 割り込みコントローラの設定 */ // EINT割り込み要求許可 IEN(ETHER,EINT) = 1; // EINT割り込み優先レベル1 IPR(ETHER,EINT) = 1; /* 送受信許可 */ // 受信EDMACの起動 EDMAC.EDRRR.BIT.RR = 1; // ETHERC送信許可 ETHERC.ECMR.BIT.TE = 1; // ETHERC受信許可 ETHERC.ECMR.BIT.RE = 1;

モジュールストップ解除

init_EDMAC EDMACの初期化

main

割り込みコントローラの設定

A

送信および受信の許可

61

init_ETHERC ETHERCの初期化

init_PHYLSI PHY-LSIの初期化

Page 62: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 62

送信処理

初期化 送信 受信

モジュールストップ解除

init_ETHERC ETHERCの 初期化

init_EDMAC EDMACの初期化

init_PHYLSI PHY-LSIの初期化

main

割り込みコントローラの設定

A

送信および受信の許可

snd_frame イーサネットフレームの送信

10フレーム送信完了?

A

Yes

No

フレーム受信割り込み?

ステータスの確認

10フレーム目?

フレーム受信割り込みを禁止

0が読み出せるまで待つ

ステータスのクリア

割り込み要求なし?

ETHER割り込み

END

Yes

Yes

No

No

Yes

No

rcv_frame イーサネットフレームの受信

62

Page 63: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 63

送信関数の仕様

宣言

説明

引数

戻り値

int snd_frame(void *data, int size);

引数に指定されたフレームを、送信バッファにコピーして、次に書き込むディスクリプタの位置(面)を更新します。また、送信ディスクリプタが停止していれば再起動します。

void *data

バッファに書き込んだバイト数 (書き込み先が有効でない場合は0を返します)

注意事項 本関数は、送信バッファに書き込み後、送信完了を待たずに呼び出し元に戻ります。

送信フレームの先頭アドレス

int size 送信フレームのバイト数

概要 1フレーム送信

63

Page 64: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 64

送信関数のフロー(1)

送信バッファ

ディスクリプタを示すポインタ

送信ディスクリプタを示す ポインタの取得

snd_frame

送信中?

送信バッファにデータをコピー

送信ディスクリプタを 有効に設定

送信EDMACを起動

EDMAC 停止中?

return

No

Yes

Yes

No

送信ディスクリプタを示す ポインタの更新

データ長を設定

64

Page 65: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 65

送信関数のフロー(2)

送信バッファ

送信ディスクリプタを示す ポインタの取得

snd_frame

送信中?

送信バッファにデータをコピー

送信ディスクリプタを 有効に設定

送信EDMACを起動

EDMAC 停止中?

return

No

Yes

Yes

No

送信ディスクリプタを示す ポインタの更新

データ長を設定

ディスクリプタを示すポインタ

65

Page 66: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

送信ディスクリプタを示す ポインタの取得

snd_frame

送信中?

送信バッファにデータをコピー

送信ディスクリプタを 有効に設定

送信EDMACを起動

EDMAC 停止中?

return

No

Yes

Yes

No

送信ディスクリプタを示す ポインタの更新

データ長を設定

66

送信関数のフロー(3)

送信バッファ

1フレーム

1フレーム

サイズ

0 ディスクリプタを示すポインタ

66

Page 67: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 67

送信関数のフロー(4)

送信バッファ

1フレーム

送信ディスクリプタを示す ポインタの取得

snd_frame

送信中?

送信バッファにデータをコピー

送信ディスクリプタを 有効に設定

送信EDMACを起動

EDMAC 停止中?

return

No

Yes

Yes

No

送信ディスクリプタを示す ポインタの更新

データ長を設定

ディスクリプタを示すポインタ

1

67

Page 68: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 68

EDMAC 送信要求レジスタ(EDTRR)

68

Page 69: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 69

送信関数のフロー(5)

送信ディスクリプタを示す ポインタの取得

snd_frame

送信中?

送信バッファにデータをコピー

送信ディスクリプタを 有効に設定

送信EDMACを起動

EDMAC 停止中?

return

No

Yes

Yes

No

送信ディスクリプタを示す ポインタの更新

データ長を設定

送信バッファ

1フレーム

ディスクリプタを示すポインタ

69

Page 70: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

1フレーム送信関数

int snd_frame(void *data, int size) { int i; int dataLen = 0; volatile SND_DESC *snd_top; uint8_t *frame = data; //送信ディスクリプタを示すポインタの取得 snd_top = getSndTop(); if( snd_top->td0.BIT.TACT == 0 ){ dataLen = size; for( i=0; i<dataLen; i++){ *(snd_top->td2.TBA+i) = *(frame+i); } snd_top->td1.TBL = dataLen; snd_top->td0.BIT.TACT = 1; if( EDMAC.EDTRR.BIT.TR == 0 ){ EDMAC.EDTRR.BIT.TR = 1; } //送信ディスクリプタを示すポインタの更新 upDateSndTop(); } return dataLen; }

70

Page 71: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 71

受信

初期化 送信 受信

モジュールストップ解除

init_ETHERC ETHERCの 初期化

init_EDMAC EDMACの初期化

init_PHYLSI PHY-LSIの初期化

main

割り込みコントローラの設定

A

送信および受信の許可

snd_frame イーサネットフレームの送信

10フレーム送信完了?

A

Yes

No

フレーム受信割り込み?

ステータスの確認

10フレーム目?

フレーム受信割り込みを禁止

0が読み出せるまで待つ

ステータスのクリア

割り込み要求なし?

ETHER割り込み

END

Yes

Yes

No

No

Yes

No

rcv_frame イーサネットフレームの受信

71

Page 72: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 72

受信関数の仕様

宣言

説明

引数

戻り値

int rcv_frame(void *buff);

引数で指定されたバッファに、受信データをコピーして、次に読み出すディスクリプタの位置(面)を更新します。また、受信ディスクリプタが停止していれば再起動します。

void *buff

バッファにコピーしたバイト数 (エラー受信または受信データがない場合は0を返します)

注意事項 なし

コピー先バッファの先頭アドレス

概要 1フレーム受信

72

Page 73: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 73

受信関数のフロー(1)

受信バッファ

受信ディスクリプタを示す ポインタの取得

rcv_frame

受信待ち?

受信バッファの読み出し

受信ディスクリプタを 有効に設定

受信EDMACを起動

EDMAC 停止中?

return

No

Yes

Yes

No

正常受信?

受信ディスクリプタを示す ポインタの更新

Yes

No

ディスクリプタを示すポインタ

73

Page 74: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 74

受信関数のフロー(2)

受信バッファ

0 正常受信? 0 受信ディスクリプタを示す

ポインタの取得

rcv_frame

受信待ち?

受信バッファの読み出し

受信ディスクリプタを 有効に設定

受信EDMACを起動

return

No

Yes

Yes

No

正常受信?

受信ディスクリプタを示す ポインタの更新

Yes

No

EDMAC 停止中?

1フレーム

1フレーム

受信データ長

ディスクリプタを示すポインタ

サイズ

74

Page 75: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 75

受信関数のフロー(3)

受信バッファ

1 受信ディスクリプタを示す

ポインタの取得

rcv_frame

受信待ち?

受信バッファの読み出し

受信ディスクリプタを 有効に設定

受信EDMACを起動

return

No

Yes

Yes

No

正常受信?

受信ディスクリプタを示す ポインタの更新

Yes

No

EDMAC 停止中?

ディスクリプタを示すポインタ

75

Page 76: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 76

受信関数のフロー(4)

受信バッファ

受信ディスクリプタを示す ポインタの取得

rcv_frame

受信待ち?

受信バッファの読み出し

受信ディスクリプタを 有効に設定

受信EDMACを起動

return

No

Yes

Yes

No

正常受信?

受信ディスクリプタを示す ポインタの更新

Yes

No

EDMAC 停止中?

ディスクリプタを示すポインタ

76

Page 77: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

1フレーム受信関数

int rcv_frame(void *buff) { int i; int dataLen = 0; volatile RCV_DESC *rcv_end; uint8_t *rcv_buff = buff; // 受信ディスクリプタを示すポインタの取得 rcv_end = getRcvEnd(); if( rcv_end->rd0.BIT.RACT == 0 ){ if( rcv_end->rd0.BIT.RFE == 0 ){ dataLen = rcv_end->rd1.RFL; for( i=dataLen; i>=0; i--){ *(rcv_buff+i) = *(rcv_end->rd2.RBA+i); } } rcv_end->rd0.BIT.RACT = 1; if( EDMAC.EDRRR.BIT.RR == 0 ){ EDMAC.EDRRR.BIT.RR = 1; } // 受信ディスクリプタを示すポインタの更新 upDateRcvEnd(); } return dataLen; }

受信ディスクリプタを示す ポインタの取得

rcv_frame

受信待ち?

受信バッファの読み出し

受信ディスクリプタを 有効に設定

受信EDMACを起動

return

No

Yes

Yes

No

正常受信?

受信ディスクリプタを示す ポインタの更新

Yes

No

EDMAC 停止中?

77

Page 78: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved. 78

PHY-LSIの注意点

78

Page 79: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

RX63N

インタフェース対応

OR

#if ETH_MODE_SEL == ETH_RMII_MODE #endif #if ETH_MODE_SEL == ETH_MII_MODE #endif

MIIインタフェースの処理

RMIIインタフェースの処理

RX63N

79

Page 80: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

PHYアドレス対応

#define PHY_ADDR 0x1

80

Page 81: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

© 2013 Renesas Electronics Corporation. All rights reserved.

MIIレジスタのビット構成対応

/* Reset PHY */ _phy_write(BASIC_MODE_CONTROL_REG, 0x8000);

Reset Loopback Speed Select A/N Enable Power Down Isolate Restart A/N Duplex Mode

b15 b14 b13 b12 b11 b10 b9 b8

Collision Test Reserved Reserved Reserved Reserved Reserved Reserved Reserved

b7 b6 b5 b4 b3 b2 b1 b0

MIIレジスタ0番

MIIレジスタ=ライト レジスタ番号=0 最上位ビットを1=リセット

81

Page 82: RX63N 周辺機能紹介 ETHERC/EDMAC - Renesas e …‚Š替える機能。リンク接続ごとにPHY-LSIが自動で実行する。 ※詳細は、使用するPHY-LSIのデータシートを確認してください。

ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics Corporation. All rights reserved.

END