سلام،
من یک مشکلی در کار با SDC با 1788 در مد Naive دارم، اونم اینه که حجم خیلی کمی فایل در حد 3- 4 کیلوبایت رو می تونم در یک فایل تکست بنویسم!
وقتی حجم از این مقدار بیشتر میشه ادامه متن رو چیز های عجیب می نویسه!!! و یا نوشته هایی از قبل رو به صورت تقریبا نا مرتب می نویسه!!!
می خواستم خواهش کنم شما یک تست بگیرین ببینید می تونید حجم بالایی(بالای 90 کیلو بایت) دیتا رو در یک فایل تکست بنویسید.
سلام ،
من با کار با SD-NATIVE تحت LPC1788 مشکل پیدا کردم. در واقع در مد SD-NATIVE تا حدود 4KByte می تونم یک فایل متنی بسازم، وقتی از 4 کیلو بیشتر میشه نظم قسمت هایی از متن به هم میخوره و کلاً درست کار نمیکنه!
می خواستم خواهش کنم که زحمت بکشید و یه وقتی بذارید ،با 1788 توی مد NATIVE یه تست بگیرید... پیشاپیش ممنون از وقتی که خواهید گذاشت/.
سلام
من از سمپل کوربورد برایSD-NATIVE استفاده کردم;Initialize disk , Initialize logical drive بدون ارر انجام می شه اما برای read و write و عملیات فایل ارر FR_DISK_ERR می ده.
وقتی هم از سمپل آقای titery استفاده می کنم ارر شماره 2 می ده. وقتی اسکوپ به سر SD_CLK می زنم درست کار می کنه.
کسی می دونه مشکل چیه؟
ویرایش توسط hmrasa : 16-04-2014 در ساعت 14:47
سلام مهندس
ممنونم از اینکه برنامه ۱۷۸۸ رو برامون گذاشتی.
سؤال اول من اینه چگونه میتونم از توابع استفاده کنم به عنوان مثال چگونه میتونم یک عکس رو داخل sd card ریخته و اون رو بخونم.
سؤال دوم من اینه که اگر بخوام از قسمت nand flash فایل شما استفاده کنم باید چه کار کنم؟(تیک مربوط به nand رو زدم ولی error میده.)
سلام
در تست اول سمپل flash-fs کیل برای lpc1788 که با MCI هست کار نمی کنه!
سمپل های cmsis هم که با توابع کتابخانه lpc177x_8x_mci هست هم همین طور
سمپل همراه برد که با توابع چان Fat-Fs هست کار می کنه
حالا دوستان که در این پست می گویند این کار می کنه اون نمی کنه اون تا 4 کیلو بیشتر کار نمی کنه منظورشان کدوم سمپل ها هست!!؟
سلام دوستان امکان داره نحوه استفاده از برنامه ای که در پست اول گذاشته شده رو یک توضیحی بدید که دستور های رایت و رید چطوریه. من اصلا دیدی نسبت به نحوه کار با اس دی ندارم متاسفانه. بگید از کجا هم شروع کنم ممنون میشم.
سلام آقای زرکوب. بنده از همون سمپل کد همراه برد که با توابع چان Fat-Fs استفاده کرده است استفاده کردم. تابع disk initialize به خوبی اجرا میشه و مشخصات sd card رو هم می تونم بخونم. اما برای read و write خطای" Start bit error on data signal in sd card" موجب خوردن اینتراپت و در نتیجه برگرداندن خطای کلی disk error در تابع check_fs میشود. میشه راهنمایی کنید مشکل از کجا می تونه باشه؟ در ضمن من چک کردم گویا از پین SD_CD در این برنامه استفاده نشده اما این پین صفر است.
سلام. بنده به صورت کاملا مبتدی کار با SDcard رو شروع کردم اینه که مطالبی رو که یاد گرفتم هرچند میدونم برای خیلی از افراد پیش پا افتاده است اینجا اوردم تا اگر واسه کسی مفیده استفاده کنه. از اساتید محترم هم میخوام اگه ایرادی در این نوشته ها هست لطفا تذکر بدن.
برای کار با Sd card مطمئنا اولین کار خرید یه اس دی کارت مناسب است. اگر اطلاعی از دسته بندی انواع اس دی کارتها ندارید بهتون پیشنهاد می کنم به لینک زیر که فارسی هم هست مراجع کنید تا علائم روی اس دی کارتها رو بتونین تشخیص بدید.
راهنمای جامع خرید کارت حافظه و آشنایی با مشخصات آن (بخش اول) - زومیت
کلا برای ارتباط با اس دی کارت اغلب از SPI استفاده می شود اما بعضی میکروکنترلرها (مانند LPC1788) کنترلر SDcard دارند و می توانند با 4 خط دیتا با اس دی کارت ارتباط برقرار کنند که به مراتب از SPI سریع تر است. به این کار راه اندازی اس دی کارت در مد native گفته می شود. بنده خودم با این مد کار کردم و از سمپل کد NXP استفاده کردم که در انتها اون رو آپلود کردم.
اس دی کارت یک خط command داره که با ارسال دستور از قبل تعیین شده بهش می فهمونیم که عملیات بعدی ما چیه، خواندن، نوشتن و .. . در Pdf ایی که در انتها قرار دادم توضیح این دستورات و ساختار کامند و دیتای تبادل شده بین اس دی کارت و کنترلرش توضیح داده شده است.
یکی از کاملترین سمپل کدها تو این زمینه سمپل کد NXP است که البته یکم سختیها داره مثلا اینکه از ترمینال کامپیوتر استفاده می کنه و اینجور چیزا که من در این سمپلی که واستون آپ کردم این قسمتهاش رو کامنت کردم و صرفا با استفاده از توابع داخلی خودش یه فایل رو توی میکرو اس دی درست کردم. ازاونجاییکه کدهای توابع رو می بینید به نظر من به مراتب قابل فهم تر است.
من با میکرو lpc1788 کار کردم و همانطور که می دونید خطوط کنترلی sdcard هم در پورت 0 و هم پورت 1 قرار دارند. بسته به مدارتون که از کدومیک از این پورت ها استفادده کرده است تنظیمات تابع MCI_Init را انجام دهید.
خب حالا میرسیم به اجرای برنامه، در ابتدای برنامه میکرو مشخصات اس دی کارت را می خواند، اگر اینکاررا به درستی انجام داد می توانید از کارکرد درست خط کلاک و کامند تون اطمینان حاصل کنید چون در این حال که به اون Identification mode می گویند تمامی تبادلات از خط CMD صورت می گیرید نه دیتا. در صورت هر گونه خطا اول رجیستر status رو بخونید و با توجه به مقدار اون و مقایسه با تعریف این رجیستر در دیتاشیت LPC1788 متوجه شوید دقیقا اشکال کار از کجاست. برنامه تون رو در یه لوپ بندازید و چک کنید که آیا همه پایه های دیتاو کلاک و کامند کلاک می خورند یا خیر.
بنده خودم برد کویرالکترونیک مدل 161b رو خریدم که خشاب sd card نداشت ولی وقتی خودم نصب کردم تا مدتها درگیرش بودم که چرا خطای start bit error میزد اونم وقتی می خواست عملیاتی مثل read و write انجام بده بعد متوجه شدم پایه data0 به میکرو وصل نیس.
[17] EV_Micro_SD_FATS.rar