PDA

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



pswin
04-05-2012, 20:26
سلام دوستان

من براي ذخيره اطلاعات مي خواستم از eeprom خارجي استفاده كنم كه يكي از دوستان بهم گفت ميشه از حافظه فلش خود ميكرو استفاده كرد. منتها اين دوست من با سري اتمل كار مي كرد. ميشه داخل حافظه فلش ميكرو اطلاعات و ذخيره كرد.؟ و اين كار تا چه حد درست هست؟ (منظورم اينه كه توي طولاني مدت باعث سوختن فلش ميكرو ميشه يا نه؟)

Doloop
04-05-2012, 20:48
خوب مهندس بستگی داره که حجم اطلاعاتت چقدر باشه
آخه معمولا حافظه فلش میکرو ها محدوده مثلا نهایتش دیگه 512 کیلو بایت یا 1 مگابایته

medadnoki
04-05-2012, 20:59
(منظورم اينه كه توي طولاني مدت باعث سوختن فلش ميكرو ميشه يا نه؟)
نه ، آی‏سی نمیسوزه
در ضمن اندازه حافظه فلش میکروهای مختلف با هم فرق دارد ، شما باید آی‏سی رو مشخص کنید.
فرمایش دوستمان ، do...loop عزیز هم کاملا درسته

pswin
04-05-2012, 21:27
سلام
من ميخواستم از يه eeprom، 256 كيلو بايتي استفاده كنم. كه با توجه به ميكروي من (1768) و اندازه كد و داده من (83 كيلو) جاي خالي زيادي دارم. اما چه شكلي ميتونم داخل فلش بنويسم؟ (به وسيله كد برنامه نه پروگرامر و ... )

Aghaeifar
04-05-2012, 21:28
اگه منظورتون این هست یه متغیر دارید که هی تغییر می کنه و می خواهید آخرین مقداری که در داخل اون ریختید رو بعد از روشن خاموش شدن میکرو هنوز در خودش داشته باشه، با حافظه ی فلش نمیشه و با eeprom میشه.

pswin
04-05-2012, 22:11
اگه منظورتون این هست یه متغیر دارید که هی تغییر می کنه و می خواهید آخرین مقداری که در داخل اون ریختید رو بعد از روشن خاموش شدن میکرو هنوز در خودش داشته باشه، با حافظه ی فلش نمیشه و با eeprom میشه.

بله دقيقا منظورم همينه
اگر بوت لودر ميتونه توي فلش بنويسه. چرا ما نتونيم اينكار رو بكنيم. حيق نيست اين همه حافظه آزاد داشته باشي استفاده نكني؟

sigma-mx
04-05-2012, 22:47
در جواب فرمایشات دوستان باید بگم که از فلش میکرو میشه بعنوان eeprom استفاده کرد . منتها بشرطی که منظور ، نوشتن مداوم مانند استفاده متغیر در ram نباشه . چون نوشتن در ram محدودیت نداره . ولی نوشتن در eeprom و flash که از یک خانواده هستند همونطور که همه میدونن محدودیت نوشتن وجود داره . و بعد از تعداد سیکلی که کارخانه گفته اگه نوشته بشه ، اون سلول حافظه دیگه توش هیچی write نمیشه ! بهمین دلیل اگه یه میکرو رو خیلی دفعه پروگرام کنیم و تعداد سیکل نوشتن فلشش تموم بشه ، از اون به بعد میکرو رو که پروگرام میکنیم ، میکرو پروگرام میشه ولی کار نمیکنه .. در واقع هیچی روش نوشته نشده .. تو مرحله verify هم ارور میده .. تعداد سیکل نوشتن فلش ها معمولا خیلی کمتر از فلش هست . مثلا یک میلیون بار در برابر ده هزار بار .. میکرو هایی که امکان نوشتن در حافظه کد (فلش) رو میدهند میشه از این فضا بعنوان eeprom مجازی استفاده کرد .
یه مثال اگه بخوام بزنم : حتما اسم بوت لودر رو شنیدید . بوت لودر یه برنامه کوچک هست که به کاربر امکان میده برنامه رو بجای پروگرام کردن از امکانات محیطی مثل ارتباط سریال رو فلش میکرو بریزه . اینکار رو با همین دستورات نوشتن در فلش انجام میده دیگه !
ضمنا در مورد محدودیت نوشتن در فلش و eeprom بگم که این سیکل مربوط به هر خانه یا سلول میشه و یک عدد تقریبی هست که با تست های کارخانه سازنده مشخص شده . بنابر این واضحه که برای بالا بردن عمر مثلا یه eeprom میتونیم با الگوریتم جابجا کردن محل نوشتن متغیر تعداد سیکل نوشتن حافظه رو صد ها و هزار ها برابر کنیم !!!!!
در میکرو هایی مثل آرم که eeprom معمولا در اونها قرار داده نشده ، اگر نیاز به ذخیره متغیر باشه از تکنیک eeprom مجازی استفاده میکنند . روش کار به این صورته که یک لایببری حاوی یک الگوریتم جابجایی وجود داره که برای متغیر های شما یک ID نسبت میده مثلا شما مقدار 0xAA رو با یک ID بنام 0x1234 ذخیره میکنید . همینطور برای متغیر های دیگر با ID های مختلف .... نکته قابل توجه اینه که با تغییر دادن مقدار این متغیر ، همون خانه پاک نمیشه و محتوای جدید داخلش قرار بگیره بلکه مقدار جدید به همراه ID در خانه بعدی نوشته میشه ( حل مشکل محدودیت تعداد نوشتن در فلش) و برای خواندن هم طبق یک جدول آخرین محتوای یک ID برگردانده میشه ...
معمولا در ابتدا باید فضای مورد تخصیص برای eeprom مجازی مشخص بشه تا عملیات در اون فضا انجام بشه . این فضا هم معمولا فضای خالی و بلا استفاده فلش میکروی ما هست که داره بی خودی خاک میخوره .....

یا حق
:0013:

pswin
05-05-2012, 00:01
مي تونيد يه مثال عملي بزنيد؟

فكر كنم از eeprom خارجي استفاده كنم بردم stableتر بشه.

sigma-mx
05-05-2012, 00:17
بله یقینا بهتره ..
اینا رو جهت اطلاع گفتم شاید بدرد کسی خورد :0013:

Aghaeifar
05-05-2012, 00:54
@sigma-mx (You can see links before reply)
عالی بود نمی دونستم. کاش یه مثالی باشه که نمونه ی کاربردی اش رو هم در جایی مثل کیل بشه دید.

sigma-mx
05-05-2012, 01:09
برای stm32 من لایببریشو پیدا کردم و عملی تست کردم .
تو نت هم میتونید عبارت eeprom emulation رو سرچ کنید .

برای میکروی های st ( پکیج application note مربوط به eeprom به همراه مثال و پروژه آماده برای چند کامپایلر) :


You can see links before reply

You can see links before reply

agape
05-05-2012, 09:28
سلام دوست گرامی !
نکته خیلی خوبی بود ! تاحالا بهش دقت نکرده بودم !
ولی اینطور که من سرچ کردم این قابلیت فقط در خانواده های خاصی فعال هست و البته در محدوده خاصی از فلش قابل پیاده یازی هست.
ولی در کل چیز جالبیه

itpeng
05-05-2012, 15:47
سلام

برا نوشتن در فلش میکرو میشه یه sample برا lpc1768 بذارید. user manual رو خوندم سر در نیاوردم :D من در واقع می خام صدا ذخیره کنم تو فلش.

مرسی

MMBMMB20
14-10-2013, 15:07
دوستان و عزیزان دل R & D
آدرس فایل های راهنمای eeprom emulation برای stm32
آدرس فایل های راهنمای eeprom emulation نوشتن در فلش ميكرو

意法半导体STM32/STM8技术社区 AN2594.zip (You can see links before reply)
یا علی.....

salamlora1
26-10-2013, 16:58
با سلام منم به شدت درگیر lpc1768 هستم تا به حال به این نتیجه رسیدم که خود میکرو یه روالی به اسم IAP داره اما هنوز نتونستم باهاش کار کنم اگه کسی راهی بلده مارو هم راهنمایی کنه حتی اگه LPC2138 هم باشه کار مارو راه میندازه میخوان 100 int توش تعریف کنم بدون اینکه دوبره تغییرشون بدم همین و بعدا اونهارو بخونم ممنون میشم راهنمایی کنید .