سلام دوستان! بعد از یک مدت مدید که درگیر سربازی و چند تا مشکل بزرگتر از سربازی بودم برگشتم تا دوباره یک مطلب جالب رو در مورد راه اندازی ال سی دی نوکیا به اشتراک بگذارم. البته هنوز هم سربازم:-D دو بار میرفتم سربازی بهتر بود این خروار اضافه را چه کنم!!!
راه اندازی ال سی دی نوکیا
خب بریم سر اصل مطلب!
چند سال قبل به دنبال یک LCD بودیم که هم گرافیکی باشه هم اندازش خوب باشه و مهمتر از همه قیمتش خوب باشه و خیلی خیلی مهمتر از همه هم اینکه نازک باشه. به همین منوال با ال سی دی nokia1202 آشنا شدیم این LCD با درایور STE2007 کنترل میشه این ال سی دی به صورت تک رنگ و ابعاد پیکسلی 96*68 پیکسل هست. اینو توی پاساژ چهارسو از بازرگانی رضا طبقه دوم خریدم فکر میکنم 2000 تومن ولی با تعداد بالااین ال سی دی رو با انواع میکروکنترلر راه اندازی کردیم و کلی کتابخونه رو گسترش دادیم براش تا رسم نمودار های گرافیکی و …
به طور پیشفرض کتابخونه به صورتی نوشته شده که سرعت خوبی رو ارائه کنه و قابل استفاده باشه با تمام پینهای میکروکنترلر بشه ازش استفاده کرد من اینجا یک آموزش میزارم ولی یک توضیحاتم قرار میدم که چجوری این کتابخونه رو برای میکرو کنترلر های مختلف پورت کنیم.
اما توی پورت کردن این کتابخونه یک مشکل داریم اونم مقدار رم مصرفی هست. چون ال سی دی این گوشی قابلیت خوندن اطلاعات از روی رم خودشو به ما نمیده، ما مجبوریم یک رم در همین اندازه در خود میکروکنترلر برای ذخیره نسخه دوم و در دسترس اطلاعاتی که روی نمایشگر گذاشته شدهاند استفاده کنیم.
پینهای خروجی
خب میریم سراغ دیتاششیت ال سی دی خط به خط مطالعه میکنیم تا نکتهای جا نندازیم، ولیکن اول میریم سراغ ترتیب پینهای خروجی ماژول .LCD
این عکس ترتیب پینهای خروجی رو نشون میده:
این پینها به این ترتیب کار میکنن:
1- (not used) بدون استفاده این پین به جایی متصل نمیشه و فقط نگه دارنده هست برای فلت ال سی دی.
2- (reset) از این پین برای ریست کردن کنترلر STE2007 که داخل ال سی دی قرار داره استفاده میشه این پین باید پول آپ باشه و با 0 شدنش کنترلر LCD ریست میشه.
3- این پین برای انتخاب STE2007 استفاده میشه این پین باید قبل از ارسال دیتا به رم ال سی دی به وضعیت فعال یعنی 0 در بیاد و در حالت معمولی 1 باشه که کنترلر دیتایی دریافت نمیکنه. توضیحات بیشتر رو در نمودار میبینیم.
4- (GND) این پین هم تغذیه منفی کنترلر و دیسپلای هستش.
5- (MOSI) این پین معمولا در ارتباط SPI استفاده میشه و مخفف (Master Out Slave In ) هستش این پین دیتا های ورودی ما به کنترلر هستش و تمام دیتا هایی که قراره به STE2007 منتقل بشن از این پین نتقل میشن.
6- (SCK) در این پین برای سینک کردن بیت های دیتا بین میکرو کنترلر استفاده میشه یعنی سرعت انتقال دیتا و بیت های MOSI رو مشخص میکنه کلا الگورتیم اینه که STE2007 روی لبه بالا رونده پالس در این پایه وضعیت MOSI رو به عنوان یک بیت از دیتا برمیداره.
7- (3.3V) تغذیه LCD که حداکثر 3.3V میتونه باشه.
8- (3.3V) تغذیه LCD که حداکثر 3.3V میتونه باشه.
9- (GND) این پین هم تغذیه منفی کنترلر و دیسپلای هستش.
10- (-LED) این پین هم تغذیه منفی بکلایت LCD هستش.
11- (+LED) این پین هم تغذیه مثبت بکلایت LCD هستش.
12- (not used) بدون استفاده این پین به جایی متصل نمیشه و فقط نگه دارنده هست برای فلت ال سی دی.
دیتاشیت LCD
خب برای راه اندازی ال سی دی نوکیا 1202 میریم سراغ دیتاشیت درایور این LCD یعنی STE2007 که میتونید از اینجا دانلود کنید.
در شکل بالا نحوه انتقال دیتاها از میکروکنترلر به رم STE2007 رو میبینیم که پایه CS با 1 شدنش پایان هر 9 بیت کامند رو ارسال میکنه. (صفحه 21 دیتاشیت)
حالا تکلیف سایر پینها چیه؟
mosi که برای انتقال دیتا هستش و SCK هم برای سینک کردن دیتا طبق شکل بالا الآن برای انتقال دیتا باید اینجوری عمل کنیم
وضعیت sck 0 میشه (به طوری معمول 0 باید باشه برای افزایش سرعت انتقال دیتا موقع راه اندازی اولیه (اینیشیال) ال سی دی این وضعیت رو مقدار میدیم که از اجرای اون توی هر سیکل جلوگیری بشه
وضعیت mosi رو مساوی قرار بدیم با بیتی که از دیتا قراره ارسال بشه.
وضعیت sck 1 میشه برای اینکه اسلیو مقدار این بیت دیتا رو از mosi بخونه
وضعیت sck 0 میشه (آماده میشه برای انتقال سینک و بیت بعدی از دیتا)
با آرزوی موفقت برای تمام خوانندگان این مطلب!
سلام. خسته نباشید. مثل همیشه عالی! اگه میشه آموزش گار با ال سی دی های رنگی نوکیا رو آن م آموزش بدید. مثل همون n96 که داخل کمنتا یکم بهش اشاره شده بود یا سری E یا مثلا نوکیا ۳۲۵۰. من خیلی دنبال دیتاشیت ال سی دی ۳۲۵۰ گشتم اما متاسفانه پیدا نکردم. هیچ اسم یا پارت نامبری هم روی ال سی دی ندیدم. اما کسایی بودن که ال سی های ۲۴ پین رو به راحتی به f103vet6 وصل کردن. اگه شما دیتاشیت این ال سی دی هارو هم دارید و میتونید به اشتراک بذارید ممنون میشم. تشکر.
سلام وعرض ادب خدمت شماجالب بودواموزنده.
ال سی دی های دیگه ام توبرنامه اموزشی تون هست یاخیر؟
ممنون
چندین مدل راه انداختم از نوکیا ها رو ولی فعلا همین مدل به صورت اوپن سورس منتشر میشه ولی احتمالا بعدی نوکیا 103 باشه شاید تا اسفند ماه
سلام
ممنون برای این آموزش
قسمت دوم آموزش کی تو سایت بارگذاری می شه ؟
حداکثر 2 هفته دیگه درگیری به علت سربازی دارم وقتم کمه
سلام بسیار عالی ممنون ازت مهندس زمانی عزیز..
کمی نحوه برنامه نویسی رو با لحن ساده تر و واضح تر ( قدم به قدم ) ارائه بده یجوری احساس کردم چند خط اخر گم شدم
تو روند توضیحات به زبان C افتادیم دست ام باز میشه اینجوری حق مطلب پیاده نمیشه :))) انشالله اون موقع میرسیم به اینکه هر خط چرا اینجوریه چرا باید اینجوری باشه و از کجا به این نتیجه رسیدیم 🙂
سلام خسته نباشید. راه اندازیش از n96 باید راحت باشه
درسته؟؟؟
این الگوریتمش با N96 خیلی متفاوت هستش و مهم کوچیک و تر از N96 هست حتی تک رنگ هم هست خیلی تفاوت دارن و این خیلی ساده تره …
هرکدام متفاوته . بستگی به توانایی افرد سختی موضوعات مشخص میشه
سلام خسته نباشید
ساختار این lcd با 1661 نوکیا برابره؟
فرمت ارسال دیتا فرق میکنه ولی اینجوری از شواهد پیداس ترتیب پینها یکی هستش البته با nokia 103 هم ترتیب پینهای برابری داره