۱۰-فروردین-۱۳۸۷, ۱۳:۱۲:۲۲
سلام خدمت همه شما دوستای عزیز. من یه مشکل کوچیک یه کمی بزرگ!!! دارم. میخوام با MMC کار کنم، کلی هم در موردش چیزی خوندم و سرچ کردم. مشکل اینجاست که هرکاری میکنم نمیتونم Initial کنم MMC رو. این کدی هست که برای Initial کردنش نوشتم.
MMC رو هم اینطوری به میکرو وصل کردم (البته غیر از ولتاژ که از یه رگلاتور دیگه استفاده کردم)
http://www.captain.at:80/electronic-atme...ematic.png
حالا نمیدونم مشکل کجاست که تو همون حلقه اول که باید 0x01 بگیره گیر میکنه، یعنی میشه گفت MMC جواب نمیده. اگه کمک کنید خیلی ممنون میشم. بدجوری اعصابمو خورد کرده. نمیدونم اتصالاتم مشکل داره یا برنامم. البته چندتا برنامه پیدا کردم اونارم تست کردم ولی جواب نداد. MMC هم 32 مگ از اون فابریکای 6600 هست. تستشم کردم با گوشی کار میکنه...
کد:
#define CS PORTB.4
#define DIn PORTB.5
PORTB=0x00;
DDRB=0xBF;
SPCR=0x58;
SPSR=0x00;
void MMCinit(void){
unsigned char i,r;
delay_ms(100);
CS = 1;
DIn = 1;
for (i=0;i<12;i++) spi(0xff);
delay_ms(100);
CS = 0;
spi(0x40);
for (i=0;i<4;i++) spi(0x00);
spi(0x95);
r = 0x00;
while (r != 0x01){
r = spi(0xff);
};
r = 0xff;
while (r != 0x00){
spi(0xff);
spi(0x41);
for (i=0;i<5;i++) spi(0x00);
r = spi(0xff);
};
CS = 1;
}
MMC رو هم اینطوری به میکرو وصل کردم (البته غیر از ولتاژ که از یه رگلاتور دیگه استفاده کردم)
http://www.captain.at:80/electronic-atme...ematic.png
حالا نمیدونم مشکل کجاست که تو همون حلقه اول که باید 0x01 بگیره گیر میکنه، یعنی میشه گفت MMC جواب نمیده. اگه کمک کنید خیلی ممنون میشم. بدجوری اعصابمو خورد کرده. نمیدونم اتصالاتم مشکل داره یا برنامم. البته چندتا برنامه پیدا کردم اونارم تست کردم ولی جواب نداد. MMC هم 32 مگ از اون فابریکای 6600 هست. تستشم کردم با گوشی کار میکنه...