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