اطلاعیه

Collapse
No announcement yet.

برد آموزشی ARM مدل LPC2138

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    برد آموزشی ARM مدل LPC2138

    با سلام
    به دلیل استقبال از برد مدار چاپی در کارگاه بر آن شدم تا برنامه ها و نقشه های این برد را در این سایت قرار بدهم

    نقشه ی شماتیک این برد را در صورت استقبال قرار می دهم.

    تاپیک های گذشته ی من:
    آموزش DSP:
    http://www.eca.ir/forum2/index.php?topic=91940

    آموزش رسم مدار چاپی با Allegro از شرکت Cadence:
    http://www.eca.ir/forum2/index.php?topic=79877
    { خلاف قوانین - پاک شد }
    برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
    آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
    آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

    #2
    پاسخ : برد آموزشی ARM مدل LPC2138

    [color=rgb(16, 26, 15)]برد آموزشی مخصوص مدل LPC2138 را در شکل زیر مشاهده می کنید:[/color]
    [img height=471 width=600]http://www.lpcarm.ir/images/ARM_Board.jpg[/img]
    این برد قابلیت اتصال به پورت USB و سریال را دارد. همچنین ماژول آلتراسونیک، سنسور HS0038، سنسور گاز، دما، نور، NTC و PTC، آی سی زمان سنج DS1307، آی سی EEPROM، تقویت کننده ی صدای LM386 (که به خروجی DAC میکروی ARM وصل است)، سنسور CNY70، سوکت PS2، بازر، دیود مادون قرمز، سوکت پروگرمر، ال سی دی کاراکتری، خروجی PWM و کانکتور هایی جهت ارتباط با برد های جانبی قرار دارد (مانند LCDN96، ماژول VS1003 ارتباط با MMC، ماژول ENC28J60، ال سی دی کاراکتری، سون سگمنت، اینورتر، ارتباط با خط تلفن و سنسور های مغناطیسی HMC1052 و ADXL330). این برد بسیاری از قسمت های استاندارد ARM را پوشش می دهد. برای طراحی این برد حدود 3 هفته وقت گذاشته شده است. این برد توانایی برنامه ریزی میکروکنترلر ARM را از طریق پورت USB بدون نیاز به پروگرمر را دارا می باشد.
    { خلاف قوانین - پاک شد }
    برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
    آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
    آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

    دیدگاه


      #3
      پاسخ : برد آموزشی ARM مدل LPC2138

      دانلود پروژه ی اول با موضوع پخش صدا با استفاده از ماژول PWM و DAC
      [img height=315 width=450]http://www.lpcarm.ir/images/ARM_PWM.jpg[/img]
      ماژول PWM برای پخش صداهای 8 بیتی بسیار مناسب می باشد زیرا با PWM هشت بیتی می توان فرکانس PWM برابر دو برابر فرکانس Sample Rate را ایجاد نمود. ولی در PWM با دقت 16 بیتی باید فرکانس ورودی را تا 3 گیگا هرتز افزایش داد که این غیر ممکن است به همین دلیل روش صحیح پخش صدا استفاده از DAC می باشد. در این برنامه یک فایل Wav که در حافظه ی ARM قرار دارد خوانده شده و پخش می شود. مشخصات این فایل به صورت زیر است:
      sample Rate:22050
      Sample size:8 bit
      شکل زیر هدر فایل Wav را نشان می دهد:
      [img height=449 width=673]http://www.lpcarm.ir/images/wave-bytes.gif[/img]
      [img height=567 width=612]http://www.lpcarm.ir/images/wav-sound-format.gif[/img]
      { خلاف قوانین - پاک شد }
      برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
      آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
      آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

      دیدگاه


        #4
        پاسخ : برد آموزشی ARM مدل LPC2138

        دانلود پروژه ی پخش صدا از روی حافظه ی MMC یا SD Card
        این برنامه با نرم افزار پروتئوس شبیه سازی نمی شود. در این برنامه فایل Wav با مشخصات زیر از روی حافظه ی MMC خوانده شده و با کیفیت بسیار خوبی پخش می شود
        sample Rate:22050
        Sample size:16 bit
        در این برنامه با استفاده از ارتباط SPI با MMC ارتباط برقرار می شود و از آن اطلاعات خوانده خواهد شد
        با توجه به سرعت فرکانس کلاک (16 مگاهرتز) با حداکثر سرعت از MMC اطلاعات خوانده می شود.
        حال اگر عکس sample rate را محاسبه نماییم حدود 45 میکروثانیه می شود و باید هر 45 میکروثانیه دو بایت داده وارد DAC ده بیتی میکروکنترلر ARM شود که این کار با استفاده از وقفه ی تایمر صفر انجام شده است و در این وقفه شمارنده ای زیاد می شود و وقتی به 22222 رسید (یعنی حدود یک ثانیه) زمان نمایش داده شده بر روی LCD هم یک ثانیه زیاد می شود این MMC به کانکتور P4 وصل می شود.

        در شکل های زیر پایه های انواع MMC را مشاهده می کنید:
        [img height=250 width=460]http://www.lpcarm.ir/images/sdmm_contact.jpg[/img]
        [img height=250 width=370]http://www.lpcarm.ir/images/mini_contact.jpg[/img]
        [img height=250 width=380]http://www.lpcarm.ir/images/micro_contact.jpg[/img]
        { خلاف قوانین - پاک شد }
        برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
        آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
        آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

        دیدگاه


          #5
          پاسخ : برد آموزشی ARM مدل LPC2138

          سلام
          :-?
          2138 یکم قدیمی نیست؟! کلا سری 21 یا حتی 23 یه جورایی منسوخ شده. معادل سری 21 همون سری 13 هست که از خیلی جهات نسبت به اینها برتری دارد.

          دیدگاه


            #6
            پاسخ : برد آموزشی ARM مدل LPC2138

            سلام
            :-?
            2138 یکم قدیمی نیست؟! کلا سری 21 یا حتی 23 یه جورایی منسوخ شده. معادل سری 21 همون سری 13 هست که از خیلی جهات نسبت به اینها برتری دارد.
            تقریبا درسته اما اینو بدونید که
            اولا LPC2138 تنها مدلی از ARM است که در Proteus قابل شبیه سازی است و
            ثانیا رجیستر های همه ی سری های LPC مانند هم است.
            مثلا ما در LPC2138 می نویسیم FIODIR0 و در LPC1768 می نویسیم LPC_GPIO0->FIODIR0
            یعنی دقیقا شبیه به هم است
            حتی من سر کلاس که درس دادم افرادی بودند که با LPC1768 کار می کردند
            ولی من LPC2138 درس می دادم و آنها اصلا هیچ مشکلی نداشتند
            { خلاف قوانین - پاک شد }
            برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
            آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
            آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

            دیدگاه


              #7
              پاسخ : برد آموزشی ARM مدل LPC2138

              راه اندازی ماژول پخش صدای VS1003
              [img height=744 width=434]http://www.lpcarm.ir/images/ARM_VS1003.png[/img]
              این آی سی فرمت های Wav، MP3، WMA، MIDI و AAC را با کیفیت بسیار خوبی می تواند پخش نماید.
              [img height=213 width=200]http://www.lpcarm.ir/images/VS1003_fmts.jpg[/img]
              در واقع نوعی Codec سخت افزاری برای پخش صدا می باشد. پردازش هر فایل (یعنی دیکد کردن فایل) بسیار مشکل است و طبق الگوریتم هافمن فشرده می شود. فایل mp3 از کنار هم قرار گرفتن Frame ها ساخته می شود. هر Frame شبیه به شکل زیر است
              [img height=48 width=714]http://www.lpcarm.ir/images/mp3_Frame.png[/img]
              Header هر Frame شبیه به شکل زیر است که از 32 بیت تشکیل می شود:
              [img height=267 width=135]http://www.lpcarm.ir/images/MP3_Frame.jpg[/img]
              [img height=630 width=609]http://www.lpcarm.ir/images/logicalframe.gif[/img]
              در شکل بالا Header و Side Information با دو رنگ مختلف نشان داده شده اند.
              دیکد کردن و تبدیل MP3 به فرمت Wav برای پخش الگوریتم پیچیده ای دارد. در ضمن هر فایل MP3 پارامتر های مختلفی مانند Bit rate دارد که بدون داشتن آن غیر ممکن است که بتوان فایل MP3 را دیکد نمود. این آی سی شبیه یک میکروکنترلر می ماند که برنامه های نوشته شده ای برای دیکد کردن و پخش فایل های مذکور با کیفیت بسیار خوب دارد. این آی سی صدا را به صورت استریو پخش می کند و بلندی صدا به صورت نرم افزاری قابل تنظیم است. حتی قابلیت اتصال میکروفن به این آی سی و خواندن صدا از میکروفن و ضبط آن از قابلیت های دیگر این آی سی است. سخت افزار این آی سی به صورت شکل زیر می باشد:
              [img height=615 width=742]http://www.lpcarm.ir/images/ARM_VS1003_SCH.png[/img]
              فرکانس ورودی این آی سی باید بین 12 تا 13 مگا هرتز باشد و بهتر است که برابر 12.288 مگاهرتز باشد تا پس از عبور از PLL به 52 مگاهرتز جهت پردازش فایل های صوتی برسد. در شکل فوق ترمینال P1 مخصوص اتصال میکروفن است. تغذیه ی این آی سی باید 3.3 ولت باشد.
              در این برنامه از یک MMC کد ها خوانده می شود و برای آی سی VS1003 ارسال می شود. قبل از ارسال پایه ی Xdcs از طرف میکرو صفر می شود و سپس اطلاعات ارسال می شوند و پایه یXdcs مجددا یک می شود. پس از آن منتظر می مانیم تا VS1003 پایه ی Dreq را یک کند به این معنی که اطلاعات را پردازش کرده است. ما بایت بعدی را از MMC خوانده و برای VS1003 ارسال می کنیم. در تابع vs1003_init نیز بلندی صدا، میزان باس صدا و تربیل صدا تنظیم می شوند.
              [img height=241 width=400]http://www.lpcarm.ir/images/ARM_VS1003.jpg[/img]
              در تصویر بالا برد ساخته شده برای VS1003 را مشاهده می کنید.
              { خلاف قوانین - پاک شد }
              برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
              آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
              آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

              دیدگاه


                #8
                پاسخ : برد آموزشی ARM مدل LPC2138

                اتصال سنسور مادون قرمز HS0038 به ARM و دریافت کد های کنترل سونی
                [img height=564 width=446]http://www.lpcarm.ir/images/ARM_HS0038.png[/img]

                [img height=162 width=180]http://www.lpcarm.ir/images/HS0038.jpg[/img]
                به دلیل وجود یک AGC یا همان تقویت کننده ی اتوماتیک در داخل این آی سی برد آن بسیار زیاد است و از فاصله ی دور هم می تواند کد های کنترل تلویزیون سونی را آشکار نماید. کنترل تلویزیون سونی یک را به صورت 011 و صفر را به صورت 01 ارسال می کند و زمان بین هر عدد 600 میکرو ثانیه می باشد. در برنامه در تابع irq void Eint3__ به دلیل اینکه تایمر نمی تواند زمان هایی در حد میکرو ثانیه را به خوبی ایجاد نماید، در صورت عدم جواب گرفتن صحیح از این مدار مقدار اعداد موجود در توابع delay را تغییر دهید تا به بهرین نتیجه دست یابید. (این برنامه با فرکانس 18.432 مگا هرتز به خوبی کار کرد)
                برای فهم بیشتر شکل های زیر را مشاهده نمایید:
                [img height=104 width=184]http://www.lpcarm.ir/images/ARM_HS0038_1.png[/img]
                مانند شکل بالا در قسمت پایین سمت چپ نرم افزار پروتئوس کلید step را بزنید.
                [img height=482 width=551]http://www.lpcarm.ir/images/ARM_HS0038_2.png[/img]
                مانند شکل بالا در صفحه ی باز شده فایل HS0038.c را انتخاب نمایید.
                [img height=482 width=551]http://www.lpcarm.ir/images/ARM_HS0038_3.png[/img]
                سپس با دابل کلیک بر روی خط 860 و 868 و 878 سه breakpoint (یا سه نقطه ی ایست) قرار دهید تا برنامه با رسیدن به این سه نقطه متوفف شود. سپس کلید F12 (یا در پایین سمت چپ کلید Play) را بزنید تا برنامه اجرا شود.
                [img height=276 width=308]http://www.lpcarm.ir/images/ARM_HS0038_4.png[/img]
                بعد از اجرای برنامه مطابق شکل بالا بر روی LogicState کلیک کنید تا یک شود و دوباره کلیک کنید تا صفر شود و لبه ی پایین رونده ایجاد شود (بجای Logic State سنسور HS0038 وصل می شود اما چون پروتئوس آن را ندارد، ما Logic State قرار دادیم). بعد از ایجاد لبه ی پایین رونده برنامه در خط 860 متوقف می شود. زیرا شما در این خط یک breakponit قرار داده اید. حال به مجددا کلید F12 (یا همان کلید Play در پایین صفحه) را بزنید. مجددا برنامه در خط 868 متوقف می شود. حال شما باید در پایین صفحه مطابق شکل زیر زمان سپری شده از خط 860 تا خط 868 را ببینید:
                [img height=23 width=566]http://www.lpcarm.ir/images/ARM_HS0038_5.png[/img]
                این زمان باید برابر 300 میکرو ثانیه باشد. مجددا کلید play را بزنید تا برنامه به خط 878 برسد و مجددا هم این کلید را بزنید تا برنامه مجددا به خط 878 برسد (این خط در حلقه قرار دارد و 40 بار اجرا می شود) در این صورت باید در پایین صفحه زمان 600 میکرو ثانیه را مشاهده نمایید (مانند شکل بالا)
                اگر فرکانس را تغییر دهید، این زمان بهم می خورد که شما باید در تصویر زیر
                [img height=482 width=551]http://www.lpcarm.ir/images/ARM_HS0038_3.png[/img]
                عدد 260 را در حلقه ی for آنقدر تغییر دهید تا تاخیر 600 میکرو ثانیه شود. همچنین می توانید این حلقه را در خط 860 بنویسید. یعنی خط 860 را پاک کرده و این حلقه را در این خط قرار دهید

                در شکل زیر کد های کلید های کنترل سونی را مشاهده می کنید که به صورت هگز (مبنای 16) هستند:
                Code Function ---- -------- #080 1 #081 2 #082 3 #083 4 #084 5 #085 6 #086 7 #087 8 #088 9 #089 0 #08B enter #090 ch+ #091 ch- #092 vol+ #093 vol- #095 power (toggle)(standby) #0AE power on #0AF power off #0A5 tv/video #098 picture + #099 picture - #09A colour + #09B colour - #09E brightness + #09F brightness - #0A0 hue + (purpur) #0A1 hue - (green) #0A2 sharpness + #0A3 sharpness - #0A6 balance L #0A7 balance R #096 normal values #0C0 input line A #0C1 input line B #0C3 input AV #0C5 input digital #0C7 input vtr #094 mute
                در شکل زیر نوع کد شدن کد های بالا نشان داده شده است:
                Carrier: 40kHz +--------+ Header: | | + +--+.. 4T T +----+ 1 is coded: | | ..+ +--+.. 2T T +--+ 0 is coded: | | ..+ +--+.. T T T = 600us approx Space between data: 25ms data: hhhhxxxxxxyyyyyy ^ ^ MSB LSB
                فرض کنید کلید 0 از کنترل را فشار دهیم. کد هگز این کلید 089 می باشد و باینری آن 1001-1000-0000 می باشد.
                موقع ارسال بیت صفر به صورت 01 و بیت 1 به صورت 011 ارسال می شود و زمان بین هر کدام حدود 600 میکرو ثانیه است. مثلا برای ارسال عدد باینری 0110 این عدد به صورت 0101101101 ارسال می شود که زمان ارسال برابر 6000 میکروثانیه است. پس عدد 089 به صورت زیر ارسال می شود
                089 = 0000-1000-1001 >send > 11110 01010101-011010101-0110101011
                hex binary code header 0 0 0 0- 1 0 0 0- 1 0 0 1
                پس هدر به مدت 3000 میکروثانیه، یک (011) به مدت 1800 میکروثانیه و صفر (01) به مدت 1200 میکروثانیه طول می کشد ارسال شود. با ارسال یک (عدد یک نه بیت یک داده) یک فرکانس حامل 40KHz هم ارسال می شود که سنسور HS0038 فقط پوش این فرکانس را به ما می دهد. طبق شکل زیر:
                [img height=371 width=739]http://www.lpcarm.ir/images/Sony_Control.jpg[/img]
                { خلاف قوانین - پاک شد }
                برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                دیدگاه


                  #9
                  پاسخ : برد آموزشی ARM مدل LPC2138

                  اتصال ال سی دی رنگی نوکیا مدل N96 به ARM
                  [img height=806 width=780]http://www.lpcarm.ir/images/ARM_N96.png[/img]

                  [img height=124 width=350]http://www.lpcarm.ir/images/ARM_TFT.jpg[/img]
                  این برنامه برنامه ی تغییر یافته ی آقای علی ایمانی فر است که برای AVR نوشته است. این برنامه به گونه ای ویرایش شده است که بر روی ARM هم اجرا شود. مقاله ی کامل آن را در سایت گوگل جستجو کنید. فقط تنها فرق این برنامه با برنامه ی آقای ایمانی فر این است که ارسال اطلاعات به LCD فقط به صورت یک طرفه است و نمی توان از LCD اطلاعات را خواند به همین دلیل نمی توان متن شفاف بر روی LCD نشان داد دلیل آن هم این است که در برد طراحی شده به علت محدودیت پایه ها نتوانستم تا تعداد زیادی از پایه های ARM را برای این کار استفاده نمایم.
                  در ابتدای فایل tftlcd_functions.h تمامی پایه ها define شده اند و در این برنامه پایه ها به صورت بیتی مقدار دهی می شوند و با مقدار دهی بایتی پایه ها می توان سرعت LCD را تا 10 برابر افزایش داد. اما برای سادگی برنامه این کار انجام داده نشده است.
                  { خلاف قوانین - پاک شد }
                  برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                  آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                  آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                  دیدگاه


                    #10
                    پاسخ : برد آموزشی ARM مدل LPC2138

                    ارتباط با اترنت از طریق ماژول ENC28J60
                    [img height=466 width=429]http://www.lpcarm.ir/images/ARM_ENC28J60.png[/img]
                    ماژول ENC28J60 با ارتباط SPI کار می کند و می تواند سرعت 10Mbps داشته باشد. در این برنامه از توابع کتابخانه ی کتاب 11 پروژه با AVR استفاده شده است و این توابع برای میکروکنترلر ARM تغییر کرده اند و در برنامه ی اصلی نیز با استفاده از دو کلید key1 و key2 می توان مقدار شمارنده ای را تنظیم کرد و آن را در کامپیوتر مشاهده نمود.
                    در این ارتباط باید IP کارت شبکه را برابر مقدار 192.168.1.1 تنظیم کنیم و سپس در صفحه ی Firefox یا Internet Explorer باید عدد 192.168.1.10 را وارد نماییم و در این صورت مقدار شمارنده ی روی LCD کاراکتری را در صفحه ی مرورگر می بینیم. حال اگر تایپ کنیم
                    http://192.168.1.10/ARM.html
                    کلمه ی ARM.html را بر روی LCD کاراکتری مشاهده می کنیم.
                    برای راهنمایی بیشتر شکل های زیر را مشاهده نمایید
                    [img height=71 width=235]http://www.lpcarm.ir/images/Ethernet_1.png[/img]
                    [img height=220 width=259]http://www.lpcarm.ir/images/Ethernet_2.png[/img]
                    [img height=450 width=367]http://www.lpcarm.ir/images/Ethernet_3.png[/img]
                    [img height=455 width=404]http://www.lpcarm.ir/images/Ethernet_4.png[/img]
                    [img height=416 width=542]http://www.lpcarm.ir/images/Ethernet_5.png[/img]
                    در ویندوز 7 و 8 داریم:
                    [img height=229 width=289]http://www.lpcarm.ir/images/Ethernet_6.png[/img]
                    [img height=310 width=312]http://www.lpcarm.ir/images/Ethernet_7.png[/img]
                    [img height=339 width=270]http://www.lpcarm.ir/images/Ethernet_8.png[/img]
                    [img height=475 width=377]http://www.lpcarm.ir/images/Ethernet_9.png[/img]
                    در حلقه ی بی نهایت برنامه دائما تابع ethernet_process فراخوانی می شود و در صورت وجود پکت در شبکه، آن را دریافت و پردازش می کند. در این برنامه UART1 هم فعال است و می تواند توسط تابع send_char اطلاعات دریافتی را برای پورت سریال ارسال نماید تا بتوان دقیق تمامی اطلاعات را مشاهده نمود. نرخ ارسال UART برابر 115200 می باشد و کریستال متصل شده به ARM مقداری برابر 18.432 مگاهرتز دارد.
                    { خلاف قوانین - پاک شد }
                    برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                    آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                    آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                    دیدگاه


                      #11
                      پاسخ : برد آموزشی ARM مدل LPC2138

                      اتصال ال سی دی گرافیکی با درایور ks0108 به ARM
                      [img height=481 width=461]http://www.lpcarm.ir/images/ARM_GLCD.png[/img]
                      این ال سی دی با درایور KS0108 در ابعاد 128 پیکسل در 64 پیکسل می باشد و به دو نیمه تقسیم می شود که با استفاده از پایه های CS1 و CS2 می توان یکی از دو نیمه را انتخاب نمود. در ابتدا برای روشن کردن GLCD باید نیمه ی اول را انتخاب کرد و دستور 0x3F را برای آن ارسال کنیم و سپس نیمه ی دوم را انتخاب کرده و دستور 0x3F را برای آن ارسال کنیم تا LCD روشن شود. سپس با استفاده از تابع glcd_show_pic عکسی بر روی این ال سی دی نشان داده می شود که کد های این عکس در آرایه ی code1 قرار دارد و با استفاده از برنامه ی GLCD_Editor در فایل پیوست از روی عکس BMP ایجاد شده است. پس از نمایش تصویر بر روی ال سی دی با تابع glcd_show_character اعداد صفر تا 9 در مختصات 2 و 62 از LCD یعنی سطر دوم و ستون 62 نمایش داده می شوند. برای کاهش مصرف پایه های ARM از دو آی سی Latch استفاده شده است. در اصل در برد اصلی 4 آی سی Latch وجود دارد که دو تای آن جهت کنترل سون سگمنت و GLCD و دو تای آن جهت کنترل LCD نوکیا بکار رفته است تا پایه های ARM کمتر استفاده شوند تا بتوان از امکانات دیگری مانند UART و SPI و ADC در دیگر پایه ها استفاده نمود.
                      پایه های این ال سی دی به صورت شکل زیر است:
                      [img height=313 width=425]http://www.lpcarm.ir/images/GLCD_KS0108.png[/img]

                      [img height=365 width=500]http://www.lpcarm.ir/images/ARM_GLCD.jpg[/img]
                      در تصویر بالا برد ال سی دی گرافیکی، ال سی دی نوکیا N96 و سون سگمنت را مشاهده می کنید که برنامه های نوشته شده برای هر قسمت در این برد قابل اجرا شدن هستند. این برد به برد Main که عکس آن در قسمت طرح درس قرار دارد، وصل می شود.
                      { خلاف قوانین - پاک شد }
                      برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                      آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                      آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                      دیدگاه


                        #12
                        پاسخ : برد آموزشی ARM مدل LPC2138

                        نمایش زمان بر روی سون سگمنت با ARM
                        [img height=540 width=618]http://www.lpcarm.ir/images/ARM_7Seg.png[/img]
                        این برنامه در نرم افزار Proteus به خوبی اجرا نمی شود ولی در عمل کار می کند و زمان را از DS1307 خوانده و روی سون سگمنت نمایش می دهد.
                        { خلاف قوانین - پاک شد }
                        برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                        آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                        آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                        دیدگاه


                          #13
                          پاسخ : برد آموزشی ARM مدل LPC2138

                          فعال کردن تایمر سگ نگهبان WDT
                          در این برنامه ابتدا شمارنده ی WDT با عدد 250000 پر می شود. سپس با مقدار دهی رجیستر WDMOD و سپس WDFEED این تایمر فعال می شود و به صورت نزولی شروع به شمارش می کند. در بین برنامه باید دائما رجیستر WDFEED را مقدار دهی نماییم تا این تایمر دائما با 250000 پر شود. در صورت عدم مقدار دهی به موقع WDFEED این تایمر به صفر می رسد و ARM را RESET می کند.
                          در این برنامه فرکانس PCLK برابر 1 مگاهرتز تظیم شده است و دلیل مقدار دهی رجیستر WDTC با عدد 250000 این است که این تایمر حداکثر تا 250 میلی ثانیه صفر می شود و باید قبل این زمان دستور WDFEED اجرا شود
                          { خلاف قوانین - پاک شد }
                          برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                          آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                          آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                          دیدگاه


                            #14
                            پاسخ : برد آموزشی ARM مدل LPC2138

                            ارتباط با حافظه ی EEPROM خارجی
                            در این برنامه یک حافظه ی EEPROM به ARM وصل شده است. ARM کد های این حافظه را خوانده و بر روی LCD نمایش می دهد. همچنین در ابتدای برنامه با استفاده از تابع eeprom_write دو عدد 0x37 و 0x38 به ترتیب در آدرس 0 و دو این حافظه ذخیره می شوند. این تابع سه ورودی میگیرد. یکی آدرس EEPROM که برابر 0xA0 دیگری آدرس خانه ی حافظه و دیگری داده ای که قرار است نوشته شود.
                            در این برنامه تابع delay با استفاده از تایمر 0 ایجاد شده است و برای عملکرد صحیح آن باید در ابتدای برنامه تابع delay_init فراخوانی شده و مقدار دقیق فرکانس PCLK را به آن بدهیم.
                            تابع eeprom_read هم آدرس دستگاه و آدرس خانه ی حافظه را میگیرد و کد را خوانده و بر میگرداند
                            { خلاف قوانین - پاک شد }
                            برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                            آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                            آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                            دیدگاه


                              #15
                              پاسخ : برد آموزشی ARM مدل LPC2138

                              فعال کردن آی سی DS1307 و دریافت زمان از آن با I2C سخت افزاری
                              [img height=506 width=397]http://www.lpcarm.ir/images/ARM_DS1307.png[/img]
                              در این برنامه زمان و تاریخ از DS1307 خوانده می شود و بر روی LCD نمایش داده می شود. با فشردن دو کلید key1 و key2 می توان زمان و ساعت را تغییر داد.
                              توسط تابع ;(i2c_init(100,4.608 فرکانس I2C برابر 100 کیلو هرتز می شود فرکانس PCLK نیز یک چهارم فرکانس CPU که برابر 18.432 مگاهرتز است یعنی 4.608 مگاهرتز می باشد. تابع i2c_init رجیستر های I2C0SCLL , I2C0SCLH را با توجه به فرکانس PCLK و فرکانس مورد نظر در پایه ی SCL مقدار دهی می کند
                              با مقدار دهی رجیستر PINSEL0 عملکرد SDA و SCL فعال می شود. توسط تابع rtc_get_time زمان گرفته می شود و اگر زمان بیش از 59 باشد (یعنی اولین بار است که برق به DS1307 وصل می شود) زمان به صورت پیش فرض 12:00:00 تنظیم میشود. در نهایت مقدار زمان بر روی LCD نشان داده خواهد شد
                              { خلاف قوانین - پاک شد }
                              برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                              آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                              آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                              دیدگاه

                              لطفا صبر کنید...
                              X