اطلاعیه

Collapse
No announcement yet.

مشکل در DS1307

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

    مشکل در DS1307

    با سلام خدمت دوستان محترم سایت خوب ECA
    میخواستم بدونم چه طوری میشه پایه شماره هفت آی سی DS1307 رو با فرکانس یک هرتز فعال کرد؟
    یک مقاله در زمینه این آی سی دارم ولی در مورد فعال کردن این پایه درست نفهمیدم.
    در ضمن با بسکام برنامه نویسی میکنم و فقط این مورد از آی سی مذکور رو یکی لطف کنه برام بگه. خیلی ممنون میشم
    قال امام صادق (ع):
    هر چیزی زکاتی دارد و زکات علم آنست که به اهلش بیاموزی.

    #2
    پاسخ : مشکل در DS1307

    این بیت کنترلیشه:



    توی ادرس 07 ای سی مربط به نتظیمات این پایه هستش. Rs1 Rs0 باید 0 باشن SQWE هم باید 1 باشه . اون Out هم مثل اینکه برای وقتیه که SQWE غیر فعال هستش و ستح ولتاژ پین خروجی رو تعیین میکنه .( نمیدونم شایدم چیز دیگه ای باشه)

    پس یعنی توی آدرس 07 باید عدد 10000 باینری یا 16 خودمون رو بنویسی .

    چون خروجیش هم Open-colector هستش باید با مقاومت Pull-up به تغذیه +5 یا باطری وصلش کنی.

    دیدگاه


      #3
      پاسخ : مشکل در DS1307

      با سلام
      تشکر از پاسخ شما. گرفتم مطلب رو
      قال امام صادق (ع):
      هر چیزی زکاتی دارد و زکات علم آنست که به اهلش بیاموزی.

      دیدگاه


        #4
        مشکل با DS1307

        سلام به همه دوستان
        من یه ساعت درست کردم با ds1307 وبه خوبی کار میکنه و دقتش هم خوبه ولی وقتی از برق جداش میکنم مقادیرش صفر میشه در حالی که باتری بکاپ هم داره.
        نمیدونم باید چیکار کنم!!
        اینم مدارش هست:


        من همه نکات مربوط به pcb رو هم رعایت کردم:

        دیدگاه


          #5
          پاسخ : مشکل با DS1307

          سلام
          احتمالا برنامه نویسی میکروت مشکل داره. لطفا برنامه ات رو هم بذار. (سخت افزارت درسته)

          دیدگاه


            #6
            پاسخ : مشکل با DS1307

            داداش ا/ه از برنامه مطمئنی و میدونی که جایی تو برنامت مقدار دهی نمیکنی حتما از باتریه ممکنه برعکس زده باشی یا تاریخ مصرف باتری گذشته باشه
            اگه از جای برنامه رو کپی کردی یا ازhelp برنامه رو گرفتی اول برنامه معمولا خودش مقدار دهی میکنه حواست باشه حذفش کنی البته تا برنامه نباشه نمیشه فهمید برنامه رو بذار تا بشه یکارایی کرد
            { خلاف قوانین - پاک شد }

            دیدگاه


              #7
              پاسخ : مشکل با DS1307

              سلام
              ممنون که جواب دادید
              از کدویژن نسخه 2.05.3 و کتابخانه ds1307 اون استفاده کردم
              1- راه اندازی:
              کد:
                  ...
                // I2C Bus initialization
                // I2C Port: PORTB
                // I2C SDA bit: 2
                // I2C SCL bit: 1
                  i2c_init();  
                  rtc_init(0,0,0); 
                 ...
              2- مقادیرو از کاربر میگیرم و ست میکنم :
              کد:
               
                ... 
                rtc_init(0,0,0);   
                rtc_set_time(hour_tmp ,min_tmp,0);
                rtc_set_date(getdayofweek(year_tmp, month_tmp, day_tmp),day_tmp, month_tmp, year_tmp);
                ...
              3- هردفعه هم اینجوری نمایش میدم:

              کد:
               
                ... 
                unsigned char day_tmp=0, month_tmp=0, year_tmp=0, week_day=0 ,hour,min=0,sec=0;
                unsigned char str_temp[32]="       ";
                rtc_get_time(&hour, &min, &sec);
                rtc_get_date(&week_day, &day_tmp, &month_tmp, &year_tmp);
                sprintf(str_temp,"%4d/%02d/%02d  %s\n%02d:%02d  Setting",year_tmp,month_tmp ,day_tmp,WDays[week_day],hour,min);
                lcd_gotoxy(0,0);
                lcd_puts(str_temp);
                ...
              گفتم شاید مشکل از باتری باشه ، یه ولتاژ خارجی به جای باتری دادم ولی نتیجه تغییری نکرد.
              احتمالش هست مشکل از آی سی ds1307 باشه؟(فقط بخش باتری بکاپش مشکل داره و خودش مثل ساعت کار میکنه)

              دیدگاه


                #8
                پاسخ : مشکل با DS1307

                خب اقا کد ویژنه من کشیدم کنار فقط پایه های sda و scl رو پایه هاشو جابجا تعریف نکردی؟ راستی مدار پیچیده ای نیس چرا دورو زدی؟
                { خلاف قوانین - پاک شد }

                دیدگاه


                  #9
                  پاسخ : مشکل با DS1307

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

                  اضافه شده در تاریخ :
                  سلام
                  دوستان کسی راه حلی به ذهنش نمیرسه؟


                  اضافه شده در تاریخ :
                  سلام
                  من منتظر یاری دوستان هستم...

                  دیدگاه


                    #10
                    پاسخ : مشکل در DS1307

                    نوشته اصلی توسط sadeghjun
                    سلام
                    من منتظر یاری دوستان هستم...
                    سلام
                    ابتدا ولتاژ باتری بکاپ رو با یه ولت متر تست کن درست باشه یعنی سه ولت باشه
                    بعدش نزدیک این ای سی چند خازن 104 بزار خیلی موثره برای جلوگیری از تاثیر نویز به ds1307
                    اگه نویز بیشتر باشه مثلا بعضی وقتا 165 نشمون میده یا همینطور که میگی احتمال داره ساعتت صفر شه
                    برد جوجه کشی:
                    مطالعه پست 1 (حتما مطالعه کنید)


                    مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                    دانلود

                    توجه:
                    این برد نیمه صنعتی و خانگی هست...
                    برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                    آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                    دیدگاه


                      #11
                      پاسخ : مشکل در DS1307

                      سلام
                      ممنون
                      من این کارو کردم ولی جواب نداد.
                      حالا باید آی سی رو عوض کنم ببینم خوب میشه یا نه!

                      دیدگاه


                        #12
                        پاسخ : مشکل در DS1307

                        سلام به دوستان
                        میگم وقتی این آی سی رو به میکرو وصل کردیم و برنامه معمول واسه خوندن اطلاعات رو واسش فرستادیم
                        بعدش مگه باید کار خاصی واسه راه اندازی و کارکردنش کنیم ؟؟
                        چون من تو پروتئوس مشکلی ندارم و راحت ازش جواب میگیرم ولی در عمل ساعت و دقیقه و ثانیه رو
                        به صورت 0:0:80 نمایش میده و اصلا تغییری نمیکنه !
                        کسی این مشکل رو نداره ؟
                        مهم نیست که چه مدرکی دارید ، مهم این است که چه درکی دارید ...

                        دیدگاه


                          #13
                          پاسخ : مشکل در DS1307

                          نوشته اصلی توسط ahmad.e.c.m
                          سلام به دوستان
                          میگم وقتی این آی سی رو به میکرو وصل کردیم و برنامه معمول واسه خوندن اطلاعات رو واسش فرستادیم
                          بعدش مگه باید کار خاصی واسه راه اندازی و کارکردنش کنیم ؟؟
                          چون من تو پروتئوس مشکلی ندارم و راحت ازش جواب میگیرم ولی در عمل ساعت و دقیقه و ثانیه رو
                          به صورت 0:0:80 نمایش میده و اصلا تغییری نمیکنه !
                          کسی این مشکل رو نداره ؟
                          وقتی برای اولین بار ای ای سی روشن میشه یه بیت داره به اسم CH که تو آدرس 00 هستش توی دیتاشیت هم نوشته در موردش اون بیت رو باید 0 کنی تا کلاک شروع بشه.

                          خلاصش میشه این که روی بیت ثانیه یک بار بنویس 00

                          دیدگاه


                            #14
                            پاسخ : مشکل در DS1307

                            یعنی دیتای باینری 00000000 رو به آدرس 0 ارسال کنیم ؟
                            اینطوری که در واقع ما اومدیم مقدار ثانیه رو رو صفر تنظیم کردیم !
                            اینطوری دریافت اطلاعات بعدی بهم نمیریزه ؟
                            مهم نیست که چه مدرکی دارید ، مهم این است که چه درکی دارید ...

                            دیدگاه


                              #15
                              پاسخ : مشکل در DS1307

                              نوشته اصلی توسط ahmad.e.c.m
                              یعنی دیتای باینری 00000000 رو به آدرس 0 ارسال کنیم ؟
                              اینطوری که در واقع ما اومدیم مقدار ثانیه رو رو صفر تنظیم کردیم !
                              اینطوری دریافت اطلاعات بعدی بهم نمیریزه ؟
                              من گفتم یک بار.

                              ولی میتونی عدد ثانیه رو بخونی و بین 7 رو 0 کنی و بعد بنویسیش که ثانیه بهم نخوره.

                              دیدگاه

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