اطلاعیه

Collapse
No announcement yet.

اوسیلوسکوپ با رزبری‌پای پیکو

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

    #16
    در اسکپ های دیجیتال چند مفهوم تعریف شده
    فرکانس ماکزیمم که ماکزیمم فرکانسی هست که یک موج شکل سینوسی با دامنه 1 ولت پیک تو پیک رو میتونه اندازه بگیره قبل از اینکه مقدار ولتاژ به اندازه 3 دسیبل افت کنه
    در حقیقت از یک فرکانس به بعد مقدار ولتاژ اندازه گرفته شده شروع به افت میکند
    نرخ نایکویست و نظریه شانون که بر اساس اون برای اینکه شکل موج ورودی حالت خود را حفظ کند بایستی فرکانس نمونه گیری چندین برابر اون فرکانس باشه
    memory depth و record Length : دو مفهوم نزدیک به هم که حاصلضرب طول زمان نمونه ( time division ( در ماکزیمم نرخ نمونه گیری که واحد آن PTS می باشد

    اما در نهایت دیاگرام به این صورت است که نمونه گیری با adc ( با نرخ نمونه گیری متغیر ) صورت میپذیرد و بر اساس تریگر ورودی ، یک پردازش اولیه روی آن صورت میپذیرد و در حافظه رم ذخیره می شود ، سپس میکرو با پردازش اطلاعات آن را جهت نمایش خروجی به صفحه نمایش ارسال میکند

    دیدگاه


      #17
      نوشته اصلی توسط epsi1on نمایش پست ها
      ممنون.
      ۱- فکر میکنم rp2040 که پردازنده رزبری پیکو هست فقط یک adc با نرخ 500ksps داره. البته ۳ تا پین داره ولی نرخ اصلی بین این سه تا پین به اشتراک گذاشته میشه. یعنی اگر از دوتا پین استفاده بشه نرخ نصف میشه و ضاهرا با مالتی پلکسر داخلی این کار رو انجام میده.
      ۲- حقیقتش از یک پروژه ی آماده بنام rp2daq بعنوان firmware استفاده کردم. اون از dma استفاده میکنه. غیر از این بود اصلا این ریت رو جواب نمیداد.
      ۳- بله فکر خیلی خوبیه.
      ۴- صرفا هر فیش به یک تقسیم کننده ولتاژ رفته و بعد به یکی از پین‌های adc وصل شده. این باعث میشه رنجهای مختلف ولتاژ رو بشه با فیش‌های ۱ تا ۳ اندازه گیری کرد. مثلا فیش شماره ۱ اگر کلیدش روشن باشه تقسیم‌کننده‌ی ولتاژ شماره ۱ وارد کار شده و بازه ی ۰-۳ ولت رو میشه اندازه گیری کرد. اگر کلیدش خاموش باشه تقسیم کننده ولتاژ شماره ۲ وارد عمل میشه که بازه اندازه گیری رو میکنه منفی۵ الی ۵ ولت. فیش دو هم همینطور با کلید روشن و خاموش دوتا ولتاژ دیوایدر مختلف داره که باعث میشه رنج‌های ۱۰ و ۲۰ و بیشتر و کمتر قابل اندازه گیری باشن.

      PCB رو خودم در kicad کشیدم، دادم فدک چاپ کردن.
      ۱- در میکروکنترلر های مختلفی دیدم که با موازی کردن ورودی های آنالوگ، سرعت نمونه برداری به همون نسبت بالا میره، مثلا شخص روسی با موازی کردن ۴ عدد از ADC های یک میکروکنترلر STM32F303 که در حالت عادی ۶ مگاسمپل بر ثانیه هست، تونسته بود به ۲۴ مگاسمپل بر ثانیه برسه.
      اگر در مورد میکروکنترلر RP2040 این مورد صدق نمیکنه بحثش جداست.
      ۲- استفاده از DMA رو صرفا برای اطمینان ۱۰۰ درصدی پرسیدم.
      ۴- خب پس با اجرای مورد ۳ میشه یکی از فیش BNC ها رو برای ورودی اصلی انتخاب کرد و یک BNC هم برای PWM ۱ کیلوهرتز باقی بمونه، البته اصولا برای خروجی سیگنال تست فیش BNC نمیذارن.
      اما در مورد محدودیت انتقال سرعتی که گفتید ،
      مشکل دقیقا اینجاست که نمونه های شما ۱۲ بیتی هستن و به نظرم اصلا انتقال داده ۱۲ بیت ضرورتی نداره!
      اکثر اسیلوسکوپ دیجیتال هایی که استفاده میشن ADC 8 بیتی دارن که برای اکثر کار ها کفایت میکنه.
      به نظرم اگر توسط خود رزبری پای به شکل نرم افزاری ( محاسباتی ) نمونه های ۱۲ بیتی به ۸ بیت تبدیل بشن ( با تقسیم بر ۱۶ ) میتونید داده های بیشتری رو از طریق USB انتقال بدید.
      اگر هم به نظرتون ۸ بیت کمه ، نرخ ۱۰ بیتی خوبه.

      دیدگاه


        #18
        نوشته اصلی توسط HS1386 نمایش پست ها

        ۱- در میکروکنترلر های مختلفی دیدم که با موازی کردن ورودی های آنالوگ، سرعت نمونه برداری به همون نسبت بالا میره، مثلا شخص روسی با موازی کردن ۴ عدد از ADC های یک میکروکنترلر STM32F303 که در حالت عادی ۶ مگاسمپل بر ثانیه هست، تونسته بود به ۲۴ مگاسمپل بر ثانیه برسه.
        اگر در مورد میکروکنترلر RP2040 این مورد صدق نمیکنه بحثش جداست.
        ۲- استفاده از DMA رو صرفا برای اطمینان ۱۰۰ درصدی پرسیدم.
        ۴- خب پس با اجرای مورد ۳ میشه یکی از فیش BNC ها رو برای ورودی اصلی انتخاب کرد و یک BNC هم برای PWM ۱ کیلوهرتز باقی بمونه، البته اصولا برای خروجی سیگنال تست فیش BNC نمیذارن.
        اما در مورد محدودیت انتقال سرعتی که گفتید ،
        مشکل دقیقا اینجاست که نمونه های شما ۱۲ بیتی هستن و به نظرم اصلا انتقال داده ۱۲ بیت ضرورتی نداره!
        اکثر اسیلوسکوپ دیجیتال هایی که استفاده میشن ADC 8 بیتی دارن که برای اکثر کار ها کفایت میکنه.
        به نظرم اگر توسط خود رزبری پای به شکل نرم افزاری ( محاسباتی ) نمونه های ۱۲ بیتی به ۸ بیت تبدیل بشن ( با تقسیم بر ۱۶ ) میتونید داده های بیشتری رو از طریق USB انتقال بدید.
        اگر هم به نظرتون ۸ بیت کمه ، نرخ ۱۰ بیتی خوبه.
        ۱- بله من فکر میکنم rp2040 متفاوت باشه، ولی مطمعن نیستم. نمیدونم...
        ۴- بله، به نظرم اصلا میشه باقی فیش‌ها رو حذف کرد. فقط بمونه یک فیش bnc و یک تست پوینت روی مدار برای سیگنال تست یک کیلوهرتز. یعنی اسکوپ تک کاناله بشه. بد هم نیست. پیچیدگی سمت دسکتاپش هم کم میشه.
        پین‌های gpio هم فکر میکنم همه آزاد هستن و میشه باهاشون مالتیپلکسر رو کنترل کرد، به شرطی که ارتباط میکرو با مالتیپلکسر آنالوگ باشه و دیجیتال نباشه، منظورم از دیجیتال اینه که از i2c و پروتوکل‌های دیگه استفاده نشده باشه.
        منظورم از انالوگ، high و low کردن ۳ تا پینه. یعنی فقط با 0 و 1 کردن بشه مالتیپلکسر رو کنترل کرد.
        اینطوری خیلی راحته

        دیدگاه


          #19
          نوشته اصلی توسط axiom2600 نمایش پست ها
          در اسکپ های دیجیتال چند مفهوم تعریف شده
          فرکانس ماکزیمم که ماکزیمم فرکانسی هست که یک موج شکل سینوسی با دامنه 1 ولت پیک تو پیک رو میتونه اندازه بگیره قبل از اینکه مقدار ولتاژ به اندازه 3 دسیبل افت کنه
          در حقیقت از یک فرکانس به بعد مقدار ولتاژ اندازه گرفته شده شروع به افت میکند
          خیلی جالبه. آیا راهی برای اندازه‌گیری اش هست روی این اوسیلوسکوپ؟ از لحاظ تئوری منظورمه چون من فانکشن ژنراتور ندارم نمیتونم تست کنم.
          یک بار امتحان کردم و سیگنال تست 100mhz (یک صد مگاهرتز) بهش دادم و شکل موج رو تونست (تا حدودی) نشون بده ولی خوب فرکانس اشتباهی حساب کرده بود (طبق پیشگویی نایکوئست)


          نوشته اصلی توسط axiom2600 نمایش پست ها
          اما در نهایت دیاگرام به این صورت است که نمونه گیری با adc ( با نرخ نمونه گیری متغیر ) صورت میپذیرد و بر اساس تریگر ورودی ، یک پردازش اولیه روی آن صورت میپذیرد و در حافظه رم ذخیره می شود ، سپس میکرو با پردازش اطلاعات آن را جهت نمایش خروجی به صفحه نمایش ارسال میکند
          جالب بود، ممنون از توضیحاتتون. بازم میگم این روشی که شما میگید خیلی اصولی تره، ولی نیاز به یک برنامه نویس حرفه‌ای میکرو داره. و شاید‌هم یک ucی نسبتا قوی. درست نمیگم به نظرتون؟

          دیدگاه


            #20
            نوشته اصلی توسط HS1386 نمایش پست ها
            ۱- در میکروکنترلر های مختلفی دیدم که با موازی کردن ورودی های آنالوگ، سرعت نمونه برداری به همون نسبت بالا میره، مثلا شخص روسی با موازی کردن ۴ عدد از ADC های یک میکروکنترلر STM32F303 که در حالت عادی ۶ مگاسمپل بر ثانیه هست، تونسته بود به ۲۴ مگاسمپل بر ثانیه برسه.
            اگر در مورد میکروکنترلر RP2040 این مورد صدق نمیکنه بحثش جداست.
            .
            آره میدونم چکار کرده و عملیه


            نوشته اصلی توسط epsi1on نمایش پست ها
            خیلی جالبه. آیا راهی برای اندازه‌گیری اش هست روی این اوسیلوسکوپ؟ از لحاظ تئوری منظورمه چون من فانکشن ژنراتور ندارم نمیتونم تست کنم.
            یک بار امتحان کردم و سیگنال تست 100mhz (یک صد مگاهرتز) بهش دادم و شکل موج رو تونست (تا حدودی) نشون بده ولی خوب فرکانس اشتباهی حساب کرده بود (طبق پیشگویی نایکوئست)
            قانونش اینه که باید فانشن سینوسی تزریق کنید اما روشهای جایگزینی هم هست
            بنظرم استارتشو بزنید - یه حدیث بگم : اگه زیاد تو تئوری بمونیم دیگه موندیم


            نوشته اصلی توسط epsi1on نمایش پست ها
            جالب بود، ممنون از توضیحاتتون. بازم میگم این روشی که شما میگید خیلی اصولی تره، ولی نیاز به یک برنامه نویس حرفه‌ای میکرو داره. و شاید‌هم یک ucی نسبتا قوی. درست نمیگم به نظرتون؟

            خب شما بیشتر مانورتون روی استفاده از adc خارجی و گرفتن نتایج خروجی در کامپیوتره
            اما وقتی یه موج فرکانس پایین مثلا 20 هرتز رو میخواهید( به صورت کامل ) نمایش بدید لازمه که با حداکثر نرخ نمونه برداری کار کنید؟
            در ضمن یه نکته که همین ابتدای کار بایستی رعایت بشه ایزولاسیونه

            دیدگاه


              #21
              نوشته اصلی توسط axiom2600 نمایش پست ها
              خب شما بیشتر مانورتون روی استفاده از adc خارجی و گرفتن نتایج خروجی در کامپیوتره
              بله دقیقا.

              نوشته اصلی توسط axiom2600 نمایش پست ها
              اما وقتی یه موج فرکانس پایین مثلا 20 هرتز رو میخواهید( به صورت کامل ) نمایش بدید لازمه که با حداکثر نرخ نمونه برداری کار کنید؟
              نه اصلا لرومی نداره. طبق قضیه نایکویست، برای سیگنال ۲۰ هرتز حداقل باید نرخ نمونه برداری 40Hz استفاده بشه شاید 100Hz هم کافی باشه. سوال اینجاست که چه کسی میخواد برنامه نویسی میکرو رو انجام بده؟

              نوشته اصلی توسط axiom2600 نمایش پست ها
              در ضمن یه نکته که همین ابتدای کار بایستی رعایت بشه ایزولاسیونه
              ​بله برای تقسیم کننده ولتاژ و virtual ground از دو پایه AGND و ADCVref استفاده شده که نسبت به ground و 3v3 اصلی قراره جدا باشن. به نقل از اینجا

              "ADC_VREF is the ADC power supply (and reference) voltage, and is generated on Pico by filtering the 3.3V supply. This
              pin can be used with an external reference if better ADC performance is required.
              AGND is the ground reference for GPIO26-29, there is a separate analog ground plane running under these signals and
              terminating at this pin. If the ADC is not used or ADC performance is not critical, this pin can be connected to digital
              ground."​
              البته نمیدونم چرا، ولی agnd به گراند اتصال داره روی پیکو! (با اهم متر بوق میزنه). حالا نمیدونم منظور شما از ایزولاسیون همین بود؟
              جدیدترین ویرایش توسط epsi1on; ۱۱:۱۵ ۱۴۰۳/۰۷/۱۱.

              دیدگاه


                #22
                دوستان به نظر شما MP (مالتی پلکسر) چه مدلی بهتره استفاده بشه برای مدار انالوگش؟

                دیدگاه


                  #23
                  نوشته اصلی توسط epsi1on نمایش پست ها
                  دوستان به نظر شما MP (مالتی پلکسر) چه مدلی بهتره استفاده بشه برای مدار انالوگش؟
                  با سلام مجدد ،
                  بستگی به تعداد حالت ها میشه از مالتی پلکسر های 4051 ، 4052 و 4053 استفاده کرد.

                  دیدگاه


                    #24
                    نوشته اصلی توسط axiom2600 نمایش پست ها
                    آره میدونم چکار کرده و عملیه




                    قانونش اینه که باید فانشن سینوسی تزریق کنید اما روشهای جایگزینی هم هست
                    بنظرم استارتشو بزنید - یه حدیث بگم : اگه زیاد تو تئوری بمونیم دیگه موندیم



                    خب شما بیشتر مانورتون روی استفاده از adc خارجی و گرفتن نتایج خروجی در کامپیوتره
                    اما وقتی یه موج فرکانس پایین مثلا 20 هرتز رو میخواهید( به صورت کامل ) نمایش بدید لازمه که با حداکثر نرخ نمونه برداری کار کنید؟
                    در ضمن یه نکته که همین ابتدای کار بایستی رعایت بشه ایزولاسیونه
                    یه سوالی، به نظر شما میکروکنترلر چطور میتونه فرکانس رو حساب کنه و بر اساس اون نرخ نمونه برداری رو تنظیم کنه؟ منظورم اینه که با چه الگوریتمی فرکانس رو حساب میکنه؟

                    ممنون
                    جدیدترین ویرایش توسط epsi1on; ۱۹:۱۷ ۱۴۰۳/۰۷/۱۳.

                    دیدگاه


                      #25
                      نوشته اصلی توسط ​HS1386 نمایش پست ها

                      با سلام مجدد ،​
                      بستگی به تعداد حالت ها میشه از مالتی پلکسر های 4051 ، 4052 و 4053 استفاده کرد.
                      ممنون
                      آیا به نظر شما این طرح میتونه قابل استفاده باشه؟ ( با آیسی ۴۰۵۱ هست)
                      البته مقاومتها مقادیر مختلف خواهند داشت (اشتباها همه ۱۰۰کیلو نوشته شده) و اشتباها تغذیه آیسی هم وصل نشده که درست خواهد شد.

                      کد:
                      https://pasteboard.co/XsBV5oNE2LXy.jpg
                      تشکر

                      دیدگاه


                        #26
                        نوشته اصلی توسط epsi1on نمایش پست ها

                        ممنون
                        آیا به نظر شما این طرح میتونه قابل استفاده باشه؟ ( با آیسی ۴۰۵۱ هست)
                        البته مقاومتها مقادیر مختلف خواهند داشت (اشتباها همه ۱۰۰کیلو نوشته شده) و اشتباها تغذیه آیسی هم وصل نشده که درست خواهد شد.

                        کد:
                        https://pasteboard.co/XsBV5oNE2LXy.jpg
                        تشکر
                        عملی که هست ، ولی غیر اصولی هست.
                        این شیوه باعث میشه در حالت عادی ولتاژ وارد BNC بشه که باعث تداخل در مدار مورد اندازه گیری میشه.
                        بخش آنالوگ پیشنهادی رو دارم طراحی میکنم، اگر تکمیل شد همینجا میفرستم.
                        ​​​​​

                        دیدگاه


                          #27
                          نوشته اصلی توسط HS1386 نمایش پست ها

                          عملی که هست ، ولی غیر اصولی هست.
                          این شیوه باعث میشه در حالت عادی ولتاژ وارد BNC بشه که باعث تداخل در مدار مورد اندازه گیری میشه.
                          بخش آنالوگ پیشنهادی رو دارم طراحی میکنم، اگر تکمیل شد همینجا میفرستم.
                          ​​​​​
                          مرسی
                          مقاومت ورودی بعد از bnc الان مقدارش ۱۰۰کیلو‌اهم هست (روی مداری که ساختم و استفاده میکنم) و از لحاظ‌های دیگه غیر از ورود ولتاژ به bnc به نظرم بد جواب نداده.
                          چون امپدانس adc هم بالا هست (فکر میکنم در حد چند مگااهم میشه) میشه مقاومت ورودی رو بالاتر هم برد به نظرم. اگه لازمه چیزی رو تست کنم بهم بگید فوقش میگم نمیتونم
                          توی طرحتون از opamp هم استفاده میشه؟ یادمه وقتی از opamp استفاده میکردم مشکل slew rate داشت و موج pwm رو بصورت موج ذوزنقه‌ای دریافت میکرد که بیخیالش شدم. حالا شاید مال من قلابی بوده...
                          جدیدترین ویرایش توسط epsi1on; ۰۸:۰۴ ۱۴۰۳/۰۷/۱۴.

                          دیدگاه


                            #28
                            نوشته اصلی توسط epsi1on نمایش پست ها

                            مرسی
                            مقاومت ورودی بعد از bnc الان مقدارش ۱۰۰کیلو‌اهم هست (روی مداری که ساختم و استفاده میکنم) و از لحاظ‌های دیگه غیر از ورود ولتاژ به bnc به نظرم بد جواب نداده.
                            چون امپدانس adc هم بالا هست (فکر میکنم در حد چند مگااهم میشه) میشه مقاومت ورودی رو بالاتر هم برد به نظرم. اگه لازمه چیزی رو تست کنم بهم بگید فوقش میگم نمیتونم
                            توی طرحتون از opamp هم استفاده میشه؟ یادمه وقتی از opamp استفاده میکردم مشکل slew rate داشت و موج pwm رو بصورت موج ذوزنقه‌ای دریافت میکرد که بیخیالش شدم. حالا شاید مال من قلابی بوده...
                            خب اگر طرح مد نظرتون رو بستید ، میتونید با ولت متر ولتاژ BNC رو بسنجید ، اصولا باید ۰ ولت باشه ولی میبینید که ولتاژ داره ( مگر اینکه چیزی در طرح و مدار تغییر کرده باشه )
                            مشکل Slew Rate و شیب موج هم بخاطر کند بودن آپ امپ هست ( اگر از آپ امپ سریع استفاده کرده باشید ولی مشکل رو داشتید ، میتونه از تقلبی بودنش باشه )
                            اصولا آپ امپ هایی مثل TL084 برای این پروژه جواب میدن ، ولی اگر حرفه ای تر بخواییم طراحی کنیم ، آپ امپ های سریع و با پهنای باند بالا مثل LF357 و LM318 بسیار بهتر هستن.
                            و بله استفاده از آپ امپ هم مد نظر دارم ، چون برای اندازه گیری سیگنال های میلی ولتی ضروری هست.
                            ضمن اینکه با آفست دادن میشه سمت منفی موج ها رو هم اندازه گرفت .

                            دیدگاه


                              #29
                              نوشته اصلی توسط HS1386 نمایش پست ها

                              خب اگر طرح مد نظرتون رو بستید ، میتونید با ولت متر ولتاژ BNC رو بسنجید ، اصولا باید ۰ ولت باشه ولی میبینید که ولتاژ داره ( مگر اینکه چیزی در طرح و مدار تغییر کرده باشه )
                              این که شما میگید درسته. ولتاژ BNC باید شناور باشه یا امپدانس خیلی بالایی داشته باشه، حداقل بالاتر از 100kohm. ولی خوب این مدار هم بخاطر مقاوت ۱۰۰کیلو در ورودی، امپدانس نسبتا بالایی داره و به نظرم روی ولتاژ ورودی تاثیر کمی میزاره. میشه مقاومت ورودی رو بالاتر هم برد که امپدانس ورودی بالاتر بره.
                              به هر حال هرکسی یک سلیقه منحصربه‌فرد داره خیلی دوست دارم طرح تون رو ببینم، برام جالبه ... منتظر میمونم

                              دیدگاه


                                #30
                                نوشته اصلی توسط axiom2600 نمایش پست ها
                                اما در نهایت دیاگرام به این صورت است که نمونه گیری با adc ( با نرخ نمونه گیری متغیر ) صورت میپذیرد و بر اساس تریگر ورودی ، یک پردازش اولیه روی آن صورت میپذیرد و در حافظه رم ذخیره می شود ، سپس میکرو با پردازش اطلاعات آن را جهت نمایش خروجی به صفحه نمایش ارسال میکند
                                دوست عزیز یک سوال.
                                فارغ از اینکه برنامه نویسی میکرو بخواد توسط چه کسی انجام بشه، اگر بخواد محاسبات روی میکرو انجام بشه (همونطور که شما توضیح دادید)، به نظر شما حداقل مشخصات میکروکنترلر برای adc با نرخ ۱۰۰مگاسمپل بر ثانیه چقدر باید باشه؟ چقدر رم و چند کور محاسباتی و چقدر پهنای باند اتصال به کامپیوتر میخواد؟ به نظر شما این میکروی RP2350 چطوره (رزبری پیکو ۲)؟
                                ADCهای ارزان با نرخ 100 هستن (فکر میکنم مدل فِیک‌اش(!) حدود ۱۰ دلار قیمت دارن).
                                ممنون
                                جدیدترین ویرایش توسط epsi1on; ۱۵:۳۲ ۱۴۰۳/۰۷/۱۸.

                                دیدگاه

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