اطلاعیه

Collapse
No announcement yet.

ارتباط سریال و نویز

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

    ارتباط سریال و نویز

    سلام دوستان، من برنامه زیر رو برای Atmega16 نوشتم. یک وقفه است برای اینکه اطلاعاتی که سریال به میکرو وارد میشه رو روی lcd نشون بده.
    مشکل اینجاست که پایه RXD میکرو به یک سیم کوتاه وصله که اون سرش به هیچ جا وصل نیست ولی روی LCD یه سری علامت های عجیب میاد و میره. من تو خونه Wireless Modem دارم، حدس زدم که مشکل از اون باشه، وقتی خاموشش کردم به نظر بهتر شد ولی هنوز هم روی LCD اعداد و کاراکتز های عجیب میان و میرن. اگر هم سیمی که به پایه RXD وصل هست رو قطع کنم روی LCD عدد 0 رو نشون میده که بنظرم درسته. من میخوام از ماژول RF01D اطلاعات سریال دریافت کنم ولی با این شرایط اصلا هیچ اطلاعات درستی دریافت نمی شه. اگه میشه دوستان منو راهنمایی کنن.


    کد:
    $regfile = "m16def.dat" : $crystal = 8000000
    $baud = 9600
    Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = _
    Porta.6 , Db7 = Porta.7 , E = Porta.2 , Rs = Porta.0
    Config Lcd = 16 * 2
    
    Enable Interrupts
    Enable Urxc
    On Urxc Intlab
    
    Intlab:
    Dim Usart_data As Byte
    Usart_data = Udr
      Cls : Lcd Usart_data
    Return
    End

    #2
    پاسخ : ارتباط سریال و نویز

    پایه rx میکرو ورودی تعریف کن بعد
    اوونو set کن
    { خلاف قوانین ، پاک شد }

    دیدگاه


      #3
      پاسخ : ارتباط سریال و نویز

      شما حتما پایه RXآ‌ میکرو رو با یک مقاومت مناسب PULL DOWN کن. این بخاطر وجود نویز و اینکه سیم مرتبط بصورت آنتن عمل میکنه!!
      موفق باشی.

      دیدگاه


        #4
        پاسخ : ارتباط سریال و نویز

        من خودم با RF01D کار کردم مشکلی پیش نمیاد وقتی که rx میکرو به tx ماژول متصل بشه درست میشه

        دیدگاه


          #5
          پاسخ : ارتباط سریال و نویز

          مرسی از پاسخ دوستان، من پایه ی RXD میکرو رو که همون D.0 هست رو input تعریف کردم. هیچ فرقی نکرد.
          با یک مقاومت 10K هم Pull Down کردم باز هم هیچ فرقی نکرد.
          من هم شنیده بودم که نباید هیچ مشکلی وجود داشته باشه ولی به نظرم من توی اتاقم یک نویز عجیب دارم که داره کارم رو خراب می کنه.
          دوستان پیشنهاد دیگه ای ندارن؟

          دیدگاه


            #6
            پاسخ : ارتباط سریال و نویز

            100K رو امتحان کردم، LCD عدد 0 رو نشون می ده یعنی اثر نویز ظاهرا از بین رفته. ولی وقتی روی ماژول کارت می کشم، فقط عدد 5 یا 4 یا 6 یا 0 رو نشون می ده. اون اطلاعاتی که باید نشون بده رو نشون نمی ده. ممکنه مقاومت اطلاعات رو نادرست کنه؟

            دیدگاه


              #7
              پاسخ : ارتباط سریال و نویز

              کسی نیست کمک کنه؟؟؟ :angry:
              بعد یه سوال دیگه، مگه وقتی می نویسیم On Urxc intLab معنیش این نیست که فقط وقتی اطلاعات سریال وارد شدن وقفه فعال یشه و بره به روتین؟ مدار من همش توی روتینه. یعنی فرقی نداره اطلاعات میاد یا نه، همش توی روتینه intlab هست. :angry:
              چیکار کنم؟ کسی با این RF01D و ازتباط سریالش کار نکرده؟ من باید دنبال کاراکتر ☻ به معنی شروع اطلاعات کارت و ♥ به معنی پایان اطلاعات باشم، ولی اطلاعتی که به پورت سریالم وارد می شه یه مشت چرت و پرت هست و اصلا اینا نیست.

              دیدگاه


                #8
                پاسخ : ارتباط سریال و نویز

                پس انتظار دارید کجا باشه؟

                کل برنامتون از کانفیگ uart و Lcd و یه زیر برنامه تشکیل شده!
                حداقل یه Do-Loop بذار.

                دیدگاه


                  #9
                  پاسخ : ارتباط سریال و نویز

                  Do-Loop هم گذاشتم ولی باز هم فقط توی روتین هست. منظورم اینه که lcd فقط 0 نشون می ده و مثل اینکه 0 رو به عنوان ورودی می دونه.
                  خیلی عجیبه ولی امروز که مدار رو روشن کردم دیگه نویز نداره. وقتی کارت رو نزدیک می کنم شروع می کنه یه سری عدد نشود می ده. این اعداد با 2 شروع می شن ولی برای یک کارت خاص مدام عوض می شن. یعنی آدم انتظار داره وقتی یک کارت رو 10 دفعه می کشه، 10 دفعه هم یک id دریافت کنه ولی اینجا 10 تا id مختلف دریافت می کنه. دیگه کم کم دارم دیوونه می شم از دست این RFID. :angry: :angry: :angry:

                  دیدگاه


                    #10
                    پاسخ : ارتباط سریال و نویز

                    برنامتون باید به این شکل باشه:

                    regfile = "m16def.dat" : $crystal = 8000000
                    $baud = 9600
                    Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = _
                    Porta.6 , Db7 = Porta.7 , E = Porta.2 , Rs = Porta.0
                    Config Lcd = 16 * 2

                    On Urxc Intlab
                    Enable Interrupts
                    Enable Urxc

                    do
                    loop
                    end

                    Intlab:
                    Dim Usart_data As Byte
                    Usart_data = Udr
                    Cls : Lcd Usart_data
                    Return

                    دیدگاه


                      #11
                      پاسخ : ارتباط سریال و نویز

                      آقای حمید رضا، مرسی از جوابتون، هیچ فرقی نکرد. من الان مشکلم اینه که وقتی کارت رو نزدیک به آنتن می کنم، هر دفعه یه چیزی نشون می ده.

                      دیدگاه

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