اطلاعیه

Collapse
No announcement yet.

کاربرد وقفه در ارتباط سریال؟

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

    #31
    پاسخ : کاربرد وقفه در ارتباط سریال؟

    منظور از فلوت شدن همون افت ولتاژه؟
    اون دوتا 6.8V هم VDR هستند که آی سی رو از ولتاژهای القایی که باعث سوختنش میشه محافظت می کنند.
    این ولتاژ القایی که میفرمائید مثلا تو وصل و قطع یه موتور بو جود میاد یا اینکه اگه سیم data در کناره یه سیم برق باشه اینطور میشه ؟
    ذکات علم یاد دادنه ....

    دیدگاه


      #32
      پاسخ : کاربرد وقفه در ارتباط سریال؟

      فلوت یعنی شناور. مثلا اگه ورودی AVR را پول پ یا پول دان نکنید چه اتفاقی میفته؟ حتی با نزدیک کردن دست ممکنه صفر و یک بشه. تازه این یه پایه ی جزقلیه وای به حال کابلی که کلی طولشه.

      ولتاژ القای همونطور که خودت گفتی از هرچیزی ممکنه بوجود بیاد و روی کابل اثر کنه. حتی روشن و خاموش کردن یک مهتابی

      البته شبکه RS485 شبکه ی بسیار امنیه. بخاطر اینکه از یک زوج سیم به هم تابیده و جریان تفاضلی استفاده میشه خیلی خیلی در مقابل نویز ایمنه.

      تمام اثرات محیطی همزمان روی دو سیم اتفاق میفته پس احتمال بروز خطا در دیتا تقریبا صفره اما اگه در مقابل ولتاژهای القایی روی هر دوسیم محافظت نشه می تونه باعث سوخت آی سی های RS485 بشه
      با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

      دیدگاه


        #33
        پاسخ : کاربرد وقفه در ارتباط سریال؟

        سلام
        میشه درباره اون دوتا ترانس فریت اطلاعات بدید
        ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

        وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

        r.babazadeh@yahoo.com

        دیدگاه


          #34
          پاسخ : کاربرد وقفه در ارتباط سریال؟

          نوشته اصلی توسط r.babazadeh
          سلام
          میشه درباره اون دوتا ترانس فریت اطلاعات بدید
          اوندو برای تهیه ی دو ولتاژ 5 ولت از یک ولتاژ 24 ولت بکار رفته اند. ایندو 5 ولت از هم ایزوله هستند.
          با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

          دیدگاه


            #35
            پاسخ : کاربرد وقفه در ارتباط سریال؟

            میشه نوع هسته , تعداد دور و شماره سیم رو هم بدید
            ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

            وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

            r.babazadeh@yahoo.com

            دیدگاه


              #36
              پاسخ : کاربرد وقفه در ارتباط سریال؟

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

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

              دیدگاه


                #37
                پاسخ : کاربرد وقفه در ارتباط سریال؟

                سلام . آقا حالا که بحث به این جا رسید ، یکی می تونه به ما بگه آیا برای مسافت های بالا مثلا 80 متر تا 100 متر ، آیا نمی شه از i2c استفاده کرد . البته ممکنه مجبور به استفاده از رپیتر هم باشیم . . .
                لطفا یک استاد من و تو این ضمینه راهنمایی کنه :nerd:
                هدفهای بزرگ مردان بزرگ می خواهد .

                دیدگاه


                  #38
                  پاسخ : کاربرد وقفه در ارتباط سریال؟

                  سلام به دوستان

                  میخواستم بدونم در CodeVision اگه تو روتین وقفه مربوط به دریافت USART یک تابع رو صدا بزنم اجرا میشه یا اینکه باید رجیستر USART رو بخونم و اگر flag مربوط به دریافت فعال شد تابع رو فراخونی کنم

                  مثل زیر:

                  interrupt [USART_RXC] void uart_rx_isr(void)
                  {
                  char status,data;
                  #asm
                  push r26
                  push r27
                  push r30
                  push r31
                  in r26,sreg
                  push r26
                  #endasm
                  status=UCSRA;
                  data=UDR;
                  if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                  {
                  rx_buffer[rx_wr_index]=data;
                  if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                  if (++rx_counter == RX_BUFFER_SIZE)
                  {
                  rx_counter=0;
                  rx_buffer_overflow=1;
                  };
                  };
                  #asm
                  pop r26
                  out sreg,r26
                  pop r31
                  pop r30
                  pop r27
                  pop r26
                  #endasm
                  Initial();
                  }

                  دیدگاه


                    #39
                    پاسخ : کاربرد وقفه در ارتباط سریال؟

                    نوشته اصلی توسط hamidr3za
                    سلام . آقا حالا که بحث به این جا رسید ، یکی می تونه به ما بگه آیا برای مسافت های بالا مثلا 80 متر تا 100 متر ، آیا نمی شه از i2c استفاده کرد . البته ممکنه مجبور به استفاده از رپیتر هم باشیم . . .
                    لطفا یک استاد من و تو این ضمینه راهنمایی کنه :nerd:
                    حتی بدون ریپیتر هم میشه به شرطی که سرعت را تا 100 بیت بر ثانیه پایین بیاری.
                    البته این کار مرسوم نیست.
                    با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                    دیدگاه


                      #40
                      پاسخ : کاربرد وقفه در ارتباط سریال؟

                      نوشته اصلی توسط ehsan_akbari
                      سلام به دوستان

                      میخواستم بدونم در CodeVision اگه تو روتین وقفه مربوط به دریافت USART یک تابع رو صدا بزنم اجرا میشه یا اینکه باید رجیستر USART رو بخونم و اگر flag مربوط به دریافت فعال شد تابع رو فراخونی کنم

                      مثل زیر:

                      interrupt [USART_RXC] void uart_rx_isr(void)
                      {
                      char status,data;
                      #asm
                      push r26
                      push r27
                      push r30
                      push r31
                      in r26,sreg
                      push r26
                      #endasm
                      status=UCSRA;
                      data=UDR;
                      if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                      {
                      rx_buffer[rx_wr_index]=data;
                      if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                      if (++rx_counter == RX_BUFFER_SIZE)
                      {
                      rx_counter=0;
                      rx_buffer_overflow=1;
                      };
                      };
                      #asm
                      pop r26
                      out sreg,r26
                      pop r31
                      pop r30
                      pop r27
                      pop r26
                      #endasm
                      Initial();
                      }
                      اجرا میشه. اما این روتین های اسمبلی که نوشتید رو خود کدویژن انجام میده و نیازی نیست شما اونو بنویسید.
                      با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                      دیدگاه


                        #41
                        پاسخ : کاربرد وقفه در ارتباط سریال؟

                        با سلام خدمت دوستان عزیز و استاد عزیز احمد آقای خودمون بابا کارت خیلی درسته
                        من چند وقته می خوام به تعداد حدودا 30 کنترل کننده دما با lm35 رو طراحی کنم که هر کدوم داخل یک اتاق یک ساختمون نصب می شن و به وسیله rs485 به هم شبکه میشن و و با استفاده از یک max232 به کامپیوتر وصل بشن و بشه با یه نرم افزار تحت ویژال بیسیک دمای همه رو خوند و ست پواینتشونو تغییر داد ولی تو کار با adm 485 به مشکل خوردم دو عدد از این ای سی رو دارم اول کمی باهاش کار کردم ولی فکر کنم یکیش مشکل دار شده باشه می خواستم بدونم چطور می شه این ای سی رو تست کرد اون مقاومت هایی که تو مدارتون گذاشتید منظور 4.7 k و 120 اهم هست لازمه و حتما باید باشه ؟ اگه نباشه چی می شه ؟ همین ای سی و این مقاومت های برای برقراری ارتباط rs485 کفایت می کنه چیز دیگه ای نمی خواد ؟ راستی من می خوام برای خوندن و فرستادن دیتا به تمامی کنترلر ها از پروتکل مد باس استفاده کنم . اگه نظر و یا راهنمایی دارید ممنون می شم کمکم کنید .
                        با تشکر
                        www.ElectronShop.ir

                        دیدگاه


                          #42
                          پاسخ : کاربرد وقفه در ارتباط سریال؟

                          سلام دایی
                          تست عملکرد ADM485 خیلی ساده است. کافیه روی بردبورد بزاریش و با صفر و یک کردن ورودی ها، ولتاژ خروجی ها رو ببینی.
                          مقاومتهای بایاس در سیم کشی های کوتاه ضروری نیستند. وقتی سیم ها طولانی میشن باید شبکه رو بایاس کنیم تا اثر سلفی سیم ها خنثی بشه. هر برد شبکه باید دو مقاومت برای بایاس به مثبت و منفی داشته باشه اما مقاومت لود شبکه یعنی 120 اهم باید فقط در برد مرکزی(مبدل RS485 به RS232) باشه.
                          چیز دیگه ای لازم نیست. پروتکل مودباس هم مناسبه.
                          بهتره اول با خود RS232 یه برد رو به یه PC با پروتکل مودباس وصل کنی تا از نرم افزار و سخت افزار مطمئن بشی. بعد همین برد رو با RS485 و مبدل به PC وصل کن. اگه مشکلی نبود دونه دونه برد اضافه کن.
                          در کل کار خیلی ساده ایه و تو هر قسمت مشکلی داشتی همینجا مطرح کن.
                          راستی این آی سی های ADM485 برای سوئیچ بین ارسال و دریافت کمی تاخیر دارند. میکروهای امروزی هم خیلی پرسرعت هستند و مشکلی تداخل پیش میاد که ممکنه دیتا اشتباهی بره یا بیاد.
                          پس وقتی پایه TE رو فعال می کنی تا دیتا بفرستی، یه تاخیر 1 میکروثانیه ای بزار و بعد داده رو بفرست.
                          با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                          دیدگاه


                            #43
                            پاسخ : کاربرد وقفه در ارتباط سریال؟

                            سلام احمد آقا
                            تو کار با Rs 485 به مشکل بر خوردم بدادم برس دارم دیونه می شم :angry:
                            من 4 میکرو رو با max 485 شبکه کردم و به وسیله یک مبدل 232 به 485 اطلاعات رو روی باس قرار می دم مقاومت های بایاس 470 اهمی و مقاومت ترمینال رو هم گذاشتم اطلاعات رو با ویژال بیسیک روی شبکه ارسال می کنم آدرس میکرو کنترلر ها 100 150 200 250 هست برای هر میکرو کنترلر یک ال ای دی گذاشتم که اگه ادرس مربوط به اول بود روشن بشه ادرس دهی که می کنم درست کار می کنه هر کدوم که ادرسش رو باس قرار می گیره ال ای دیشو روشن می کنه ولی یه مسئله ای ذهنمو خیلی مشغول کرده اینه که من مثلا وقتی 100 رو باس می فرستم بلافاصله همون عدد 100 به عنوان دیتای دریافت شده روی صفحه کامپیوتر میاد و بعدش فورا اون عددی که گفتم میکرو ارسال کنه رو نمایش میده من موندم چطور اون عددی که خود کامپیوتر داره ارسال می کنه دوباره میاد میره توی ورودی پورت سریال کامپیوتر یه چیز دیگم این که من به میکرو گفتم اگه ادرست رو شناسایی کردی مثلا اگر 100 رو کامپیوتر ارسال کرد تو اعداد 45 وسپس 13 رو به کامپیوتر ارسال کن عدد 45 ارسال میشه ولی عدد 13 ارسال نمیشه یه چیز دیگم بگم که من از سیگنال rts برای انتخاب جهت استفاده کردم
                            با تشکر
                            www.ElectronShop.ir

                            دیدگاه


                              #44
                              پاسخ : کاربرد وقفه در ارتباط سریال؟

                              دمت دایی جان
                              تا همین جاش هم کارت عالی بوده.
                              عددی که برمی گرده توی PC ناشی از مشکل مداره. نتونستی خط دریافت رو مسدود کنی پس همون عددی که میفرستی روی باس، وارد خط دریافت هم میشه.
                              باید دو پایه کنترلی ADM485آ‌ رو به هم وصل کنی تا همزمان نتونه ارسال و دریافت کنه.
                              شاید هم الام این دو پایه رو بهم وصل کردی؟ اگه اینطوره مشکل از نرم افزار ویژوال بیسیکه.
                              عدد 13 جزو دستورات کنترلیه. اگه توی مد اسکی داری کار می کنی این اعداد رو نمی تونی دریافت کنی چون 13 یعنی کلید اینتر!
                              درواقع ویژوال بیسیک عدد 13 رو دریافت می کنه اما نمی تونه نمایش بده چون اینتر قابل نمایش نیست!
                              با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                              دیدگاه


                                #45
                                پاسخ : کاربرد وقفه در ارتباط سریال؟

                                نوشته اصلی توسط ahmadmn
                                دمت دایی جان
                                تا همین جاش هم کارت عالی بوده.
                                عددی که برمی گرده توی PC ناشی از مشکل مداره. نتونستی خط دریافت رو مسدود کنی پس همون عددی که میفرستی روی باس، وارد خط دریافت هم میشه.
                                باید دو پایه کنترلی ADM485آ‌ رو به هم وصل کنی تا همزمان نتونه ارسال و دریافت کنه.
                                شاید هم الام این دو پایه رو بهم وصل کردی؟ اگه اینطوره مشکل از نرم افزار ویژوال بیسیکه.
                                عدد 13 جزو دستورات کنترلیه. اگه توی مد اسکی داری کار می کنی این اعداد رو نمی تونی دریافت کنی چون 13 یعنی کلید اینتر!
                                درواقع ویژوال بیسیک عدد 13 رو دریافت می کنه اما نمی تونه نمایش بده چون اینتر قابل نمایش نیست!
                                سلام ممنون از جوابت
                                در مورد اینکه گفتید دو پایه کنترل جهت به هم وصل باشن درست گفتید من پایه دزیافت رو همیشه به زمین وصل می کنم و فقط پایه انتخاب ارسال رو صفر و یک می کنم که فکر کنم با انجام موردی که اشاره کردید دیگه مشکلی نباشه در مورد کارکتر 13 هم بگم که من مقدار اسکی اونو توی ویژال بیسیک می خونم اگه کارکترشو بخونی حرف شما صحیحه
                                احمد آقا تو مدار مبدل 485 به 232 زمان ارسال هر بایت چقدر هست اینو برای اینکه یه تاخیر منطقی تو صفر و یک کردن پایه rts برای دریافت و ارسال دیتا پرسیدم
                                پیشاپیش از لطفتون ممنون
                                www.ElectronShop.ir

                                دیدگاه

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