28 |
FM-7 ROM吸出し器の改版 (10) |
実験&PICプログラムの修正
組み立てたボードを図265.1に示します。
void TMR2_DefaultInterruptHandler(void){
if (Z80W_GetValue() == 0) {
XREFCK_SetDigitalOutput();
XREFCK_SetHigh();
RFREQ_SetHigh();
while (RFGNT_GetValue() == 0);
XREFCK_SetLow(); XREFCK_SetHigh();
XREFCK_SetLow(); XREFCK_SetHigh();
XREFCK_SetLow(); XREFCK_SetHigh();
XREFCK_SetLow(); XREFCK_SetHigh();
RFREQ_SetLow();
XREFCK_SetDigitalInput();
}
}
実験
62.5 usecに4発のリフレッシュを実験しました。リフレッシュ期間は3.8 usecであったので、Arduinoに割込みをかけた場合はほとんど100%がリフレッシュであったのに比べて、PICによるリフレッシュ時間の割合は6%に激減しました。
さらに125 usecに8発を試してみます。図265.2、3にその場合のリフレッシュの波形を示します。PICを用いることで125 usec(8発)ではリフレッシュの割合を4.6%まで下げる事ができました。
結論
実験結果としては、熱はかけていないものの、180 secまでノーエラーで経過しており、リフレッシュ回路は問題ないものと判断します。
表265.1にリフレッシュ回数とオーバヘッドを示します。
周期[usec] | リフレッシュ回数 | リフレッシュ時間[usec] | オーバヘッド[%] |
---|---|---|---|
15.625 | 1 | 2.3 | 14.72 |
31.25 | 2 | 2.8 | 8.96 |
62.5 | 4 | 3.8 | 6.08 |
125 | 8 | 5.8 | 4.64 |
250 | 16 | 9.8 | 3.92 |
500 | 32 | 17.8 | 3.56 |
1,000 | 64 | 33.8 | 3.38 |
2,000 | 128 | 65.8 | 3.29 |