PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : راه اندازی ناند فلش و چطوری میشه ناند فلش رو پروگرام کرد؟



mahdi8866
18-01-2013, 16:45
سلام به همه
اول بگم چرا اینو میپرسم وبه خاطر چی ناند فلش رو میخوام پروگرام کنم( البته همین ناند فلشی که داخل فروشگاه هست K9F2G08U0B )
من با stm32f103zct6 اومدم gui رو راه اندازی کردم همه چی درسته حالا میخوام خودم یسری منو ها وغیره رو با gui بسازم و کد نویسی کنم تا اینجا همه چی خوبه متاسفانه حافظه فلش این میکرو 256 کیلوبایته ومن هم میخوام یسری منوهای گسترده که قالبشون عکس هست رو داخل میکرو بریزم اما مشکل فضای حافظه دارم
حالا میخوام این حافظه میکرو رو ارتقا بدم و نمیدونم بهترین راه کدومه ومیدونم که باید از نور فلش یا ناند فلش و اس پی ای فلش استفاده کرد اگه اشتباه نکرده باشم اگه راه بهتری میدونید بگید در ضمن از mmc و هم کلاسیهاش نمیخام استفاده کنم که سرعتشون پایینه
حالا من نمیدونم که این ناند فلش رو چطوری پروگرم میکنن ایا تنها خود ناند فلش رو پروگرم میکنن یا باید ناند فلش رو به میکرو وصل کرد وبا پروگرام کردن میکرو خودش اتوماتیک از میکرو به ناند فلش ریخته میشه (فایل hex یا bin رو میکم) ؟
هر کی اطلاعاتی در مورد پروگرام کردن ناند فلش داره بگه که خدا کارشو راه بندازه
و این هم بگم که به غیر از gui بشه مثلا یه برنامه بدون سیستم عامل رو هم رو ی ناند فلش ریخت
و در مورد نور فلش هم یه توضیحی بدید و spi فلش فروشگاه به شماره at45d161 هم ایا پروگرامش چجوریه؟
ویکم هم در مورد ادرس دهی در کیل برای شروع خوندن از ناند فلش رو هم بگید ممنون میشم
با تشکر از همه دوستان
اگه هر کسی اطلاعاتی داره بذاره که این تاپیک یه منبع خوبی برای استفاده از حافظه های خارجی باشه

roohlla
18-01-2013, 17:48
شما چه نوع gui رو راه اندازی کردی ؟ خودتون اون رو نوشتید یا از uc-gui یا یا emwin استفاده کردید ؟

mahdi8866
18-01-2013, 18:19
نه همون uc/gui یا emwin
منظور من فقط اینا نیست مثلا بتونم یه برنامه کوچیک رو تو ناند فلش بریزی واز ناند فلش اجرا کنی
یا مثلا بیای عکس رو البته با فرمت bmp رو به c تبدیل کنی و بریزی تو ناند فلش و هر موقع خواستی بیای بخونیش اما من اصلا اطلاعاتی ندارم که چطوری میشه که همین عکسها که به کد c تبدیل شدن رو تو ناند فلش ریخت

roohlla
18-01-2013, 18:30
کیل یه مجوعه کتاب خونه داره به نام rlarm و بخشی از این کتبخونه rlflash نام داره که میشه با اون اون کاری که شما میخوای رو انجام داد . شما اگه ucgui رو راه اندازی کردید اونو توی سایت قرار بدید تا ما هم استفاده کنیم . البته اگه مایل بودید .

mahdi8866
18-01-2013, 22:08
ممنون ولی من میگم چطور میتونم یک فایل رو بریزم داخل ناند فلش بعدش بیام با دستور read بخونیم منظور
من write با خود میکرو نیست ببینید من میخوام مثلا 20 تا عکس به اندازه 320 در 240 پیکسل رو با برنامه کانوکتور خود emwin به کد c تبدیل کنم پس با این حساب میشه 20 تا کد c که مثلا هر کد ظرفیتش میشه 100 کیلو بایت خب پس 20 تاش میشه 2 مگابایت که تو حافظه خود میکرو جا نمیشه حالا میخوام این 20 تا کد c رو بریزم تو ناند فلش یا نور فلش یا spi فلش بعد تو برنامه خود میکرو بیام 20 تا منو بسازم و هر یک از اون 20 تا کد c که در اصل عکسها هستند رو نمایش بدم (یا از ناند فلش بخونم)
حالا کسی میتونه راهنمایی کنه
و یه چیز دیگه چه راهی هست که کل کد برنامه رو ریخت تو یه حافظه خارجی مثلا نور فلش بعد به میکرو فهموند که از حافظه خود میکرو استفاده نکنه و از اون نور فلش استفاده کنه بجای حافظه خود میکرو؟
بالاخره یه راهی بذارید که فرض کنید حافظه میکرو 512 کیلو بایته من یه برنامه نوشتم که 1100 کیلو بایته و فرض کنید که میکرویی با این حافظه نیست حالا من چیکار کنم که با یه حافظه خارجی بتونم 1100کیلو بایت یا بیشتر از کد بنویسم واجراش کنم؟
من ucgui رو از سایتی که تو پست اول تاپیک نمونه برنامه هایی برای خانواده stm32 که اقای abdollahi گذاشته بودن گرفتم
فکر کنم سایتش این بود
You can see links before reply

1nafar
18-01-2013, 23:57
سلام
معمولا میکروکنترلر های که میشه بهشون nand flash متصل کرد ، دارای پایه های مخصوص این کار هستند ( مثلا پایه های nandcs و nandoe و ... در میکروکنترلر at91sam7sxxx ) که میشه با مقدار دهی رجستر های اونا عملیات خوندن یا نوشتن نند فلش رو انجام داد . این پایه ها مستقیما به پایه های nand flash متصل میشن .

ایسی نند فلش معرفی شده دارای یه سری پایه هست :
I/o0 ~ i/o7 : پایه های داده ، دستور یا آدرس که نقش اونا رو سه پایه ی بعدی مشخص میکنه .
Cle : با یک شدن این پایه ، پایه های بالا به عنوان ورودی های دستور پیکربندی میشن .
Ale : با یک شدن این پایه ، پایه های بالا به عنوان ورودی ادرس پیکربندی میشن .
Re و we : با مقدار دهی این دو پایه میشه داده رو از نند فلش خوند یا بر روی اون ذخیره کرد .
و...


توی دیتاشیت قطعه نحوه ی عمل کرد اون به صورت کامل توصیح داده شده ، اما در کل نحوه ی عمل کرد نند فلش به این صورت هست که :
ابتدا پایه ی cle یک میشه و شما مطابق جدول یک توی دیتاشیت دستور مورد نظر خودتون ( خوندن ، نوشتن ، کپی کردن و... ) رو برای اون ارسال میکنید .
در مرحله ی بعدی پایه ی ale یک میشه و شما آدرسی رو که قصد دارید در اون بنویسید یا از اون بخونید رو به قطعه توسط خطوط داده ارسال می کنید و نهایت با انجام دادن کار های که توی دیتاشیت گفته شده داده ی شما رو قطعه قرار میگیره یا از اون خونده میشه :0013:






و معمولا از طرف شرکت سازنده برای ارتباط حافظه با این میکروکنترلر و برنامه ریزی اونا نرم افزار های ارائه میشه ( مثل sam-ba برای میکروکنترلر های arm اتمل ) که این نرم افزار میتونه با استفاده از پورت های کامپیوتر به میکروکنترلر متصل بشه و برنامه ی کاربر رو از طریق میکروکنترلر به حافظه منتقل کنه .
من با سری st کار نکردم اما چنین نرم افزار باید برای اون وجود داشته باشه .

mahdi8866
19-01-2013, 02:24
سلام بسیار ممنونم ازتون جناب 1nafar
عالی بود البته به مسائل بالایی یخورده اشنا بودم میکرویی که گفتم کاملا حافظه خارجی رو از قبیل sdram,sram, nor flash , nand flash , lcd interface 8080 ,6080 رو پشتیبانی و پایه های ارتباط دهی که بالا گفتید رو البته دیتا باس 16 بیتی و ادرس 23 تایی وپایه های کنترلی خوندن ونوشتن رو داره
پس با این حساب باید این طوری باشه که طبق گفته شما حافظه نور فلش یا ناند فلش باید بواسطه میکرو پروگرام بشه یعنی پورت از حالا usb یا rs232 به میکرو (محل بوت لودر) وصل بشه مثل پروگرام کردن عادی میکرو فقط فرقش اینه که باید ناند فلش با همون پایه های گفته شده به میکرو وصل باشه تا میکرو واسطه بین کامپیوتر یا (samba) و ناند فلش بشه وبرنامه به داخل ناند فلش ریخته بشه اگه اشتباه نگفته باشم؟

4 تا سئوال دارم
1- samba تداخلی بین حافظه میکرو و ناند فلش ایجاد نمیکنه؟ یعنی مشخص میشه کرد که ایا مثلا هگز رو حافظه میکرو بریزه یا ناند فلش؟
2- اگه برنامه رو ناند فلش ریخته بشه مثل حالت عادی یعنی مثل برنامه ریخته شده در حافظه خود میکرو کار میکنه؟( حالت نرمال رو میگم )و سرعت اجرای دستورات هم در ناند فلش با سرعت اجرای دستور در حافظه خود میکرو یکیه؟
3- اینکه ایا ناندفلش ها اینطوری هستند که مثلا هم مثل قضیه بالا میشه پروگرامشون کردو از میکرو خوندشون و هم میشه با خود میکرو هم نوشت داخلشون و هم خوند؟ درسته ؟

4- اینکه میشه مثلا یه برنامه راه انداز السیدی رو نوشتیم و کد هگزش رو که قراره بریزیم رو حافظه خود میکرو
رو بیایم بریزیم رو ناند فلش وکد از ناند فلش اجرابشه (در اصل اگه ظرفیت ناند فلش باشه 4 مگا بایت بشه یه کد هگز با ظرفیت مثلا 2 مگا بایت که یه برنامه سنگین هست رو بریزیم رو ناند فلش واجرا بشه)؟انگار فرض کنیم که میکرومون یه حافظه 4 مگابایتی داره ایا شدنیه دیگه؟
ومیکرو st برنامه flash loader داره که همون مثل samba اتمل میمونه که باهاش میشه میکرو رو پروگرام کرد
ببخشید طولانی شد

sadmonew
19-01-2013, 02:53
سلام
مهندس برای راه اندازی ناند فلش بهترین راه استفاده از قابلیت fsmc تو میکرو هستش که سرعت مناسبی رو هم فراهم میکنه.
اگه از کتابخونه cmsis استفاده میکنید حتما این مثال هارو نگاه کنید.
عکسو ببینید

mahdi8866
19-01-2013, 14:09
سلام خیلی ممنون
ببخشید این مثال ها رو از کجا دانلود کردید ایا مثالهای خود st درسایت st.com هستش؟
و برای پروگرام ناند فلش قضیه بالا رو که گفتم درسته؟

mahdi8866
19-01-2013, 14:23
سلام من مثال ها رو پیدا کردم وبررسی کردم اما منظور من این نیست من میگم یه حافظه باشه که کد هگزی قرار تو حافظه میکرو ریخته بشه رو بریزیم تو حافظه خارجی واز حافظه خارجی اجرا بشه چون حجم کد هگز یا برنامه بالاست و تو حافظه میکرو جا نمیشه ایا راهی هست؟
هیچ فروشگاهی هم میکرو یی مثل stm32f417 که حداقل حافظه اش 1مگا بایت و حداکثرش 2 مگابایته رو برای فروش نمیارن
من میگم ایا میشه با ناند فلش تو فروشگاه ویا نور فلش کاری که اون بالا گفتم رو انجام داد؟ مشکل من کمبود فضای حافظه است
البته شدنش که میدونم میشه اگه شما تو گوشیهارو نگاه کنید یه cpu یا میکرو دارن و کنارش یک ناند فلش هست که اگه دقت کنید تو گوشیها یه حافظه خود گوشی داریم که معمولا بین 32 مگ تا 256 مگ هست این حافظه همون ناند فلش هست و موقعی که گوشیتونو برای فلش زدن پیش تعمیر کار میبری با یه باکس که در اصل همون پروگرامر خودمون میشه میاد 1 تا 3 فایل رو بستگی به حال گوشی داره فلش میزنه اون 3تا فایل اولیش فایل main یا mcu هستش که بسته به نوع گوشی از 1 مگ تا 100 مگ حجمش هست و دومین فایل ppm یا pm یا ls یا فارسیشو بگم برای نوع زبان و غیره هستش که حجم این فایل هم چند مگا بیت هستش و سومین فایل که تو بعضی گوشیها شاملش میشن واختیاری هستش فایل patch وابزار الات مثل رنگ منوها نو ع تم و غیره هستش که بیشتر در گوشیهای سونی اریکسون هستش و فایل های دیگه ای هم هست مثل pm کد های انتن دهی وغیره حالا این 2 فایل اولیه رو با هم انتخاب کرده و تو گوشی میریزن ویا فلش میزنن پس خود میکرو یا cpu موبایل چنین حافظه داخلی رو ندارن و کدهای گفته شده با حجم مثلا 60 مگابایت در گوشی n70 در ناند فلش ریخته واجرا میشه چون برای مثال میکرو n70 یه نوع مدل از میکرو های omap هستش وچنین فضایی رو نداره البته من خودم چند سال تعمیر کار موبایل هم سخت افزار و هم نرم افزار بودم وبرای مثال باکس jaf که گوشی های نوکیا رو فلش میزنه رو باز کردم چون کار نمیکرد ومشکلش هم از کریستالش بود میدونید اون موقع ارزونی این باکس رو من خریدم 350 هزار تومن وموقعی که بازش کردم تا درستش کنم توش فقط چه میکرویی بود؟ فقط یک atmega128 بود که الان تو این اوضاع ارز 10 تومنه خلاصه اینکه اینطوریه دیگه وکاریش هم نمیشه کرد
پس با این حساب شدنیه فقط کسی اگه اطلعاتی داره بگه اجرش با خدا

sadmonew
19-01-2013, 14:23
سلام
مهندس این مثال هارو از سایت ST دان کردم.
تو این (You can see links before reply) صفحه و داخل تب design support عبارت "STM32F10x standard peripheral library" پیدا کنید.
البته لینک دانلود رو هم قرار میدم.
You can see links before reply

mahdi8866
19-01-2013, 18:13
سلام ممنون از ادرس سایت جناب sadmonew (You can see links before reply)
البته من قبلا دان لود کرده بودم ودیدم فقط میخواستم بدونم بغیر از این مثالها که با کد نویسی میشه خوند ونوشت میشه یه فایل با پروگرام کردن داخل ناند فلش ریخت
من تو یکی از تاپیک های بخش atmel یا at91samx دیدم که از ناند فلشها گفته بودید
اینطور گفته بودید

خوب با يكي از مثال هاي خود كيل توضيح ميدم.
1- اول از همه پروژه اي كه تو مسير زير مشخص كردم رو باز كنيد.
C:\Keil4.22a\ARM\Boards\Atmel\AT91SAM9260-EK\Blinky
2- تو منوي كشويي "Select Target" گزينه "SAM9260 Ext SDRAM" رو انتخاب كنيد.
3- پروژه رو كامپايل كنيد.
4- فايل هگز يا Bin رو با استفاده از SAM-BA رو حافظه ناند بردتون پرورگرم كنيد.
5- برد رو ريست كنيد و تست كنيد بايد LED هاي رو برتون شروع به چشمك زدن كنن.

شماره 4 هدف من هست که یه برنامه ای رو بریزم رو حافظه ناند و اجرابشه حالا اگه این مثال برای stm32 باشه چطوری و با چی باید بریزم رو ناند فلش؟
مشکل من فقط همینه

mahdi8866
19-01-2013, 19:53
منظور دقیق من اینه که بجای حافظه فلش خود میکرو , حافظه ناند فلش یا نور فلش بوت (boot) بشه و من کد hex رو بریزم تو ناند واز ناند برنامه اجرا بشه
دیگه از این واضحتر نمیتونم بگم

mahdi8866
20-01-2013, 13:46
سلام کسی با ناند فلش ها و نور فلش ها کار نکرده

behnam6500
20-05-2013, 23:45
دوستان اگه شماتیکی برای کار با این نند فلش K9F2G08U0B برای avr و lpc1768 دارید اینجا بزارید....

ممنونم

asa1365
06-12-2014, 14:10
برای پروسسورها روش در سایت ویکی ایران میکرو گفته شده که چطوری یه فایل بوتلودر یا سیستم عامل رو روی حافظه nand flash berizid
می تونید کدهای مربوط به عکس رو داخل یه میکرو sd ذخیره کنید واز اون بخونید یا میتونید از یک سیستم عامل rtos استفاده کنید واون رو روی nand flash بریزد