[H8-ML(3064)] Re: 自作測定器の記録媒体
From: Shigeru Makino <mac@xxxxxxxxxxxxxx>
Date: 2003年05月01日(木)19時47分55秒
macです。

"fujiwara_dttech" <fujiwara@xxxxxxxxxxxx> wrote:

> これを利用した回路図なんかないですよねぇ。
> すいません。

実は、H8の回路も、プログラムも手許にあるんですが、
私のWeekend Projectじゃなくって、会社の商売用だから、
公開できないんです。

でも、回路って言っても、たとえばP6を使うとして、

MMC			H8
1 CS	<	P63
2 DI	<	P61
3 Vss	-	GND
4 Vdd	-	+3V
5 CLK	<	P62
6 Vss	-	GND
7 DO	>	P60

これで "<" と書いたところは5V->3Vのレベル変換。
">"の方は3V->5Vのレベル変換(面倒なら直結 (^^;
(実際は保護回路が入ってるけど)DI, DOはPullup

#define SEMCS           0x08		// SEM chip select 
#define SEMSK           0x04		// SEM serial data clock 
#define SEMDI           0x02		// SEM serial data input 
#define SEMDO           0x01		// SEM serial data output

static void
sk(void)
{
	P6DR |= SEMSK;
	P6DR &= ~SEMSK;
}


static void
stdby(void)
{
	P6DR &= ~(SEMCS | SEMDI);
	sk();
}


static int
gtdt(void)
{
	int                     dt;
	register int            i;

	for (i = dt = 0; i < NDAT; i++) {
		sk();
		dt <<= 1;
		if ((P6DR & SEMDO) != 0) {
			dt |= 0x0001;
		}
	}

	stdby();

	return (dt);
}


static void
ptdt(int dt, int n)
{
	register int            i;

	dt <<= (sizeof(INT) << 3) - n;

	for (i = 0; i < n; i++) {
		if ((dt & 0x8000) != 0) {
			P6DR |= SEMCS | SEMDI;
		}
		else {
			P6DR = (P6DR & ~SEMDI) | SEMCS;
		}
		dt <<= 1;
		sk();
	}
}

見たいにして、1 bit送受するたび、CLKを送っていくだけなんだけど。

-- mac

スレッド概略
[3051(R)](起点)
 └[3063(U)]
   └[表示中]
     └[3073(1)]


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


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