[Suzaku:00645] Re: ウォッチドッグタイマー
Keichi Kawaoka
email@hidden
2006年 9月 15日 (金) 21:45:27 JST
川岡と申します。
SUZAKU-Sにて、ウォッチドックタイマなどでリセットをかける場合、
2つの方法があります。
1.「SYS_Rst」をHI.にする
通常こちらの方法が良いと思います。
「SYS_Rst」をHI.している間、MicoroBlazeやペリフェラルコアにリセットがかかります。
2.「FPGA_RESET_EN」をHI.にする
FPGA_RESET_ENをHI.にすると、SUZAKUは、FPGAの再コンフィグレーションを行います。
ただし、条件によって稀に正常にコンフィグレーションされずFPGAが動作しないことがあります。
原因は、SDRAMがリードステートでバスをドライブしている状態のとき、
再コンフィグレーション実行時し、SDRAMとTE7720との間で信号が衝突してしまうためです。
回避するには、何かの手段でSDRAMがリードステートにならないようする必要があります。
回避方法の一例として、簡単なサンプルウォッチドックタイマをつくってみました。
参考にしていただければと思います。
下記にコアの使用方法を説明します。
**************************
sz_reset_v1_00_aのコピー
**************************
添付ファイルのsz_reset_v1_00_aを、フォルダxps_proj\pcoresの下にコピーしてください。
**************************
xps_proj.mhsの編集
**************************
xps_projを編集してください。
先頭行に2行追加
PORT Watchdogin = Watchdogin, DIR = I
PORT FPGA_Reconf = FPGA_Reconf, DIR = O
最後尾行に12行追加
BEGIN sz_reset
PARAMETER INSTANCE = sz_reset_0
PARAMETER HW_VER = 1.00.a
PARAMETER C_BASEADDR = 0xFFFFF100 # ベースアドレスが別に使われている場合は変更してください
PARAMETER C_HIGHADDR = 0xfffff1ff # ベースアドレスが別に使われている場合は変更してください
BUS_INTERFACE SOPB = d_opb_v20
BUS_INTERFACE MOPB = d_opb_v20
PORT sopb_clk = SYS_CLK
PORT mopb_clk = SYS_CLK
PORT Watchdogin = Watchdogin
PORT FPGA_Reconf = FPGA_Reconf
END
**************************
外部入出力信号の説明
**************************
FPGA再コンフィグ実行出力信号
FPGA_Reconf
FPGA_RESET_ENと接続してください。
外部強制リセット入力信号
Watchdogin
HI.が入力されると強制リセットします。
使用しない場合はLO.を入力しておいてください。
**************************
レジスタの説明
**************************
強制リセットレジスタ
Reconfig_set
オフセットアドレス 0x00
bit0 1=強制リセット実行します。
(通常は使わないと思います)
ウォッチドックタイマイネーブルレジスタ
watchdog_en
オフセットアドレス 0x04
bit0 1=ウォッチドックタイマ の動作が開始します。
0=ウォッチドックタイマ が停止します。
ウォッチドックタイマクリアレジスタ
re_set
オフセットアドレス 0x08
bit0 1=ウォッチドックタイマのカウント値がクリアされ 0x0 になります
0を書き込む必要ありません。自動的に0になります
ウォッチドックタイマタイムアップレジスタ
watchdog_tim
オフセットアドレス 0x0C
bit31〜0 ウォッチドックタイマ タイムアップ値
タイムアップ時間(秒) = タイムアップ値 / 51609600
三浦浩二 wrote:
> いつもお世話になります。 (株)デザインテックの三浦です。
>
> SUZAKU-Sにてウォッチドッグタイマーを実現したいのですが
> 何かよいアドバイスを頂けないでしょうか?
> top.vhdにFPGA_RESET_ENというIOがありますが
> タイマーを用意して通常はファームにてクリアをして
> 暴走した場合タイマーのオーバーフローを検出して
> FPGA_RESET_ENをHighにすることにより
> ハードリセットがかかるとの思惑ですが。
> よろしくお願いします。
>
>
> _______________________________________________
> suzaku mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/suzaku
>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: sz_reset_v1_00_a.zip
型: application/x-zip-compressed
サイズ: 4111 バイト
説明: 無し
URL: <http://lists.atmark-techno.com/pipermail/suzaku/attachments/20060915/7025afdf/attachment.bin>
suzaku メーリングリストの案内