ايران ويج

نسخه‌ی کامل: کمک درمورد Initial کردن MMC
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام خدمت همه شما دوستای عزیز. من یه مشکل کوچیک یه کمی بزرگ!!! دارم. میخوام با MMC کار کنم، کلی هم در موردش چیزی خوندم و سرچ کردم. مشکل اینجاست که هرکاری میکنم نمیتونم Initial کنم MMC رو. این کدی هست که برای Initial کردنش نوشتم.
کد:
#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 هست. تستشم کردم با گوشی کار میکنه...
بهتر کل سیستم رو 3.3 کنی تا مقاومت نخواد فرکانس کار رو هم بیار پایین ببین چی می شه
فکر کنم بگردی برنامه آماده هم باشه
یادمه کانفیگ spi هم مهم بود یه جایی گداشتم توی همین فروم
خیلی ممنون که جواب دادید آقا هادی. فرکانس کاری میکرو 8 مگاهرتزه. برنامه آماده هم دارم. کانفیگ spi هم اینجوریه
کد:
// SPI Type: Master
   // SPI Clock Rate: 125.000 kHz
   // SPI Clock Phase: Cycle Half
   // SPI Clock Polarity: Low
   // SPI Data Order: MSB First
   SPCR=0x52;
   SPSR=0x00;
از سالم بودن MMC هم مطمئن هستم. ولی نمیدونم چرا کار نمیکنه... کمک کنید. خیلی وقت ندارم.
به نظر درست می یاد فقط یکم سرعت رو بیار پایین برای تست ضرر نداره
آقا هادی سرعت میکرو رو اوردم رو 4 مگاهرتز. سرعت spi رو هم گذاشتم رو fosc/128 یعنی حدود 31.2 کیلوهرتز ولی بازم کار نمیکنه.
ممکنه بعضی مدلای MMC ارتباط SPI رو ساپورت نکنه؟ MMC من واسه 6600 هستش که هیچ مارکی نداره فقط روش یه عدد نوشته با 6600 همین! واسه همین نتونستم دیتاشیتشو پیدا کنم.
آره راستی 2 تا پروتکل دارن انگار
http://pinouts.ru/Memory/mmcard_pinout.shtml
http://pinouts.ru/Memory/sdcard_pinout.shtml
همون اولی رو ببین
می تونی یکی دیگه بخری با اون هم تست کنی
سلام.
ببخشید من چند روزی خیلی سرم شلوغ بود نتونستم بیام. آقا هادی مشکل حل شد! همینجوری یه دفعه!!! فکر کنم جریان منبع تغذیم کم بود. به هر حال خیلی خیلی ممنون که وقت گذاشتید و جواب دادید.
ولی یه مشکل دیگه دارم. وقتی میکرو رو به منبع تغذیه وصل میکنم MMC کار نمیکنه و باید حتما یک بار میکرو رو ریست کنم. همین که ریست میکنم درست میشه. قبل از شروع برنامه با delay تاخیر گذاشتم ولی باز فایده نداره...
اگه ممکنه راهنمایی کنید...
مگه اینکه میکرو هنگ کنه وگرنه کاری به جز همون تاخیر فکر نکنم انجام بده شاید هم تو یاینشیال مشکل داری دوبار اینشیال کن mmc رو شاید درست شد اون تاخیر رو هم زیادش کن
صفحه‌ها: 1 2