> 3052Fでシリアル通信をするときに、何か他の設定が必要なのでしょうか?
> どなたかご存知の方教えてください。
> <環境>
> 開発 AKI-H8 Cコンパイラ使用
> リンク時に使用するメモリを指定するファイル(subcmd.sub)などは3048Fのものを
> 使っています。
> また、3048F.Hというヘッダファイルを使っているのですが、これに問題があるの
で
> しょうか?
> (3048Fとピンや内蔵レジスタがコンパチブルなので問題ないと思っているのです
> が…)
3048F16,3052F25 3067F20,3068F25,2069F25 はそれぞれ
仲間で、メモリーのタイミングやピン互換でAKI H8 ボードに少し
手を加えて2種類のベイスボード(メモリー、RS232C信号の増設)
で快適に利用出来ています。 3048、3052 問題なく互換性が
有りました。 問題点は、3048のせせこましいメモリーアクセス
タイミングなので25MHz動作ではちと不安定な事ですか。
67-69 シリーズはメモリーアクセスタイミングに余裕があるので
これからはこちらですね。
さて、私のプログラムも同じですが快適に送受信割り込み動作で
115200BPSで完動しています。 動作しないとしたらばぁ〜
1)チップが不良
2)組み立てが不良
3)コンパイル、リンクをしくじっている
ではないでしょうか。 私は必ず2セッ用意して動けば良し、
駄目なら即2台目と比較しています。 デバッガーも必ず
2セット用意し、ハードの故障で徹夜しないようにしています
が、今回の質問に当たって、複数台での確認をされていま
すか?
杉本
// RESET asd START SCU0
void scu1_set(long int baud, // 115200-4800
int stop, // 1,2
int parity) // 0:NO ,1:ODD ,2:EVEN
{ unsigned char x,y;
unsigned int br;
int br1,dbr,dbr1;
SCI1.SCR.BYTE =0; // Stop SCU0
switch (parity)
{ case 1: x=0x30; // Odd
break;
case 2: x=0x20; // Even
break;
default: x=0; // NO Parity
}
if(2 == stop) x=x + 8; // 2 stop
if(2400 > baud )
{ baud=baud * 4;
x=x | 1; // φ/4
}
SCI1.SMR.BYTE =x; // set MODE
// br=(576000l / baud); // (28.636M / 32) -1
br=(825753l / baud); // (25M / 32) -1
br--;
SCI1.BRR =br; // set Baud Rate
// P6.DDR.BIT.B1=1; // P6.1= RTS1 OUT
// PA.DDR.BIT.B3=0; // PA.3= DSR1 in
// PA.DDR.BIT.B0=0; // PA.0= CTS1 in
//
P6.DR.BIT.B1=0; // RTS1 ON
SCI1.SCR.BYTE =0x70; // Enable Receive
// TIE 0
// RIE 1
// TE 1
// RE 1
// (MPIE) 0
// TEIE 0
// CKE1 0
// CKE0 0
}