امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
کمک در مورد MMC
نویسنده پیام
masih5050 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #1
کمک در مورد MMC
سلام
من در اتصال avr به کارت MMC به یه مشکلی برخوردم و مشکل اینه که با کارت 64M فقط تو آدرس 4 بلوک اول میتونم بخونم و بنویسم و با کارت 512M تا آدرس 30 :!: . وقتی هم از این آدرس ها بیشتر ارسال میکنم کارت از initialization خارج میشه. وقتی هم با cmd16 میخوام Block lenght را تغییر دهم کارت خطای response 40hex که همان parameter error است را ارسال میکند. لطفا منو راهنمایی کنید. :(
۲۷-آذر-۱۳۸۵, ۰۲:۱۶:۱۲
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #2
 
اون خطای 40 ممکنه به خاطر پشتیبانی نکردن اون کارت حافظه از این دستور باشه چون یه استانداردی نیست که همه همش رو پشتیبانی کنن
من هم یه چنین مشکلاتی داشتم که ماله بد تعریف کردن متغیر ها بود مثلا 2 بایتی در نظر گرفته بودم که به 3 بایت نیاز داشت در ضمن ممکنه unsigned داری روی متغیر حساب می کنی ولی signed تعریف شده
ولی دققیقا نمی دونم مشکل از کجاست

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۲۷-آذر-۱۳۸۵, ۲۲:۵۹:۱۷
وب سایت ارسال‌ها
پاسخ
masih5050 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #3
 
هادی جان سلام.
این قسمت read برنامه منه.متغییر addr هم long یعنی 32 بیتی تعریف شده.
آدرس block را تو addr می ریزم.در ضمن یه کارت 512M چند تا block داره؟512M/512=nblock? درسته????....من با کارت 64M با همین برنامه از آدرس بلوک 0 تا 4 جواب میداد وقتی کارت 512M یعنی 8 برابر شد تعداد بلوکهایی که من میتونستم بخونم و بنویسم هم 8 برابر شد یعنی آدرس 0 تا 30 شد
کد:
Readb:
Dat = &HFF
Set Cs
Spiout Dat , 1
Spiin Resp , 1
Spiout Dat , 1
Spiin Resp , 1
Reset Cs
Dat = &H51
Spiout Dat , 1
Spiout Addr , 4
Dat = &HFF
Spiout Dat , 1
Spiout Dat , 1

While Resp <> 0
Spiin Resp , 1
Print Resp
Wend
While Resp <> &HFE
Spiin Resp , 1
Wend

For I = 1 To 512
Spiin Indat(i) , 1
Next I

For I = 1 To 512
Print Indat(i
Next I

Dat = &HFF
Set Cs
Return
۲۷-آذر-۱۳۸۵, ۲۳:۵۳:۴۷
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #4
 
سلام
فکر نمی کنی یکم کدهایی که نوشتی کمه :wink:
درست initial نکردی mmc رو خوندنشم کلی دستورو اینا می خواد همین جوری که نمی شه
اینا رو ببین
http://hubbard.engr.scu.edu/avr/avrlib/d...__mmc.html
http://hubbard.engr.scu.edu/avr/avrlib/d...ource.html

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۲۸-آذر-۱۳۸۵, ۱۰:۱۹:۱۶
وب سایت ارسال‌ها
پاسخ
masih5050 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #5
سلام
من قسمت read برنامه را گذاشتم وگر نه کد های مربوط به initial کردنو کامل نوشتم .اگه برنامه ناقصه چرا تو چند تا بلوک اول کارت به طور صحیح read و write انجام میشه. :!: :!: :?: :?:
۲۸-آذر-۱۳۸۵, ۱۱:۲۱:۲۸
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #6
 
والا نمی دونم مشکل کجاست
ولی پیش نهاد می کنم دقیقا همین رو به زبانی که کار می کنی ترجمه کنی اینجوری خیلی راحت تره چون قبلا هم تست شده بنابراین مشکلی نباید داشته باشه

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۲۹-آذر-۱۳۸۵, ۰۸:۵۳:۰۳
وب سایت ارسال‌ها
پاسخ
mochen آفلاین
تازه وارد

ارسال‌ها: 12
موضوع‌ها: 0
تاریخ عضویت: دى ۱۳۸۵

تشکرها : 0
( 2 تشکر در 2 ارسال )
ارسال: #7
 
با config خوده bascom برنامه ای دارید mr30
۱۷-دى-۱۳۸۵, ۰۳:۳۲:۴۱
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #8
 
فکر کنم به صورتپسش فرض روش نیست یا روی ورژن های بالاترش هست

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۷-دى-۱۳۸۵, ۰۹:۰۳:۲۱
وب سایت ارسال‌ها
پاسخ
Iran-PC آفلاین
كاربر دو ستاره
**

ارسال‌ها: 101
موضوع‌ها: 6
تاریخ عضویت: شهریور ۱۳۸۵

تشکرها : 0
( 5 تشکر در 5 ارسال )
ارسال: #9
 
اشکال اون برنامه این بود که شماره ای که به عنوان سکتور به mmc باید ارسال کنیم باید مضربی از 512 (همون تعداد بایت در سکتور) باشه.
برای اینکار میشه شماره سکتور دلخواه را یا 9 بیت به چپ شیفت داد و یا در 512 ضرب کرد.
۱۷-دى-۱۳۸۵, ۲۲:۵۳:۴۸
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #10
 
ممنون :wink:

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۸-دى-۱۳۸۵, ۱۰:۴۰:۰۶
وب سایت ارسال‌ها
پاسخ
masih5050 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #11
سلام
مشکل برنامه من در ارسال آدرس بلوک ها بود. نحوه ارسال آدرس به این شکله :
مثلا برای آدرس 35 باید 04-01-00-00 hex را ارسال کرد در صورتی که من قبلا 23-00-00-00 hex را ارسال میکردم.در واقع یه کارت 512 در بایت اول آدرس فقط تا آدرس 30 میتونه قبول کنه.یعنی اگه آدرستون از 30 بیشتر بود باید از بایت بعدی استفاده کنید. برای کارت 64 هم که من تست کردم بایت اول تا ادرس 4 را قبول میکرد .مثلا برای برای ادرس 5 باید 00-01-00-00 ارسال شود نه 05-00-00-00. :wink: من با این روش تو همه بلوکها میتونم بنویسم و بخونم.اما خداییش کلی مو سفید کردم تا فهمیدم چون تو هیچ pdfای ننوشته بود. :wink:
۱۹-دى-۱۳۸۵, ۰۲:۳۸:۴۳
ارسال‌ها
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 3 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS