اطلاعیه

Collapse
No announcement yet.

ماژول RFID Reader

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

    ماژول RFID Reader

    سلام دوستان...

    من برای یه پروژه از EM-18 استفاده کردم... ولی به یه مشکلاتی برخوردم.. 1) ماژول گاهی وقت ها خود به خود یه کدهایی رو ارسال می کنه، بعضی از ماژول ها دفعاتی که براشون این اتفاق میفته خیلی زیاده و برای بعضی ها قابل چشم پوشی... می خواستم برای رفع مشکل از چک کردن XOR ارسال شده توسط ماژول استفاده کنم. ولی بعضی از ماژول ها به جای XOR اطلاعات همواره صفر رو می فرسته..
    خلاصه نیاز به همکاری شما دارم، تا یه جورایی مشکل شاید نویز و یا شاید خود ماژول رو حل کنم... چون بعضی وقت ها واقعا افتضاح میشه.. به نظر شما این مشکل با طراحی PCB قابل حله؟ چه نکاتی رو برای طراحی PCB باید در نظر بگیرم؟
    اگر راهی پیدا نشد یه ماژول مطمئن تر می خوام، شما ماژول دیگه ای سراغ دارید، که از عملکردش مطمئن باشید و تستش کرده باشید؟

    با سپاس از همفکری شما
    همیشه بزرگوار تر از آن باشید که برنجید
    و نجیب تر از آن باشید که برنجانید!

    #2
    پاسخ : ماژول RFID Reader

    سلام. من با EM-18 کار نکردم اما با RF01D کار کردم ندیدم کد نا درست ارسال کنه! البته زمان زیاد فعال نبوده. از فروشگاه هم یه ماژول G900 خریدم ولی خیلی باهاش کار نکردم!!! این ماژول خیلی کامله و همه چیز رو برای طراحی یک سیستم کنترل تردد داره مثلا می تونی کارت تعریف کنی، حذف کنی و ...

    ممکنه مشکل از نویز روی خطوط ارتباطی باشه. برای تنظیم دقیق باود ریت از کریستال 11.0592 استفاده کن (بر اساس دیتاشیت این کریستال باود ریت رو دقیقا بر روی 9600 تنظیم می کنه) و اگر PCB داری دقت کن هیچ خط دیتا یا برق از زیر ماژول عبور نکنه. برای فواصل طولانی ارتباطی از آی سی MAX232 استفاده کن و Pull UP کردن خطوط دیتا رو فراموش نکن. می تونی با یه مقاومت 10K خط دیتا رو پول پ کنی. این کار ها رو انجام بده ببین مشکل حل میشه
    STM32 واقعا یه چیز دیگه است...

    دیدگاه


      #3
      پاسخ : ماژول RFID Reader

      سلام
      EM18 کار کردم و ندیدم تاحالا کد الکی بفرسته :redface:

      شما یک بار دیگه امتحان کنید و اینکه سعی کنید خط دیتا ی بین EM18 و میکرو کوتاهترین مسیر باشه.

      در ضمن از بافر استفاده میکنید دیگه؟
      که کد رو میرو میگیره و شما میرید چک میکنید ببینید کد اومده یا نه؟
      اگه از این روش استفاده میکنید باید هر سری داخل اون رو خالی کنید. این رو یکی از دوستان بهم یاد داد
      تا قبل اون کد الکی مینوشت
      این هم لینک اون تایپک
      http://www.eca.ir/forum2/index.php?topic=101155.msg645849#msg645849

      [code=c]#ifndef RXB8
      #define RXB8 1
      #endif
      #ifndef TXB8
      #define TXB8 0
      #endif
      #ifndef UPE
      #define UPE 2
      #endif
      #ifndef DOR
      #define DOR 3
      #endif
      #ifndef FE
      #define FE 4
      #endif
      #ifndef UDRE
      #define UDRE 5
      #endif
      #ifndef RXC
      #define RXC 7
      #endif
      #define FRAMING_ERROR (1<<FE)
      #define PARITY_ERROR (1<<UPE)
      #define DATA_OVERRUN (1<<DOR)
      #define DATA_REGISTER_EMPTY (1<<UDRE)
      #define RX_COMPLETE (1<<RXC)
      // USART Receiver buffer
      #define RX_BUFFER_SIZE 12
      char rx_buffer[RX_BUFFER_SIZE];
      #if RX_BUFFER_SIZE <= 256
      unsigned char rx_wr_index,rx_rd_index,rx_counter;
      #else
      unsigned int rx_wr_index,rx_rd_index,rx_counter;
      #endif
      bit rx_buffer_overflow; // This flag is set on USART Receiver buffer overflow
      interrupt [USART_RXC] void usart_rx_isr(void) // USART Receiver interrupt service routine
      {
      char status,data;
      status=UCSRA;
      data=UDR;
      if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
      {
      rx_buffer[rx_wr_index++]=data;
      #if RX_BUFFER_SIZE == 256
      // special case for receiver buffer size=256
      if (++rx_counter == 0) rx_buffer_overflow=1;
      #else
      if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
      if (++rx_counter == RX_BUFFER_SIZE)
      {
      rx_counter=0;
      rx_buffer_overflow=1;
      }
      #endif
      }
      }

      #ifndef _DEBUG_TERMINAL_IO_
      // Get a character from the USART Receiver buffer
      #define _ALTERNATE_GETCHAR_
      #pragma used+
      char getchar(void)
      {
      char data;
      while (rx_counter==0);
      data=rx_buffer[rx_rd_index++];
      #if RX_BUFFER_SIZE != 256
      if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
      #endif
      #asm("cli&quot
      --rx_counter;
      #asm("sei&quot
      return data;
      }
      #pragma used-
      #endif
      void main(void)
      {
      کدی که صفر میکنه :
      rx_buffer[12] = 0;
      و ادامه کد ها.

      [/code]

      در ضمن از ویزارد کد ویژن استفاده کنید این کد ها خودش تولید میشن.
      "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
      ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
      ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
      پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

      دیدگاه


        #4
        پاسخ : ماژول RFID Reader

        سلام دوستان ممنون از راهنمایی تون

        اینکه می گم کد بی خود میفرسته رو باید بگم شاید حدودا 200 تا دستگاه ساختیم، و بعضی از دستگاهها اصلا خاموش نمی شن. و در طولانی مدت این اتفاق می افته. برای گرفتن اطلاعات از وقفه UART استفاده شده. اینکه می گم کد بی خود می فرسته این طور نیست که کد کارت یا تگی را اشتباه بفرسته... دستگاه روشنه بعد یهو می بینی خود به خود بوق می زنه و یه کد خونده میشه!! این اتفاق بیشتر هم در نیمه های شب می فته که کارتی به دستگاه نزدیک نمی شه!! :mrgreen:

        پول پ نکردم، فکر خوبیه حتما امتحان می کنم.
        یه سوال؛ اگه برای فضای زیر ماژول، مس PCB رو نگه دارم و زمینش کنم، می تونه تا حدی کمک کنه به مشکل، نویز محیط رو بگیره یا...؟ یا ممکنه بدتر بشه؟

        با سپاس از همفکری شما...
        همیشه بزرگوار تر از آن باشید که برنجید
        و نجیب تر از آن باشید که برنجانید!

        دیدگاه


          #5
          پاسخ : ماژول RFID Reader

          سلام
          به نظر من زیر ماژول رو مس کنید ممکنه از برد مفید ماژول کم کنه
          همون پول پ کار خوبیه و جواب میده
          از صحت سنجی داده ها هم میتونید استفاده کنید یعنی به داده های فاقد اعتبار اصلا توجه نکنید.
          یا هم میتونید زیر ماژول رو مس کنید ولی از آنتن خارجی استفاده کنید که شخصا توصیه نمیکنم.

          دیدگاه


            #6
            پاسخ : ماژول RFID Reader

            نوشته اصلی توسط sml_sampad
            سلام
            به نظر من زیر ماژول رو مس کنید ممکنه از برد مفید ماژول کم کنه
            همون پول پ کار خوبیه و جواب میده
            از صحت سنجی داده ها هم میتونید استفاده کنید یعنی به داده های فاقد اعتبار اصلا توجه نکنید.
            یا هم میتونید زیر ماژول رو مس کنید ولی از آنتن خارجی استفاده کنید که شخصا توصیه نمیکنم.
            آخه مشکل اینجاست که من برای تعدادی ماژول تست کردم، بعضی از ماژول ها دو بایت آخر مربوط به صحت سنجی رو صفر می فرستند... اگر برای این ماژول ها از صحت سنجی استفاده بشه، هیچ کارت یا تگی رو نمی خونه.. عملا ماژول بلا استفاده میشه که تعدادشون کم هم نیست...
            همیشه بزرگوار تر از آن باشید که برنجید
            و نجیب تر از آن باشید که برنجانید!

            دیدگاه


              #7
              پاسخ : ماژول RFID Reader

              آخه من خودم چندین بار این کارو کردمو با این ماژول کار کردم مشکلی نداشت
              شما نکات ایمنی رو رعایت کردی؟؟
              خازن 104 نزدیک خروجی و ورودی؟
              خازن ظرفیت بالا سر راه تغذیه؟
              شما یقین دارید که ماژول کامل و بی نقص تغذیه میشه؟

              دیدگاه


                #8
                پاسخ : ماژول RFID Reader

                نوشته اصلی توسط sml_sampad
                آخه من خودم چندین بار این کارو کردمو با این ماژول کار کردم مشکلی نداشت
                شما نکات ایمنی رو رعایت کردی؟؟
                خازن 104 نزدیک خروجی و ورودی؟
                خازن ظرفیت بالا سر راه تغذیه؟
                شما یقین دارید که ماژول کامل و بی نقص تغذیه میشه؟
                منون دوست عزیز،
                خازن نزدیک به تغذیه خود EM-18 نه، ولی تغذیه کلی ولتاژ خوب و پایداری داره، بقیه قطعات همه با همین تغذیه، تغذیه شدند... مقاومت PULL UP نذاشته بودم البته، که الان اضافه کردم تا تست بگیرم...

                منظورتون از ورودی وخروجی چیه؟
                تا حالا شما از صحت سنجی استفاده کردین؟ برای چه تعداد ماژول؟ آیا جواب داده؟

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

                دیدگاه


                  #9
                  پاسخ : ماژول RFID Reader

                  سلام دوستان
                  اومدم بگم که پول پ خط دیتا هم مشکل رو حل نکرد. :mrgreen:
                  اگه باز از دوستان کسی چیزی به ذهنش می رسه، خوشحال میشم راهنمایی کنه...

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

                  دیدگاه


                    #10
                    پاسخ : ماژول RFID Reader

                    دوست عزیزم دیتاشیت ماژول رو مطالعه کنید.

                    دیدگاه


                      #11
                      پاسخ : ماژول RFID Reader

                      نوشته اصلی توسط sml_sampad
                      دوست عزیزم دیتاشیت ماژول رو مطالعه کنید.
                      ا
                      ممنون دوست عزیز، دیتا شیت رو تا حالا بارها مطالعه کردم.
                      همیشه بزرگوار تر از آن باشید که برنجید
                      و نجیب تر از آن باشید که برنجانید!

                      دیدگاه

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