اطلاعیه

Collapse
No announcement yet.

مبدل آنالوگ به دیجیتال AD7190

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

    #61
    پاسخ : مبدل آنالوگ به دیجیتال AD7190

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

    منبع » آزمایش های تجربی دایی و آزمایش های تجربی خودم، بررسی های فنی
    خب یعنی شیلد USB و شیلد لودسل و بدنه به هم وصل میشن
    بعد از زمین برد یه سیم ضخیم وصل میشه به اینا
    بعد یه چیز دیگه
    شیلد لودسل از طرف لود سل آیا به زمین وصله یا به بدنه فلزی لودسل؟!!
    ببین توی این تصویر شیلد طرف لودسل به زمین همون طرفه و گفته اگر مستقیم وصل شه به زمین اینطرف جریان چرخشی تو مدار پیش میاد


    آیا شما خازن گذاشتی ببینی چطور میشه؟!!!


    این آمده با خازن و بدون خازن نویز رو بررسی کرده و گفته خازن باشه خیلی بهتر میشه ( مقدار خازن از 0.01 میکرو تا 1 میکرو فاراد )
    البته اینا رو فقط برای یادگیری خودم میپرسم و برای برد همون کاری گفتیدو انجام میدم
    درایور شبکه و nRF24L01
    کاتالوگ محصولات
    کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
    شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
    فروش اسیلوسکوپ GWinstek GOS-630FC

    دیدگاه


      #62
      پاسخ : مبدل آنالوگ به دیجیتال AD7190

      شیلد لودسل به بدنه وصل هست
      البته گذاشتن خازن می تونه کار درستی باشه
      به شرط اینکه خازن ولتاژ بالا بذاری. مثل Y Cap

      به هر حال این سوال رو برای استاد کوهستانی می فرستم و ببینم نظر ایشون چیه.
      برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
      http://hosseinwalkingday.com

      دیدگاه


        #63
        پاسخ : مبدل آنالوگ به دیجیتال AD7190

        نوشته اصلی توسط مرتضی م.
        شیلد لودسل به بدنه وصل هست
        البته گذاشتن خازن می تونه کار درستی باشه
        به شرط اینکه خازن ولتاژ بالا بذاری. مثل Y Cap

        به هر حال این سوال رو برای استاد کوهستانی می فرستم و ببینم نظر ایشون چیه.
        آقا من الان تست گرفتم دیدم زمین USB کامپیوترم به شیلد USB وصله :angry:
        خب اینطوری باشه که زحمتا مارو حدر میده
        حتی لپ تاپ هم همینطوره کلا شیلدو زمینشون یکیه

        یه سوال دیجیتال :
        دایی مرتضی استاد کوهستانی توش شماتیکی که گذاشتن برای AD7730


        خیلی روی مقاومتای پول پ خط SPI تاکید کردن و گفتن ضروری هستن
        توی شماتیک من نیست ، شما میگی بذارمشون؟!!!
        برای کدوم پایه ها بذارم؟!!
        درایور شبکه و nRF24L01
        کاتالوگ محصولات
        کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
        شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
        فروش اسیلوسکوپ GWinstek GOS-630FC

        دیدگاه


          #64
          پاسخ : مبدل آنالوگ به دیجیتال AD7190

          سلام
          نیاز به هیچ مقاومت اضافه ای نیست

          در مورد شیلد هم عینا ایمیل هایم رو با استاد اینجا می ذارم، تا بقیه هم استفاده کنند

          بنده :
          سلام استاد
          حال شما ؟

          بحث گرم شده دیگه نمی دونم چی جواب بدم

          اولین پست این صفحه رو می شه بخونید ؟

          http://www.eca.ir/forum2/index.php?topic=100295.60

          یا خلاصه بگم

          شیلد لودسل با یه خازن وصل بشه به زمین مدار، تاثیر بهتری داره ؟
          استاد :
          شیلد لودسل به بدنه لودسل وصل نیست پس می تونی به کیس مدارت وصل کنی.

          بنده :
          شیلد لودسل و شیلد یو اس بی و بدنه بهم وصل بشوند
          مجموع با یک سیم ضخیم به زمین.
          این چیزی بود که سابق ازتون اموختم


          اما نظرتون در مورد اتصال شیلد ها با یه خازن به زمین انالوگ چیه؟
          استاد :
          همیشه اینطور نیست دایی جان
          با خازن و مستقیم فرق زیادی نداره. گاهی فقط با اندازه گیری فقط میشه فهمید بهترین گزینه چیه.
          مثلا اتمل واسه USB از روش زیر استفاده می کنه:
          www.atmel.com/Images/doc8388.pdf
          بنده :
          اگه یو اس بی نباشه شیلد به جعبه وصل بشه
          و جعبه هم با یه سیم ضخیم به گراند
          خبری هم از خازن نباشه؟
          استاد :
          دقیقا
          اینجا جعبه یه مخزن پتانسیل مثل کره زمین میشه هرچی بار الکتریکی بهش وارد یا خازج میشه پتانسیلش ناگهانی تغییر نمی کنه.
          البته تو فیزیکدانی و اینها رو بهتر می تونی تحلیل کنی
          برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
          http://hosseinwalkingday.com

          دیدگاه


            #65
            پاسخ : مبدل آنالوگ به دیجیتال AD7190

            مرسی
            من نهایی کردم بردو
            براش خازن و مقاومت هم گذاشتم به صورت پشنال ( نیاز بود مونتاژ میشه نیاز نبودم هیچی )
            دیگه برد تموم شده بهتر از این نمیشد طراحیش کرد
            هم مرتضی خیلی زحمت کشید هم خودم خیلی وقت گذاشتم
            هرکی ازین برد میخواد دستا بالا یه جا سفارش بدم برامون ارزون در بیاد

            درایور شبکه و nRF24L01
            کاتالوگ محصولات
            کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
            شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
            فروش اسیلوسکوپ GWinstek GOS-630FC

            دیدگاه


              #66
              پاسخ : مبدل آنالوگ به دیجیتال AD7190

              آقا حالا یه سوال
              دایی احمد برای 7780 یا 7730 میگفتن که اگر از کانالی استفاده نمیکنید باید به یه ولتاژی بیت AVDD و AGND وصل کنید ( مثلا AVDD دوم )
              بعد من میخوام ببینم این 7190 هم همینطوره؟!
              برای کار با سنسور شتاب که من 2 تا کانال رو اونم به صورت شبه دیفرانسیلی با AINCOM میخوام بخونم اون 2 تا کانال دیگه باید آزاد باشه یا مثل 7780 باید یه ولتاژی بشون بدم؟!!!
              درایور شبکه و nRF24L01
              کاتالوگ محصولات
              کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
              شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
              فروش اسیلوسکوپ GWinstek GOS-630FC

              دیدگاه


                #67
                پاسخ : مبدل آنالوگ به دیجیتال AD7190

                نوشته اصلی توسط بسطام بیرامی
                آقا حالا یه سوال
                دایی احمد برای 7780 یا 7730 میگفتن که اگر از کانالی استفاده نمیکنید باید به یه ولتاژی بیت AVDD و AGND وصل کنید ( مثلا AVDD دوم )
                بعد من میخوام ببینم این 7190 هم همینطوره؟!
                برای کار با سنسور شتاب که من 2 تا کانال رو اونم به صورت شبه دیفرانسیلی با AINCOM میخوام بخونم اون 2 تا کانال دیگه باید آزاد باشه یا مثل 7780 باید یه ولتاژی بشون بدم؟!!!
                یه بار دیگه شماتیک رو بفرست تا چک نهایی کنم . احتمالا امشب کار تموم بشه

                این تراشه پیشرفته تر از این حرف هاست :smile:
                7780 که آزاد بودن پایه مفهومی نداره. چون فقط اختلاف ولتاژ ورودی هایش رو می گیره


                برای 7190 خیلی بخواهی سخت گیری کنی، دو تا مقاومت 2.2 کیلو بردار، با پنج ولت تقسیم مقاومتی انجام بده، 2.5 ولتی که تشکیل می شه رو بده به پایه های آزاد.
                بهترین کار کرد تراشه های آنالوگ وقتی هست که ولتاژ ورودی نصف ولتاژ تغذیه باشه...
                برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
                http://hosseinwalkingday.com

                دیدگاه


                  #68
                  پاسخ : مبدل آنالوگ به دیجیتال AD7190

                  سلام
                  آقا میشه یکم راجع به این Chop توضیح بدید که باید فعال باشه یا نه؟!
                  و این که برای چی هست
                  و یه چیز دیگه این که Sinc3 و Sinc4 با هم چه فرقی میکنن؟!!!
                  من برای این کار نیاز به حداکثر 50 نمونه در ثانیه دارم
                  یه توضیح کلی میدید که این چیزا رو چطور میشه تنظیم کرد؟!!
                  ممنون
                  درایور شبکه و nRF24L01
                  کاتالوگ محصولات
                  کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
                  شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
                  فروش اسیلوسکوپ GWinstek GOS-630FC

                  دیدگاه


                    #69
                    پاسخ : مبدل آنالوگ به دیجیتال AD7190

                    سلام
                    آقا یه سوال دیگه
                    کجای کد شما گفتی که پایه PB0 خروجی کلاک باشه؟!!!
                    منظورم تعاریف برای میکرو هست نه برای AD7190
                    [code=c]
                    //-------------MODE reg
                    #define AD7190_MODE3 ((0<<MD2) | (0<<MD1) | (0<<MD0) | (0<<DAT_STA) | (0<<CLK1) | (1<<CLK0)) //external clock on MCLK2 pin
                    [/code]
                    تو این قسمت به AD7190 میگید که کلاکتو از خارج بگیر
                    ولی میکرو از کجا میفهمه که باید کلاک با چه سرعتی روی PB0 بفرسته؟!!
                    درایور شبکه و nRF24L01
                    کاتالوگ محصولات
                    کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
                    شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
                    فروش اسیلوسکوپ GWinstek GOS-630FC

                    دیدگاه


                      #70
                      پاسخ : مبدل آنالوگ به دیجیتال AD7190

                      نوشته اصلی توسط بسطام بیرامی
                      سلام
                      آقا یه سوال دیگه
                      کجای کد شما گفتی که پایه PB0 خروجی کلاک باشه؟!!!
                      منظورم تعاریف برای میکرو هست نه برای AD7190
                      [code=c]
                      //-------------MODE reg
                      #define AD7190_MODE3 ((0<<MD2) | (0<<MD1) | (0<<MD0) | (0<<DAT_STA) | (0<<CLK1) | (1<<CLK0)) //external clock on MCLK2 pin
                      [/code]
                      تو این قسمت به AD7190 میگید که کلاکتو از خارج بگیر
                      ولی میکرو از کجا میفهمه که باید کلاک با چه سرعتی روی PB0 بفرسته؟!!
                      آها فهمیدم
                      فیوزبیت CLKOUT داره که تنظیم بشه خودش خروجی میده :applause:
                      درایور شبکه و nRF24L01
                      کاتالوگ محصولات
                      کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
                      شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
                      فروش اسیلوسکوپ GWinstek GOS-630FC

                      دیدگاه


                        #71
                        پاسخ : مبدل آنالوگ به دیجیتال AD7190

                        نوشته اصلی توسط بسطام بیرامی
                        سلام
                        آقا میشه یکم راجع به این Chop توضیح بدید که باید فعال باشه یا نه؟!
                        و این که برای چی هست
                        و یه چیز دیگه این که Sinc3 و Sinc4 با هم چه فرقی میکنن؟!!!
                        من برای این کار نیاز به حداکثر 50 نمونه در ثانیه دارم
                        یه توضیح کلی میدید که این چیزا رو چطور میشه تنظیم کرد؟!!
                        ممنون
                        نیازی نیست ذهن خودتون رو اینقدر درگیر کنید
                        برنامه رو که بخونید می بینید چقدر ساده می شه با این تراشه کار کرد.
                        اولین بار که تراشه راه افتاد، کم کم خودتون مستقلا می تونید بهترین تنظیمات رو انتخاب کنید.
                        بردها کی بدست تون می رسه ؟
                        برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
                        http://hosseinwalkingday.com

                        دیدگاه


                          #72
                          پاسخ : مبدل آنالوگ به دیجیتال AD7190

                          [code=c]zarb =(long) msb*256+(long)lsb;[/code]

                          این long که توی پرانتزه چیه داستانش؟!!

                          یکشنبه میرسه دستم
                          مونتاژ میکنم و تا شب یا نهایتا صب دوشنبه تست میکنم
                          فقط من کد رو که توی کدویژن کامپایل میکنم 80 تا وارنینگ میده ( از شما هم همینطوره؟!! )
                          و اشکالی نداره؟!!!
                          تو این مدت دارم کد رو بررسی میکنم و میخونم ببینم داستان چییه

                          یه چیز دیگه که برام مبهمه اینه که نوشته دیتا ریجیستر 24/32bit که خب متوجه میشم یا 24 بیت دیتا میده یا 32 بیت که 8 تاش استاتوسه
                          بعد ندیدم جایی بگه اول استاتوس میده یا اول چی میده؟!
                          کلا میشه کاری کرد استاتوس نده و فقط دیتا بده؟!! ( چطوری؟! )
                          و این که مثلا تو حالت 32 بیتی اول lsb اولو میده بعد lsb دوم رو میده بعد msb میده بعد استاتوس؟!!!
                          ترتیب خروجی دادنش چه طوریه؟!!!
                          میدونی چون توی کد دیدم اینطوری نوشته شده :

                          [code=c]
                          msb = spi(0);
                          lsb = spi(0);
                          status = spi(0);
                          [/code]
                          گیج شدم اگر اولین باری که کلاک بدیم 8 تا با ارزشو بده
                          بعد 8 تا کلاک بعدی 8 تا ارزش کمترو بده
                          برای دفعه بعد که کلاک میدیم قاعدتا استاتوس نمیده بی ارزش ترین بیت ها رو باید بده و
                          در کلاک بعد 8 بیت استاتوس

                          این قسمتشو میشه برام توضیح بدید؟!!!
                          درایور شبکه و nRF24L01
                          کاتالوگ محصولات
                          کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
                          شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
                          فروش اسیلوسکوپ GWinstek GOS-630FC

                          دیدگاه


                            #73
                            پاسخ : مبدل آنالوگ به دیجیتال AD7190

                            هوالحق
                            سلام
                            نوشته اصلی توسط بسطام بیرامی
                            [code=c]zarb =(long) msb*256+(long)lsb;[/code]

                            این long که توی پرانتزه چیه داستانش؟!!
                            قضیه لانگ تو پرانتز برمی گرده به برنامه نویسی. اون برنامه ای که فرستادم، وقت نداشتم بین برنامه هایم بگردم و اولین جوابی که از 7190 و لودسل گرفته بودم براتون فرستادم

                            نوشته اصلی توسط بسطام بیرامی
                            فقط من کد رو که توی کدویژن کامپایل میکنم 80 تا وارنینگ میده ( از شما هم همینطوره؟!! )
                            80 تا وارنینگ ؟؟؟ تا حالا 80 تا یجا ندیدم!
                            بجای آبروریزی کردن :biggrin: این رو دانلود کن
                            http://electrolab.ir/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-codevisionavr-v3-12
                            با پسوورد electrolab.ir بازش کن
                            بعد از نصب دو فایلی رو که داخل دایرکتوری CRACK هست از زیپ خارج کن و داخل دایرکتوری BIN کدویژن بجای فایلهای قبلی بریز
                            برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
                            http://hosseinwalkingday.com

                            دیدگاه


                              #74
                              پاسخ : مبدل آنالوگ به دیجیتال AD7190

                              اینم دقیق ترین نسخه برنامه
                              24 بیتی می خونه

                              [code=c]
                              #include <mega48pa.h>

                              // Standard Input/Output functions
                              #include <stdio.h>
                              #include <delay.h>
                              // SPI functions
                              #include <spi.h>

                              // Declare your global variables here
                              unsigned int msb,lsb,third,i;
                              char buffer[25];
                              unsigned long sum,zarb;
                              //-------------------------------------------------AD7190
                              #define AD7190_CS PORTD.6 //active low
                              #define AD7190_RDY PINB.4==0 //active low
                              #define AD7190_URATE 10
                              //------------------------
                              #define CH4 7
                              #define CH3 6
                              #define CH2 5
                              #define CH1 4
                              #define CH2_CH2 3
                              #define CH_TEMP 2
                              #define CH3_CH4 1
                              #define CH1_CH2 0
                              //------------------------
                              #define BURN 7
                              #define REFDET 6
                              #define BUF 4
                              #define U_BNOT 3
                              #define GAIN2 2
                              #define GAIN1 1
                              #define GAIN0 0
                              //------------------------
                              #define MD2 7
                              #define MD1 6
                              #define MD0 5
                              #define DAT_STA 4
                              #define CLK1 3
                              #define CLK0 2
                              //------------------------
                              //----COMM reg
                              #define AD7190_COMMUN_REG 0
                              #define AD7190_STATUS_REG 0
                              #define AD7190_MODE_REG 1
                              #define AD7190_CONFIG_REG 2
                              #define AD7190_DATA_REG 3
                              #define AD7190_ID_REG 4
                              #define AD7190_GPOCON_REG 5
                              #define AD7190_OFFS_REG 6
                              #define AD7190_FULS_REG 7
                              #define AD7190_READ_NEXT 1
                              #define AD7190_WRITE_NEXT 0
                              #define AD7190_CONTREAD 0
                              //-------------CONFIG reg
                              #define AD7190_CONFIG3 0
                              #define AD7190_CONFIG2 ((0<<CH4) | (0<<CH3) | (0<<CH2) | (0<<CH1) | (0<<CH2_CH2) | (0<<CH_TEMP) | (1<<CH3_CH4) | (0<<CH1_CH2))
                              #define AD7190_CONFIG1 ((0<<BURN) | (0<<REFDET) | (0<<BUF) | (0<<U_BNOT) | (1<<GAIN2) | (1<<GAIN1) | (1<<GAIN0)) //gain=32
                              //-------------MODE reg
                              #define AD7190_MODE3 ((0<<MD2) | (0<<MD1) | (0<<MD0) | (0<<DAT_STA) | (0<<CLK1) | (1<<CLK0)) //external clock on MCLK2 pin
                              //#define AD7190_MODE3 ((0<<MD2) | (0<<MD1) | (0<<MD0) | (0<<DAT_STA) | (0<<CLK1) | (0<<CLK0)) //crystal osc
                              #define AD7190_MODE2 (4800 / AD7190_URATE)/256
                              #define AD7190_MODE1 (4800 / AD7190_URATE)%256
                              //-----------------------------------------------------------------------------------------------
                              void AD7190_init1(void)
                              {
                              AD7190_CS = 0;
                              //------------Reset AD7190
                              spi(255);
                              spi(255);
                              spi(255);
                              spi(255);
                              spi(255);
                              //------------
                              //while(!AD7190_RDY){};
                              delay_ms(1);
                              spi(AD7190_WRITE_NEXT * 64 + AD7190_CONFIG_REG * 8);
                              spi(AD7190_CONFIG3);
                              spi(AD7190_CONFIG2);
                              spi(AD7190_CONFIG1);
                              spi(AD7190_WRITE_NEXT * 64 + AD7190_MODE_REG * 8);
                              spi(AD7190_MODE3);
                              spi(AD7190_MODE2);
                              spi(AD7190_MODE1);
                              spi(0b01011100); //Continuous read
                              AD7190_CS = 1;
                              };
                              //-----------------------------------------------------------------------------------------------

                              //Barnamey Khandan-------------------------------------------------------------------------------
                              void AD7190_read(void)
                              {
                              msb = spi(0);
                              lsb = spi(0);
                              third = spi(0);

                              ((unsigned char* ) & zarb)[2] = msb;
                              ((unsigned char* ) & zarb)[1] = lsb;
                              ((unsigned char* ) & zarb)[0] = third;
                              sum +=zarb;

                              }
                              //-----------------------------------------------------------------------------------------------

                              void main(void)
                              {
                              // Declare your local variables here

                              // Crystal Oscillator division factor: 1
                              #pragma optsize-
                              CLKPR=0x80;
                              CLKPR=0x00;
                              #ifdef _OPTIMIZE_SIZE_
                              #pragma optsize+
                              #endif

                              // Input/Output Ports initialization
                              // Port B initialization
                              // Func7=In Func6=In Func5=Out Func4=In Func3=Out Func2=Out Func1=In Func0=In
                              // State7=T State6=T State5=0 State4=T State3=0 State2=0 State1=T State0=T
                              PORTB=0x00;
                              DDRB=0x2C;

                              // Port C initialization
                              // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                              // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                              PORTC=0x00;
                              DDRC=0x00;

                              // Port D initialization
                              // Func7=In Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                              // State7=T State6=0 State5=T State4=T State3=T State2=T State1=T State0=T
                              PORTD=0x00;
                              DDRD=0x40;

                              // Timer/Counter 0 initialization
                              // Clock source: System Clock
                              // Clock value: Timer 0 Stopped
                              // Mode: Normal top=0xFF
                              // OC0A output: Disconnected
                              // OC0B output: Disconnected
                              TCCR0A=0x00;
                              TCCR0B=0x00;
                              TCNT0=0x00;
                              OCR0A=0x00;
                              OCR0B=0x00;

                              // Timer/Counter 1 initialization
                              // Clock source: System Clock
                              // Clock value: Timer1 Stopped
                              // Mode: Normal top=0xFFFF
                              // OC1A output: Discon.
                              // OC1B output: Discon.
                              // Noise Canceler: Off
                              // Input Capture on Falling Edge
                              // Timer1 Overflow Interrupt: Off
                              // Input Capture Interrupt: Off
                              // Compare A Match Interrupt: Off
                              // Compare B Match Interrupt: Off
                              TCCR1A=0x00;
                              TCCR1B=0x00;
                              TCNT1H=0x00;
                              TCNT1L=0x00;
                              ICR1H=0x00;
                              ICR1L=0x00;
                              OCR1AH=0x00;
                              OCR1AL=0x00;
                              OCR1BH=0x00;
                              OCR1BL=0x00;

                              // Timer/Counter 2 initialization
                              // Clock source: System Clock
                              // Clock value: Timer2 Stopped
                              // Mode: Normal top=0xFF
                              // OC2A output: Disconnected
                              // OC2B output: Disconnected
                              ASSR=0x00;
                              TCCR2A=0x00;
                              TCCR2B=0x00;
                              TCNT2=0x00;
                              OCR2A=0x00;
                              OCR2B=0x00;

                              // External Interrupt(s) initialization
                              // INT0: Off
                              // INT1: Off
                              // Interrupt on any change on pins PCINT0-7: Off
                              // Interrupt on any change on pins PCINT8-14: Off
                              // Interrupt on any change on pins PCINT16-23: Off
                              EICRA=0x00;
                              EIMSK=0x00;
                              PCICR=0x00;

                              // Timer/Counter 0 Interrupt(s) initialization
                              TIMSK0=0x00;

                              // Timer/Counter 1 Interrupt(s) initialization
                              TIMSK1=0x00;

                              // Timer/Counter 2 Interrupt(s) initialization
                              TIMSK2=0x00;

                              // USART initialization
                              // Communication Parameters: 8 Data, 1 Stop, No Parity
                              // USART Receiver: On
                              // USART Transmitter: On
                              // USART0 Mode: Asynchronous
                              // USART Baud Rate: 9600
                              UCSR0A=0x00;
                              UCSR0B=0x18;
                              UCSR0C=0x06;
                              UBRR0H=0x00;
                              UBRR0L=0x1F;

                              // Analog Comparator initialization
                              // Analog Comparator: Off
                              // Analog Comparator Input Capture by Timer/Counter 1: Off
                              ACSR=0x80;
                              ADCSRB=0x00;
                              DIDR1=0x00;

                              // ADC initialization
                              // ADC disabled
                              ADCSRA=0x00;

                              // SPI initialization
                              // SPI Type: Master
                              // SPI Clock Rate: 307.200 kHz
                              // SPI Clock Phase: Cycle Half
                              // SPI Clock Polarity: High
                              // SPI Data Order: MSB First
                              SPCR=0x5D;
                              SPSR=0x00;

                              // TWI initialization
                              // TWI disabled
                              TWCR=0x00;

                              //// Watchdog Timer initialization
                              //// Watchdog Timer Prescaler: OSC/16k
                              //// Watchdog Timer interrupt: Off
                              //#pragma optsize-
                              //#asm("wdr&quot
                              //WDTCSR=0x1B;
                              //WDTCSR=0x0B;
                              //#ifdef _OPTIMIZE_SIZE_
                              //#pragma optsize+
                              //#endif


                              AD7190_init1();
                              AD7190_CS= 0;
                              delay_ms(1000);
                              sum = 0;
                              i = 0 ;
                              while (1)
                              {
                              //Channal 1

                              AD7190_CS= 0;
                              delay_ms(1);
                              if (AD7190_RDY)
                              {
                              AD7190_read();
                              i += 1;
                              if (i==4)
                              {
                              sprintf(buffer,"%lu",sum);
                              puts(buffer);
                              sum = 0;
                              i =0;
                              }
                              }


                              }
                              }
                              [/code]

                              برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
                              http://hosseinwalkingday.com

                              دیدگاه


                                #75
                                پاسخ : مبدل آنالوگ به دیجیتال AD7190

                                مرسی مرتضی جان
                                متوجه شدم اول 8 بیت با ارزشو میده بعد 8 بیت وسط و در نهایت 8 بین کم ارزش ( که شما میگی خونده نشده بهتره )
                                بعد یه چیزی تو کد هست شما آمدی 4 بار میخونی
                                [code=c]
                                AD7190_read();
                                i += 1;
                                if (i==4)
                                {
                                sprintf(buffer,"%lu",sum);
                                puts(buffer);
                                sum = 0;
                                i =0;
                                }
                                [/code]
                                ولی جایی ندیدم این 4 بار رو که میخونی و با هم جمع میکنی و توی Sum میریزی بعد تقسیم بر 4 کنی
                                خب اینطوری که عددی که نمایش داده میشه 4 برار مقدار واقعیه ( نباید تقسیم بر 4 بشه؟! )
                                منم تو کدهای میام چند بار میخونم که دقت بره بالا تر بعد میانگین میگیرم ولی اینجا فقط جمع شده

                                شرمنده اینم میشه برام توضیح بدی :sad:
                                [code=c]
                                #define AD7190_MODE2 (4800 / AD7190_URATE)/256
                                #define AD7190_MODE1 (4800 / AD7190_URATE)%256
                                [/code]

                                مثلا 50 نمونه میخوام
                                میای بیشترین مقدار AD7190 که 4.8k هست رو تقسیم بر 50 میکنی بعد باقیمانده و خارج قسمتشو میریزی تو ریجیسترای MODE ؟!!!
                                این داستانش چطوریه؟!!
                                درایور شبکه و nRF24L01
                                کاتالوگ محصولات
                                کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
                                شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
                                فروش اسیلوسکوپ GWinstek GOS-630FC

                                دیدگاه

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