اطلاعیه

Collapse
No announcement yet.

نحوه عیب یابی اولیه در avr ؟

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

    نحوه عیب یابی اولیه در avr ؟

    سلام
    آقا من تازه اومدم سمت avr
    یه پروژه دماسنج میخوام انجام بدم ، که هیچی روی ال سی دی نشون نمیده
    برنامه رو با پروتیوس میبندم جواب میده
    از سالم بودن میکرو هم مطمئنم چون یه مدار چشمک زن باهاش ساختم جواب میده
    اتصالات رو هم یه 300-400 دفعه چک کردم :angry:
    برنامه اش هم همونی که توی کتاب آقای علی کاهه هستش ( اگه لازم شد بزارم)
    منتها نمیدونم دیگه باید چی رو بررسی کنم هیچی روی ال سی دی نمیاد فقط با کم و زیاد کردن پتانسیومتر کنتراست کارکترها بالا و پایین میره ( فقط هم سطر بالا تغییر میکنه)
    حالا میخواستم بدونم واسه عیب یابی باید چکار کنم؟
    -----
    یه سوال دیگه اینکه این برنامه از کریستال خود میکرو استفاده کرده ، ولی توی برنامه کریستال رو 4 مگاهرتز معرفی کرده ، میخواستم بدونم مگه کریستال داخلی atmega32 هشت مگاهرتز نیست ؟ مشکلی پیش نمیاد؟
    بعد توی 8051 من قبلا کار میکردم حتما باید مدار reset هم میزاشتیم ، avr لازم نداره؟

    #2
    پاسخ : نحوه عیب یابی اولیه در avr ؟

    نوشته اصلی توسط amin007
    حالا میخواستم بدونم واسه عیب یابی باید چکار کنم؟
    -----
    یه سوال دیگه اینکه این برنامه از کریستال خود میکرو استفاده کرده ، ولی توی برنامه کریستال رو 4 مگاهرتز معرفی کرده ، میخواستم بدونم مگه کریستال داخلی atmega32 هشت مگاهرتز نیست ؟ مشکلی پیش نمیاد؟
    بعد توی 8051 من قبلا کار میکردم حتما باید مدار reset هم میزاشتیم ، avr لازم نداره؟
    LCD فقط سطره بالا رو به صورت مربع نشون میده.؟
    اگه آره اتصالات رو از میکرو به LCD اشتباه وصل کردید.

    کریستال های داخلی رو میتونی به 1MHz , 2MHz ,4MHz و 8MHz تغییر بدی. که بطور پیش فرض روی 1MHz تنظیم شده.
    خب اگه تو برنامه 4MHz معرفی شده که باید تو جدول فیوزبیت ها اونو به 4MHz تغییر بدی.

    نه اینجا احتیاج به Reset نیست.
    ?Why not

    دیدگاه


      #3
      پاسخ : نحوه عیب یابی اولیه در avr ؟

      LCD فقط سطره بالا رو به صورت مربع نشون میده.؟
      اگه آره اتصالات رو از میکرو به LCD اشتباه وصل کردید.
      آره دقیقا به صورت مربع نشون میده
      منتها هر چی نگاه میکنم اتصالات درسته
      چهار تا سیم از pc1 تا pc4 رفته به پایه 11 تا 14 ال سی دی
      دو تا سیم هم از pd3 به پایه 4 و از pd2 به پایه 6 ال سی دی رفته
      شماره پایه ها همینی که اینجا نوشتم؟؟؟:
      pc1=23
      pc2=24
      pc3=25
      pc4=26
      pd3=17
      pd2=16
      اگه همیناست درست وصل کردم
      خب اگه تو برنامه 4MHz معرفی شده که باید تو جدول فیوزبیت ها اونو به 4MHz تغییر بدی.
      چطوری باید توی فیوز بیتا تغییر بدم
      خود برنامه تغییر نمیده این قسمت رو؟
      خط دومش نوشته crystal = 4000000 $
      یعنی همین خط کریستال رو تغییر نمیده؟
      میشه توضیح بدین چجوری باید تغییر بدم

      دیدگاه


        #4
        پاسخ : نحوه عیب یابی اولیه در avr ؟

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

        دیدگاه


          #5
          پاسخ : نحوه عیب یابی اولیه در avr ؟

          آره عزیزم چرا که نه؟
          اول بگو فیوزبیت Jtag رو تغییر دادی یا نه؟چون از PORTC استفاده کردی.
          حتما باید تغییررش بدی.
          این عکس کمکت میکنه:
          ?Why not

          دیدگاه


            #6
            پاسخ : نحوه عیب یابی اولیه در avr ؟

            به نظر من اشکال مدار شما اسیلاتور و نحوه ی تعیین سرعت فرکانس میکرو هست.
            به نظر من حتما مدارتون رو با یک کریستال خارجی هم تست کنید ببینید نتیجه میده یا نه.
            ممنون رفیق
            ولی به خدا من avr چیز زیادی سر درنمیارم
            اگه لطف کنید بگید که avr از کجا میفهمه که ما قصد استفاده از کریستال داخلی رو داریم یا خارجی و نحوه انتخاب این دو تا از طریق فیوز بیت و چیزای مرتبط بهش رو توضیح بدین ممنون میشم
            این crystal = 4000000 $ چکار میکنه دقیقا ؟، داخلی رو انتخاب میکنه یا خارجی؟

            آره عزیزم چرا که نه؟
            اول بگو فیوزبیت Jtag رو تغییر دادی یا نه؟چون از PORTC استفاده کردی.
            حتما باید تغییررش بدی.
            این عکس کمکت میکنه:
            یه چیزی میگم نخندید ها
            من کلا نمیدونم این فیوز بیت چی هست و چکار میکنه ، توی 8051 از این چیزا نداشتیم
            فیوز بیت jtag نمیدونم چیه و کریستال رو هم نمیدونم چطوری باید فرکانس و داخلی و خارجی بودنش رو انتخاب کرد
            اینارو اصلا باید از طریق برنامه تغییر داد یا سخت افزار؟

            دیدگاه


              #7
              پاسخ : نحوه عیب یابی اولیه در avr ؟

              نوشته اصلی توسط amin007
              یه چیزی میگم نخندید ها
              باید به خودم بخندم.
              QUARK =))
              -------------------------------------------------------------------------------------------

              AVR فقط استفاده میکنه .
              یعنی احتیاج نیست که بهش بفهمونی که خارجیه یا داخلی(تو خوده برنامه و نه تو تنظیم فیوزبیت ها). اون فقط از شما همچین کریستالی می خواد.
              اما چطور؟همونطور که خودت میدونی دو نوع کریستال داخلی و خارجی داریم.
              که کریستال های داخلی طبقه گفتهای قبلیم از 1 و 2 و 4 و 8 مگاهرتز تشکیل شده و اگه میخوای بیشترش کنی باید از کریستالهای خارجی استفاده کنی.
              فعلاً خودتو درگیره اینکارا نکن.
              مقداره کریستال رو از تو برنامه تغییر بده و بکنش 1000000. که دیگه احتیاج به تغییر فیوزبیت فرکانس نباشه.
              و اما فیوزبیت Jtag که اینم زمانی که از پورت C استفاده میکنی باید غیرفعال بشه.
              که اینم از تو برنامه میتونی تغییرش بدی که الان درگیره این کارای اضافه نشی.
              میتونی از پورتای دیگه استفاده کنی.
              ?Why not

              دیدگاه


                #8
                پاسخ : نحوه عیب یابی اولیه در avr ؟

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

                crystal = 4000000 $ تنها تعیین می کنه که فرکانس کاری 4 مگاهرتز هست اما نمی گه که داخلی هست یا خارجی برای این منظور تعیین کردن خارجی یا داخلی بودن همونطوری که ابتدای کار گفتم باید فیوزبیت رو تنظیم کنین

                در 8051 اگر دیده باشین باید برای پورت P0 مقاومت پول پ قرار می دادین یعنی پورت برای منظور دیگه هم می تونسته مورد استفاده قرار بگیره و برای تغییر کاربری باید چنین کاری رو می کردین jtag هم یه پروتکل ارتباطی هست که در صورت استفاده پین ها به صورت ورودی و خارجی باید این ارتباط رو غیر فعال کنین توسط میکرو(پیشنهادم برای بار اول تغییر پورت lcd از c به پورتهای دیگه میکرو هست و سپس برنامه رو در تعریف پینها تغییر بدین چون در بعضی از مواقع شاهد مشکلات دیگه ای بودیم ابتدا سعی کنین پورت و lcd رو راه اندازی کنین و جواب که گرفتین با غیرفعال کردن jtag حالا برین lcd رو وصل کنین به portc )

                هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                دیدگاه


                  #9
                  پاسخ : نحوه عیب یابی اولیه در avr ؟

                  باید به خودم بخندم.

                  فعلاً خودتو درگیره اینکارا نکن.
                  مقداره کریستال رو از تو برنامه تغییر بده و بکنش 1000000. که دیگه احتیاج به تغییر فیوزبیت فرکانس نباشه.
                  و اما فیوزبیت Jtag که اینم زمانی که از پورت C استفاده میکنی باید غیرفعال بشه.
                  که اینم از تو برنامه میتونی تغییرش بدی که الان درگیره این کارای اضافه نشی.
                  میتونی از پورتای دیگه استفاده کنی.
                  عرض شود ، که این پروژه اصلی من نیست ، اینو دارم همینجوری انجام میدم با avr اشنا بشم ، به هر حال اول آخرش باید طرز کار اینا رو یاد بگیرم ، واسه همین با اجازه تون طبق همین برنامه جلو بریم
                  سلام
                  با مقدار دهی فیوزبیت میکرو توسط پروگرمر میکرو متوجه می شه که کریستال داخلی هست یا خارجی
                  و با برنامه نویسی مقدارش رو برای توابع زمانی و ... مشخص می کنین توسط دستور crystal

                  crystal = 4000000 $ تنها تعیین می کنه که فرکانس کاری 4 مگاهرتز هست اما نمی گه که داخلی هست یا خارجی برای این منظور تعیین کردن خارجی یا داخلی بودن همونطوری که ابتدای کار گفتم باید فیوزبیت رو تنظیم کنین

                  در 8051 اگر دیده باشین باید برای پورت P0 مقاومت پول پ قرار می دادین یعنی پورت برای منظور دیگه هم می تونسته مورد استفاده قرار بگیره و برای تغییر کاربری باید چنین کاری رو می کردین jtag هم یه پروتکل ارتباطی هست که در صورت استفاده پین ها به صورت ورودی و خارجی باید این ارتباط رو غیر فعال کنین توسط میکرو(پیشنهادم برای بار اول تغییر پورت lcd از c به پورتهای دیگه میکرو هست و سپس برنامه رو در تعریف پینها تغییر بدین چون در بعضی از مواقع شاهد مشکلات دیگه ای بودیم ابتدا سعی کنین پورت و lcd رو راه اندازی کنین و جواب که گرفتین با غیرفعال کردن jtag حالا برین lcd رو وصل کنین به portc )
                  ممنون توضیحات بسیار خوبی بود
                  -------------------------------

                  عرض شود طبق مطالعات ده دقیقه ای من از روی کتاب علی کاهه :nerd:
                  یه چیزایی از فیوز بیت سر درآوردم
                  حالا اینا رو خودم توی پروگرمر تغییر دادم ( توی کتاب نوشته صفر فعال و یک غیر فعال هست ) اما بازم کار نکرد
                  دوستان یه نگاه بندازن بی زحمت ببینن درسته یا نه؟
                  یه نکته اینکه اونجایی که نوشته prog fuese تیک نخورده بود من خودم تیک زدم حالا نمیدونم باید میزدم یا نه
                  بعد از اینکه این تنظیمات رو انجام دادم load buffer رو زدم و auto programmer رو زدم...


                  پروگرمری که استفاده میکنم این هست


                  اینم سایتش:
                  http://www.hattel.com/

                  اینم توضیحات پروگرمر:
                  http://www.hattel.com/Pocket/Manual.htm

                  دیدگاه


                    #10
                    پاسخ : نحوه عیب یابی اولیه در avr ؟

                    نه ببین همونطور که جناب Baby_1 عزیز گفتند بعضاً دیده شده که اشکالاتی تو پورت C باشه.
                    پس اول باید بری رو پورتای دیگه کار کنی و بعد از جواب گرفتن و مطمئن شدن و کمی هم تجربه بیای سره پورت C.
                    البته نه اینکه کاره سختیه ها نه.

                    یه چیزه دیگه اینکه شما وقتی دگمه ی read رو میزنید فیوزبیتِ Jtag غیرفعاله؟
                    ?Why not

                    دیدگاه


                      #11
                      پاسخ : نحوه عیب یابی اولیه در avr ؟

                      یه چیزه دیگه اینکه شما وقتی دگمه ی read رو میزنید فیوزبیتِ Jtag غیرفعاله؟
                      دکمه read رو زدم بعدش jtag صفر بود یعنی فعاله
                      منتها من deafult fuse رو میزنم نمیدونم چرا فیوزها هیچ تغییری نمیکنه ، همونهایی که خودم تنظیم کردم میمونه...
                      راستی نگفتین اونایی که تنظیم کردم درسته؟؟
                      توی فروم برنامه دماسنج یا کلا هر برنامه ای که با ال سی دی سرکار داشته باشه و از پورت c استفاده نشده باشه هست؟

                      دیدگاه


                        #12
                        پاسخ : نحوه عیب یابی اولیه در avr ؟

                        سلام
                        روی پایه های Xtal1 و Xtal2 یک کریستال با مقداری که در برنامه تعریف کردین قرار بدین
                        فیوز بیت ها رو طبق حالت زیر تنظیم کنین

                        CKSEL:1111
                        SUT:11

                        حالا برنامتون رو روی میکرو بریزین و تست بگیرین
                        هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                        دیدگاه


                          #13
                          پاسخ : نحوه عیب یابی اولیه در avr ؟

                          سلام
                          روی پایه های Xtal1 و Xtal2 یک کریستال با مقداری که در برنامه تعریف کردین قرار بدین
                          فیوز بیت ها رو طبق حالت زیر تنظیم کنین

                          CKSEL:1111
                          SUT:11
                          سلام
                          آقا این که گفتین cksel = 1111 یعنی هر چهار تا بیتش مساوی یک باشه؟
                          من این شکلی تنظیم کردم و کریستال 4 همراه دو تا خازن 30 پیکو هم گذاشتم ولی باز جواب نداد
                          الان تنظیماتم درسته؟

                          میشه لطفا بین این 15 تا فیوز بیت که توی لیست هست بگین کدوم هارو صفر کنم و کدوم ها رو یک؟؟؟؟

                          دیدگاه


                            #14
                            پاسخ : نحوه عیب یابی اولیه در avr ؟

                            من والا چیزی از پیش فرضش یادم نیست ولی،
                            بازم پیشنهاد میکنم که از یه پورته دیگه برای شروع استفاده کنی و بازم میگم که فیوزبیته Jtag شما فعاله و نمیذاره که شما از پورتِ C استفاده کنی.
                            ?Why not

                            دیدگاه


                              #15
                              پاسخ : نحوه عیب یابی اولیه در avr ؟

                              سلام
                              آقا برو واسه lcd از یه پورت دیگه استفاده کن منم همین مشکلو داشتم پورتو عوض کردم حل شد
                              من با بیسکام کار میکنم وبا همونم پروگرم میکنم ولی با این پروگرامر کار نکردم نمیتونم راجع به فیوزبیتها کمکت کنم
                              با مردم همون جوری رفتار کن که دوست داری باهات رفتار کنن



                              دیدگاه

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