Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

"Oscyloskop" na USB z mikrokontrolerem ATtiny45

Defenestrator 04 Sie 2009 18:10 18874 14
  • "Oscyloskop" na USB z mikrokontrolerem ATtiny45

    Oscyloskopy wysokiej jakości, zarówno standardowe jak i te przeznaczone do pracy w połączeniu z komputerem przez port USB, mogą kosztować mnóstwo pieniędzy. Okazuje się jednak, że można za równowartość 5$ zbudować swój własny "oscyloskop" wyposażony w ten interfejs. Urządzenie to jest podwójnym przetwornikiem A/D podłączanym do portu USB komputera. Aplikacja pod windows wizualizuje przebiegi zarejestrowane przez 10-cio bitowy przetwornik mikrokontrolera ATtiny45. Została ona napisana w IDE Visual Studio 2005, a jej kod źródłowy dostępny jest na stronie projektu. Firmware mikrokontrolera napisano w C i również można je stamtąd ściągnąć. Szybkość próbkowania tego urządzenia nie przekracza 100 Hz, czyli nieporównywalnie mało w stosunku do prawdziwych oscyloskopów, lecz i tak ten układ może okazać się użyteczny.

    Źródło

    "Oscyloskop" na USB z mikrokontrolerem ATtiny45 "Oscyloskop" na USB z mikrokontrolerem ATtiny45


    Fajne!
  • #2 04 Sie 2009 18:17
    muszynsk
    Poziom 12  

    Oscyloskop hmmm to dużo powiedziane. Przy 100Hz próbkowania, w teorii można obejrzeć ok 50Hz, w praktyce ok 10Hz. Mimo wszystko jako tani rejestrator jest to całkiem ciekawy projekt.

  • #3 04 Sie 2009 18:46
    jacekzat1
    Poziom 13  

    100Hz, 10bitów rozdzielczość to jakby do popularnego miernika elfly dopisać program do rejestracji danych. I zgrabnie zobrazować na ekranie. Zrobiłem dawno temu coś podobnego w delphi ale z kartą pomiarową Advantech. No ale to jest na USB więc chyba chodzi o pokazanie umiejętności obsługi tego portu.

  • #4 04 Sie 2009 19:23
    OldSkull
    Poziom 27  

    Kpina jakaś? Z łatwością można osiągnąć ponad 8kHz, tylko trzeba dodać przejściówkę do RS232/UART. Koszt wyjdzie podobny.

  • #5 04 Sie 2009 22:11
    muszynsk
    Poziom 12  

    Prawdopodobnie ograniczeniem jest software'owa implementacja obsługi portu USB, która to zżera cenne zasoby procesora i dlatego próbkowanie jest tylko 100S/s

  • #6 04 Sie 2009 23:15
    korneliuszo
    Poziom 16  

    Moim zdaniem problemem jest wykorzystanie standardowego deskryptora HID (joystick)

    Użycie nie-HID-a i libusb pewnie rozwiązałoby sprawę.

  • #7 05 Sie 2009 16:50
    4dim
    Poziom 14  

    Karta dźwiękowa da lepsze efekty... i nie trzeba jej kupować :), a soft dostępny jest w necie..

  • #8 05 Sie 2009 17:02
    enterx25
    Poziom 12  

    Lepiej już zbudować oscyloskop na pic18f2550 , usb z możliwością próbkowania kilkudziesięciu kHz. Ten jest raczej woltomierzem :)

  • #9 05 Sie 2009 17:33
    psu
    Poziom 10  

    Tak trochę z innej beczki, chociaż jednak coś z tematu :
    jak nauczyć się obsługiwać urządzenia USB (głównie programowanie) ?
    Tutaj zastosowano C#. Czy ktoś ma większe doświadczenie z USB, i mógłby polecić coś do nauki ?

  • #11 12 Sie 2009 22:44
    atom1477
    Poziom 43  

    100Hz próbkowania wynika z Pingów USB które procesor dostaje co 10ms (w zasadzie powinien co 1ms, ale to już nie pierwszy projekt w którym widzę te 10ms, więc chyba Pingi mogą też dochodzić co 10ms).
    Teoretycznie można osiągnąć większą częstotliwość próbkowania. Wystarczy uruchomić ADC w trybie FreeRunning i zbierać dane do bufora. A przy okazji odebrania Pinga od Hosta USB odsyłać więcej danych.
    Domyślam się że projekt powstał po to żeby pokazać że można zrobić to na jednym małym procesorze. Autor na 99% myślał o przejściówce USB-RS232 ale celowo jej nie zastosował. Chodziło po prostu o (mało przydatny jako oscyloskop) bajer.

  • #12 18 Sie 2009 23:30
    Petros
    Poziom 20  

    witam

    Atutem jest bardzo prosta konstrukcja. jednak z AVR można wycisnąć więcej. Sam zbudowałem coś podobnego + program pod windows. Mi udało sie uzyskać 50khz ale dane są wysyłane do komputera po wykonanym pomiarze przez rs232.

    https://www.elektroda.pl/rtvforum/viewtopic.php?t=1386229

    jak ten ATtiny obsługuje usb?

  • #13 19 Sie 2009 10:58
    atom1477
    Poziom 43  

    Ale tutaj nie chodzi o AVR ale o USB. To USB uniemożliowia uzyskanie dużej częstotliwości.
    USB jest robione programowo.

  • #14 19 Sie 2009 14:14
    OldSkull
    Poziom 27  

    @Petros: V-USB (dawniej AVRUSB).

    @atom1477: To nie do końca prawda - co prawda USB ogranicza szybkość, ale nie aż tak - widziałem już projekty z próbkowaniem dla jednego kanału ponad 6kS @ 8bit. Aczkolwiek i tak zdecydowanie lepszym rozwiązaniem jest użycie przejsciówki do rs232, gdyż obsługa portu COM na komputerze jest dość proste (można skopiować kod w C++ z MSDN i będzie działać), natomiast jeszcze nie znalazłem kodu programu na komputer aby komunikowac się przez USB. Poza tym korzystając z RSa można osiągnąć transfer nawet do 25kB/s (a pewnie i 2 krotnie więcej na jakiejś taniej przejściówce, na lepszej jeszcze więcej).
    I lepiej użyć ATmegi8 - jest tańsza, lepsza i łatwiej dostępna, a rozmiar w przypadku SMD jest bez znaczenia.

  • #15 19 Sie 2009 18:39
    atom1477
    Poziom 43  

    Chyba źle się wyraziłem. Prędkość ogranicza połączenie USB a AVR.