[H8-ML(3144)] RE:H8/3048 3052 に関する気になる話
From: "Hirashita" <iced@xxxxxxxxxxxxxxx>
Date: 2003年05月13日(火)21時18分19秒
ひやしたです。

別件が一段落したので、P60の件を調査してみました。
質問を交えて投稿致します。

#BSC.WCR=0x00(WSCによるウェイト)としたときに
#P60が動作しない、という件です。

こんなプログラムを作り、誤診を避けるためROMに書き込んで実験しました。
3052は自作基板、3048はイエローソフトの基板を使用しました。
BSC.WCRの設定行の一つをコメントアウトして作成、オシロでP60を観察しました。

void main(void)
{
    int ii;

    P6.DDR = 0x07;

//                        実験結果
//                        3048  3052
//  BSC.WCR = 0x00;     // HI   HI
//  BSC.WCR = 0x01;     // NG2  NG2
//  BSC.WCR = 0x02;     //      NG2
//  BSC.WCR = 0x03;     //      NG2
//  BSC.WCR = 0x07;     //      NG2

//  BSC.WCR = 0xF0;     // NG1  NG1
//  BSC.WCR = 0xF1;     // OK   OK
//  BSC.WCR = 0xF2;     // NG1  NG1
//  BSC.WCR = 0xF3;     // OK   OK
//  BSC.WCR = 0xF4;     // NG1  NG1
//  BSC.WCR = 0xF5;     // OK   OK
//  BSC.WCR = 0xF6;     // NG1  NG1
//  BSC.WCR = 0xF7;     // OK   OK

    for(;;){
        for(ii=0; ii<10000; ii++);
        P6.DR = 0x01;
        for(ii=0; ii<10000; ii++);
        P6.DR = 0x00;
    }
}

実験結果は
HI=Hiになりっぱなし
NG1=Hi出力時は良いのですが、
 Lo出力時に「鈍ったデータバス」を見ているような波形が出ます。
NG2=Hi出力時は良いのですが、
 Lo出力時にゼロレベル付近に妙な波形が出ます。(表現しにくいです)

まず、BSC.WCRの上位4ビット(Bit4〜7)はマニュアルには
リザーブビットでリードで常に1,ライトは無効、初期値1と記載されています。
ライトは無効ということで、ゼロを書いても問題無いのだと思っていましたが、
ここはちゃんと1を書かなくてはならないようですね。
【質問1】これって常識なのでしょうか?

P60はマニュアルによるとWCERが全て1(初期値)
WMS1(BSC.WCRのビット3)がゼロならば入出力として使えると
記載されていますが、ビット0が1でないと動作しない結果となりました。
【質問2】何がどうなっているのでしょう・・・?

以上、ご存じの方がいらっしゃいましたらご指導お願いします。

スレッド概略
[3020(R)](起点)
 └[3086(U)]
   └[表示中]
     └[3145(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]