logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Układ do akwizycji danych - jaki mikrokontroler?

Zar_K 15 Lis 2010 23:13 2720 11
  • #1 8749205
    Zar_K
    Poziom 10  
    Dzień dobry,

    to mój pierwszy post, jestem bardzo początkująca w elektronice, jeszcze nigdy sama nie stworzyłam żadnego projektu układu.

    Moim zadaniem jest skonstruowania układu do akwizycji danych z różnego rodzaju czujników. Po przejrzeniu wielu projektów, mniej więcej wiem już jak powinien wyglądać cały układ, ale nie mam pojęcia jak dobrać mikrokontroler, by spełniał założenia projektu.

    Przychodzące dane będą miały 12 bitów, powinnam odczytać je z 10 kanałów (kanał będzie wybierany za pomocą multipleksera), następnie powinnam zrobić w mikrokontrolerze programowy downsampling do dowolnej zadanej częstotliwości i przesłać całą ramkę danych do komputera.

    Próbowałam znaleźć mikroprocesory 12-bitowe, ale są bardzo drogie, wybór padł więc na AVR. Bardzo proszę o wskazówki w dobraniu odpowiedniego mikroprocesora. Proszę też o pomoc jak w 8-bitowym mikroprocesorze obsługiwać 12 bitowe dane wejściowe.

    Z góry dziękuję za odpowiedź. Mam nadzieję, że mój post znalazł się w odpowiednim temacie.
  • #2 8749429
    kemot55
    Poziom 31  
    Ale "dowolna zadana częstotliwość downsamplingu" jest chyba jakoś określona. Samo słowo "dowolna" już powoduje u mnie mieszane uczucia. Właśnie od szybkości akwizycji będzie głównie zależał wybór procesora. Skąd bierzesz te 12-bitowe dane? Jak szybko je pobierasz? Jaki jest interfejs 12-bitowy: szeregowy czy równoległy? Określ ile chcesz/możesz wydać na układ :-).
  • #3 8749435
    czmi3l
    Poziom 14  
    W procesorze 8 bitowym stworzysz zmienna typu int, która ma 2 bajty czyli 16 bitów -> da rade ;-) Różnica polega na tym, że wpis do takiej zmiennej nie odbywa się w 1 cyklu zegarowym. To, że wyniki będą 12 bitowe w zmiennej 16 bitowej nic nie przeszkadza.
    Ile potrzebujesz przechowywać/przetwarzać próbek? Im więcej tym więcej procesor powinien mieć RAMu.
    Czy procesor ma mieć przetwornik ? czy jest jakiś zewnętrzny? jeżeli jest zewnętrzny to po jakim interfejsie się z nim komunikujesz? (Też nie głupio jakby procesor go obsługiwał)
  • #4 8749472
    Zar_K
    Poziom 10  
    Oh, dziękuję za szybkie odpowiedzi :)
    Dane przychodzą z RS232, konwersja A/C i filtrowanie antyaliasingowe będą zrealizowane poza mikroprocesorem (prawdopodobnie wykorzystam układ AD7890).

    Muszę odczytać
    *10 wejść analogowych (czujniki) - 12 bit, 512 Hz
    *10 wejść cyfrowych (różne przyciski)
    Następnie, po downsamplingu, dane te mają być ułożone w ramkę i przesłane do komputera po USB (układ FTDI)

    A cena? Jak już powiedziałam, jestem kompletnie zielona i nie orientuję się w cenach układów. Ale myślę, że powinno być <100zł
  • Pomocny post
    #5 8750253
    nsvinc
    Poziom 35  
    Po co komplikować układ scalakim AD7890?

    Lepiej użyć multipleksera typu DG408, i jedno wejście procka, ktory ma wbudowany ADC.
    Np. 16bitowe PICe mają wbudowany 12bitowy ADC, i nawet mają wbudowany multiplekser. STM32 to samo.

    Ja zrobiłbym to na STM32, a plusy rozwiązania to:
    - JEDEN SCALAK, procek STM32F103CBT6
    - wszystko on-chip, od ADC i demux po USB device
    - procek ten ma przyjemny zestaw instrukcji, co pozwoli cyfrowo obrobić dane z czujników szybko i sprawnie
    - Awaryjny FT232 nie jest juz do niczego potrzebny
    - Architektura 32bitowa CortexM3
    - W miarę energooszczędny

    Stosując ten procesor masz w układzie jednego głównego scalaka, obwody zasilania i garść biernych (i opcjonalnie translator RS232), co upraszcza PCB.

    Stosując AD7890 musiałabyś umiejętnie zaprojektować PCB, rozdzielić zasilania, itp...A przy procku z wbudowanym ADC wystarczy filtrować dławikiem i kondensatorem AVDD.
  • #6 8750575
    Zar_K
    Poziom 10  
    Bardzo dziękuję za sugestię. Mam jednak wielkie wątpliwości, czy poradzę sobie z lutowaniem stm32.

    Proszę o informację, jakie są koszty programatorów do stm32 i jaki najlepiej wybrać? I jakie środowisko jest wtedy używane do programowania układu? Znam język C i C++. Znalazłam gdzieś informacje o środowisku RIDE.

    Jeszcze jedna kwestia. Układ w przyszłości może zostać rozszerzony o komunikację bezprzewodową z komputerem, np przez bluetooth.
  • Pomocny post
    #7 8751144
    czmi3l
    Poziom 14  
    Jeżeli jest to projekt na uczelni, to jak się ładnie uśmiechniesz ktoś Ci przylutuje tego scalaka (np. w obudowie LQFP) :-). Programatory możesz kupić np. w KAMAMI.
    W środowisku RIDE raczej pisze się w C, wszystkie biblioteki również są napisane w C.

    Komunikację po bluetooth to jakimś zewnętrznym scalaczkiem trzeba będzie zrobić.
  • Pomocny post
    #8 8751246
    Freddie Chopin
    Specjalista - Mikrokontrolery
    czmi3l napisał:
    Programatory możesz kupić np. w KAMAMI.

    Do programowania wystarcza w 99% przypadków UART / RS-232, a skoro na płytce i tak ma być FT232, to już wszystko czego potrzeba.

    Opcji dotyczących debuggowania jest więcej, np. https://www.elektroda.pl/rtvforum/topic1191756.html

    Cytat:
    W środowisku RIDE raczej pisze się w C, wszystkie biblioteki również są napisane w C.

    "Środowisko" RIDE (jak i inne podobne mu "darmowe"), wraz z tymi całymi "bibliotekami" nadaje się najlepiej do szybkiego skasowania [;

    https://www.elektroda.pl/rtvforum/topic1313509.html
    https://www.elektroda.pl/rtvforum/topic1339518-0.html

    4/3!!
  • #9 8752002
    Zar_K
    Poziom 10  
    Bardzo dziękuję wszystkim za pomoc :) Tak, to projekt na uczelnie, ale nie będę się do nikogo uśmiechać, bo chcę się sama nauczyć :) Skorzystam z rady i wykorzystam stm32, znacznie to wszystko uprości.
  • #10 8753932
    arturt134
    Poziom 27  
    A może po prostu zapytaj na uczelni jakie programatory mają i czy mogą je pożyczyć... W gruncie rzeczy procek może być dowolny 8/16 bitowy. Najlepiej wziąć taki, pod którego masz programator i kompilator (osobiście polecałbym AVR - jest prosty, ogólnie dostępny, popularny - mnóstwo przykładów na forum, programator na LPT można samemu polutować w pół godziny, AVR Studio jest darmowe).
  • #11 8773579
    Zar_K
    Poziom 10  
    posiadam programator do atmegi8
REKLAMA