PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : mmc در ccs



esi_52000
25-12-2011, 14:03
سلام به همه دوستان گرامی.علمای عزیز تاحالا از کتابخونه های ccs برای ارتباط با mmcاستفاده کردین؟
دوتا کتابخونه داره به نامهایmmcsd.c و mmc_spi.c.من تست کردم داره جواب نمیده.کسی از عزیزان باهاشون کار نکرده؟

sigma-mx
25-12-2011, 21:49
ای بابا ... می دونی چند ساله من دنبال یکی می گردم که با این لایببری کار کرده باشه.
من خیلی با این کتابخونه هاش ور رفتم . ولی بعد که دیدم کار نمی کنه رفتم خودم از صفر یکی بنویسم . ولی نمی دونم مشکل از کجاست . اگر تابع init درست رو همه جواب بده مشکل حله . ولی من از 4 تا مموری که داشتم فقط یکیش init می کرد . اگه مایل به همکاری باشید با هم راهش بندازیم . حیفه کامپایلر به این خوبی مموری رو نداشته باشه .... بقیه دوستان هم یه نظری به ما داشته باشن ..... با تشکر

esi_52000
26-12-2011, 00:29
sigma_mx داداش من امروز داشتم تستش میکردم دوباره. کتابخونه mmc_spi.c کلا ول معطله.ولی کتابخونه ی mmc_sd.c داره یه کارایی میکنه.ولی مشکلش اینه که یه وقتی میشناسه و یه وقتی نمیشناسه .دیوونه شدم از دستش.

sigma-mx
26-12-2011, 12:42
سلام . آره دقیقا گفتم که بگیر نگیر داره.. من مدتها توی فروم خود ccs به آدرس ccsinfo.com/forum تمام پستهای مموری کارت رو خوندم . هر کس هم از تمام دنیا میاد که کار با مموری کارت رو شروع کنه به بنبست می خوره. بعد هم یه نفر تو اون فروم که خودش یه لایببری نوشته به همه پیشنهاد خرید لایببریش رو به قیمت 100 دلار می کنه !!! چیزی که من فهمیدم تغذیه یه چیز بسیار مهم در راه اندازی مموری کارت هست . نمی دونم شما چه اندازی با راه اندازی مموری کارت آشنایی دارید . ولی کاری رو که می گم یه تست کنید....
لایببری mmcsd.c رو که باز کنید توی اولین تابع mmcsd_init فکر کنم چهار پنج تا مرحله باشه اول ارسال کامند ریست - بعد ارسال کامند مد spi - بعد ارسال تعداد بلوک و... بعد از هر مرحله و تا وارد شدن به مرحله بعدی یه printf با یه پیغام بزار تا ببینی مموریت تا کدوم مرحله رو قبول می کنه و کجا گیر میکنه... و نوع مموری و مارک هاش رو هم بنویس...مرسی

esi_52000
26-12-2011, 19:38
داداش من زیاد باهاش کار نکردم.با راه اندازیش هم زیاد آشنا نیستم.ولی میخام هر طور شده راش بندازم.اگه لازمه خودمون یه کتابخونه بنویسیم من پایه ام.فقط اگه میتونی یه خورده در موردش اطلاعات بده داداشم.ممنون

sigma-mx
26-12-2011, 22:46
دوستان بخش pic نمی خوان یه کمکی به ما بکنن !!!
شما نگفتی با چه مارک مموری امتحان کردی ؟ چند ولت چطوری دادی ؟ چه میکرویی ؟ اینا رو بگو کم کم با هم تست می کنیم ..

esi_52000
27-12-2011, 00:43
داداش sigma-mx من با یه 18f452 به یه میکرو sd با ظرفیت 128 مگابایتی.اونم با تقسیم مقاومت 1.8k va 3.3kکه 3.3 رو دادم به زمین و 1.8 رو دادم به میکرو.

sigma-mx
31-12-2011, 13:20
کاش مارکشو هم می نوشتی مثلا sandisk . پایه do مموری رو با یه 4.7k به 3.3 ولت پول آپ کردی ؟

esi_52000
03-01-2012, 01:35
سلام داداش sigma.ببین مشکل تا حد زیادی بزطرف شده.
من از همون کتابخونه ی mmcsd.c جواب کامل گرفتم.همه چیز به ارتباط mmc به میکرو ربط داشت.
واسه بستن هر پایه از 2 تا مقاومت باید استفاده کنی. اونم به این صورت که مقاومت 3.3k رو از پایه ی میکرو وصلش کن به زمین.بعد با یه مقاومت 1.8k پایه میکرو رو وصلش کن به mmc.اگه مشکلی بود در خدمتم:125:

sigma-mx
03-01-2012, 12:39
سلام دوست عزیز . خوب ما هم که از اول می دونستیم باید با تقسیم ولتاژ به میکرو وصلش کنیم ! چه کار جدیدی انجام دادی ؟ اصلا از کجا میدونی راه افتاده ؟؟! این لایببری یه مشکلی داره که آدمو گول می زنه ! چون بافر نرم افزاری داره اگه بنویسی توی کارت اونوقت مموری رو ور داری وبخونی بهت درست نشون میده در صورتی که مموری داخل نبوده اصلا ! آیا با لایببری FAT هم کار کردی ؟ لطفا بگو ولتاژ رو هم با چی ساختی ( مثلا با lf33 ) . مرسی

esi_52000
03-01-2012, 19:25
سلام دوست عزیز . خوب ما هم که از اول می دونستیم باید با تقسیم ولتاژ به میکرو وصلش کنیم ! چه کار جدیدی انجام دادی ؟ اصلا از کجا میدونی راه افتاده ؟؟! این لایببری یه مشکلی داره که آدمو گول می زنه ! چون بافر نرم افزاری داره اگه بنویسی توی کارت اونوقت مموری رو ور داری وبخونی بهت درست نشون میده در صورتی که مموری داخل نبوده اصلا ! آیا با لایببری FAT هم کار کردی ؟ لطفا بگو ولتاژ رو هم با چی ساختی ( مثلا با lf33 ) . مرسی

سلام داداش sigma.آره عزیز دفعه قبل گول خورده بودم.اما این بار اومدم دیتاشیت اون رو خوندم و توی تمام برنامه مدارم تله گذاشتم که اگه داره الکی اطلاعات میده گیرش بندازم.
مراحل تله گذاری
1-در مرحله ریست sd و فرستادن دستور CMD0
2-در مرحله خروج از مرحله ریست sd و فرستادن دستورCMD1
3-مرحله غیر فعال کردن کد,CRCو ارسال دستورCMD59
4-مرحله تعیین طول یک BLOCK و ارسال دستورCMD16
5-مرحله تایید نهایی
برای 3.3 ولت از رگلاتور LF33 استفاده کردم.
من این لایبری رو واسه همون ال سی دی N96 نوشتم.من به اینترنت پر سرعت دسترسی ندارم.اگه این ال سی دی رو داری بگو تا لایبری رو ئاسط بزارم.یا اگه نیازه واسه ال سی دی گرافیکی باز نویسی کنم.داداش فایل زیر رو یه نگاه بنداز

M.ABDOLLAHI
03-01-2012, 19:26
سلام خوب دوستان چرا با نرم افزارهای mikroe کار نمیکنید اونها که fat16 هم دارند خیلی آسونه... فکر میکنم بعد از این همه مدت کیفیت کد کامپایلرش بهتر شده.

sigma-mx
03-01-2012, 21:25
سلام . ممنون که در این زمینه داری فعالیت می کنی امیدوارم به نتیجه کامل برسیم و بقیه هم استفاده کنند.
خوب در اولین پاسخ هایی که به شما داده بودم گفتم از این روش printf یا بقول شما تله گذاری استفاده کن تا مطمئن بشی درست داره کار می کنه . خوب، اگه می گی درسته که خیلی خوبه . اول اگه ما بتونیم عملیات خوندن و نوشتن رو بدون هیچ مشکل رو چند تا مدل sd جواب بگیریم بقیه مثل fat16 و fat32 دیگه حله.پس عجله نکن بزار خوب مطمئن بشیم ! بسیار خوب ، کارهایی رو که میگم بی زحمت یه تست کن تا زحمتت هدر نره و مطمون بشی : اول مموری رو با کامپیوتر فرمت کن (fat یا fat32 )بعد با میکرو از خونه 0 تا مثلا 520 اعداد 0 تا 520 رو بنویس ( دلیل داره ) حالا مموری رو دوباره تو کامپیوتر بزار برو توش ، باید بگه فرمت میخواد !! ولی فرمت نکن، لازمش داریم. چون سکتور 0 رو نوشتی و سیستم عامل نمیشناستش. خوب حالا چند دقیقه میکرو و مدارو از تغذیه جدا کن و دوباره وصل کن با مموری . از خونه 0 تا 520 بخون ببین همونا هست یانه . دقت کن بافر برنامه 512 تاست اگه مقداری که می خونی بعد از 512 از صفر شروع شد، غلط ! ! باید بشه 513 ...520 . اگه این درست باشه مشکلی نداره. با 2-3 نوع مموری تست بگیر .

درباره فایل هم بگم تقریبا هر چی داکیومنت تو نت هست درباره انواع مموری کارت من خوندم و دارم . اون لایببری n96 رو هم اگه راه انداختی خوشحال می شم داشته باشم . میشه خیلی قابلیت روش اضافه کرد . منتظر پاسخ شما هستم . با تشکر..

esi_52000
04-01-2012, 23:56
سلام دوست عزیز . خوب ما هم که از اول می دونستیم باید با تقسیم ولتاژ به میکرو وصلش کنیم ! چه کار جدیدی انجام دادی ؟ اصلا از کجا میدونی راه افتاده ؟؟! این لایببری یه مشکلی داره که آدمو گول می زنه ! چون بافر نرم افزاری داره اگه بنویسی توی کارت اونوقت مموری رو ور داری وبخونی بهت درست نشون میده در صورتی که مموری داخل نبوده اصلا ! آیا با لایببری FAT هم کار کردی ؟ لطفا بگو ولتاژ رو هم با چی ساختی ( مثلا با lf33 ) . مرسی

sigma جان سلام.تمام اوامرتون تک به تک اجرا شد.همه چی کامل داره کار میکنه.امروز چنتا رکورد کامل هم نوشتم و توش ذخیره کردم و خیلی راحت هر کدوم رو که خواستم دوباره بازیابی کردم.البته بگم که این لایبری فقط داره واسه sd های زیر 1Gکار میکنه و واسه بالاتر درست کار نمیکنه.امروز با چنتا 2G امتحان کردم.با همون تله گذاری توی قسمت MMCSD_INIT()داره تا آخرش میره اما آخرش دیگه 0 رو بر نمی گردونه تا کار کامل بشه.اما زیر 1G عالی جواب داده.
الان دارم لایبری LCD N96 توی یه پست جدا میزارم.داداش زود جواب بده منتظرتم

sigma-mx
05-01-2012, 00:01
بسیار خوب . فقط الان داری با fat کار می کنی یا بدون fat ؟

esi_52000
05-01-2012, 13:56
بسیار خوب . فقط الان داری با fat کار می کنی یا بدون fat ؟

سلام مجدد.حاج sigma .راستش من هیچ اطلاعاتی در مورد نحوی کار کردن fat ندارم .ممکنه بگی خودش لایبری داره اما وقتی ندونی چطور کار میکنه بدرد نمیخوره.داداش شما مطلبی نداری که بتونم ازش استفاده کنم.ممنون میشم اگه یه راهنمایی بدی.راستش قصدم اینه که عکس رو از طریق کامپیوتر بریزم روی مموری و با میکرو و همون lcdچینی بازش کنم.

sigma-mx
05-01-2012, 14:30
سلام دوست عزیز. اگه بخوام خیلی ساده fat رو تعریف کنم ، fat در واقع یک نوع چینش خاص و قرار دادی اطلاعات در خونه های حافظه است. که این سیستم fat رو شرکت microsoft ابتدا ابتکار کرد. این روش چینش خاص اطلاعات به ما در دسترسی به اونها کمک بسیاری میکنه . مثلا فرض کن محتوای 100 تا فایل رو پشت سر هم بریزی رو مموری کارت . بعد میخوای فایل 45 رو بخونی ، چی کار می کنی ؟! راه درستش اینه که آدرس شروع فایل ، اندازه فایل ( رشتهای از کارکترها) و... رو بدونی . در واقع fat میاد یه جدول که تمام آدرس فایلها داخلش هست رو ابتدای دیسک ایجاد می کنه و سپس اگر بخوای محتوای یه فایل رو بخونی یا بنویسی اول از توی جدول نگاه می کنی آدرسشو و به همون آدرس میری و کارتو انجام میدی. بسیار خلاصه گفتم ولی هر جا مشکل داشتی بگو .
در تکمیل حرفهای بالا بگم که فرمت های ساختاری بسیاری توسط همین microsoft و شرکت های دیگه بوجود آمد که از لحاظ قراردادها کمی با هم فرق دارن مثلا : FAT - FAT32 - exFAT - NTFS - ext3 - ext4,...
بعد از FAT اولیه که قادر بود تنها 12 بیت حافظه رو آدرسدهی کنه اومدن به ترتیب اون رو به 16 - 32 و 64 بیت آدرسدهی ارتقا دادند.

خوب حالا که تا اینجا پیش رفتی باقیش هم برو تا پروژت کامل بشه. ccs یک کتابخونه مشترک برای fat16 و fat32 داره که میتونی از یک کدومشون استفاده کنی .( fat16 تا 2 گیگ پارتیشن رو بیشتر پشتیبانی نمی کنه ). ما که فعلا با مموری های زیر 1 گیگ کار می کنیم . کتابخونه fat.c رو یه تست کن ببین میتونی راش بندازی ؟! مثال درباره fat هم داره ، ولی خیلی مفصله . دیگه اینجا نباید از mmcsd_init استفاده کنی چون این کتابخانه تمام توابع mmcsd رو داخلش بکار می گیره . باید fat_init بکار ببری. بعد مثلا یه فایل درست کنی با یه اسمی. حتما مموری رو قبلش با کامپیوتر فرمت کن بصورت fat ، سپس از قسمت fat16 کتابخونه استفاده کن . اولای کتابخونه در خط هست که یکی روباید غیر فعال کنی :
#Define Fat16
#Define Fat32////

موفق باشی

esi_52000
05-01-2012, 14:58
داداش ممنون میرم تست کنم ببینم چی میشه.
راستی یه لایبری توپ واسه کیبورد کامپیوتر گذاشتم
ببینیش بد نیست داداشی