Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Jaki mikrokontroler 4 kanałowym przetwornikiem AC?

play00 10 May 2007 19:29 1790 7
  • #1
    play00
    Level 11  
    Poradźcie szanowni Panowie w wyborze µC z 4 kanałowym przetwornikiem ac. Chodzi o to żeby odczytywać z 4 bądź 6 źródeł impulsy 12v o częstotliwości do 20 kHz, następnie wartość była by sumowana, mnożona przez pewną wartość i wyświetlana na wyświetlaczu np. LCD.
    Będę wdzięczny za pomoc w wyborze i wskazówki jeśli chodzi o zaprogramowanie takiego układu i przykładowy schemat.
    Jeśli byłby ktoś chętny do wykonania takiego układu oczywiście odpłatnie to proszę o wiadomość play00(malpa)poczta.onet.pl
  • #2
    MirekCz
    Level 35  
    Przy tak wysokiej częstotliwości trudno będzie znaleźć uC, który byłby wstanie z 6 kanałów jednocześnie pobierać próbki. Do takich rzeczy jak już stosuje się procesory DSP (nie wiem czy jesteś nimi zainteresowany).

    Nie określiłeś też ile tych próbek dokładnie ma być (częstotliwość 20kHz to częstotliwość próbkowania, czy częstotliwość np. sinusoidy - a próbkowanie powinno być wielokrotnie wyższe)

    Pomyśl raczej o zewnętrznych przetwornikach.

    Oczywiście przed przetwornikiem ADC będziesz jeszcze potrzebował jakiegoś dzielnika napięcia...
  • #3
    VanThor
    Level 19  
    Najważniejsze pytania, na które trzeba znać odpowiedzi to:
    - rozdzielczość próbkowania,
    - częstotliwość próbkowania,
    - czy próbki z wszystkich kanałów muszą być pobrane w tym samym momencie.

    Jeśli nie muszą być pobierane równocześnie, to można użyć mikrokontrolera:
    - ADuC702x firmy Analog Devices - posiada przetwornik 12bitowy o szybkości próbkowania 1MSps,
    - STR91x firmy ST - posiada przetwornik 10bitowy o szybkości próbkowania około 1,4MSps.
    Przetworniki w obu wymienionych układach posiadają co najmniej 4 kanały wejściowe.

    Jeśli wszystkie próbki muszą być koniecznie pobierane w tym samym momencie to rozwiązaniem jest układ FPGA i kilka przetworników.
  • #4
    _Matik_
    Level 19  
    Czemu od razu FPGA? W przypadku koniecznosci jednoczesnego przetwarzania probek wystarczy zastosowac mikrokontroler + odpowiednie przetworniki zewnetrzne.
    Ja w pracy inzynierskiej stosowalem AD7895 ktory ma wejscie CONV do wyzwalania pomiaru. Magistrale SPI mozna kluczowac odpowiednim multiplekserem analogowym.

    Jezeli nie jest konieczne jednoczesne wyzwalanie tylko sekwencyjne, typu: kanal1, kanal2, kanal3, itp. to moim zdaniem idealnym tanim rozwiazaniem bedzie do tego projektu LPC2101, ktory w przypadku zabrakniecia flasha mozna zastapic LPC2102/2103.

    Mozna sie tez pokusic o at91sam7s ktory:
    - pozwala na zapis danych z ADC do pamieci przez DMA co zupelnie odciazy procek
    - ma zdecydowanie wystarczajaca predkosc probkowania (ja tym probkuje 8 kanalow dzwiekowych 32kHz
    - jest niestety troche drozszy od LPC

    Bycmoze moglbym sie podjac tego zadania, chociaz jestem w tej chwili mocno obciazony i potrzebowalbym wiecej czasu. Oczywiscie taki projekt to kilkadziesiat godzin siedzenia wiec i cena nie bylaby najnizsza. Jakby co to prosze o kontakt na PW, moze sie dogadamy.
  • #5
    VanThor
    Level 19  
    _Matik_ wrote:
    Magistrale SPI mozna kluczowac odpowiednim multiplekserem analogowym.

    Magistralę SPI kluczować? Po to jest magistralą, żeby nie trzeba było jej sygnałów kluczować. I to jeszcze multiplekserem analogowym.

    _Matik_ wrote:
    - pozwala na zapis danych z ADC do pamieci przez DMA co zupelnie odciazy procek

    Projekt nie jest skomplikowany, więc nie jest to kluczowa funkcjonalność mikrokontrolera. Poza tym z opisu wynika, że próbki nie będą przechowywane, a znaleźć się w rejestrach roboczych rdzenia i tak muszą, więc użycie DMA może być tylko sztuką dla sztuki.

    _Matik_ wrote:
    - ma zdecydowanie wystarczajaca predkosc probkowania (ja tym probkuje 8 kanalow dzwiekowych 32kHz

    Rozumiem, że próbkujesz w każdym kanale z szybkością 32kSps.

    _Matik_ wrote:
    Oczywiscie taki projekt to kilkadziesiat godzin siedzenia

    To dużo czasu. Sądząc po opisie, projekt nie jest aż tak skomplikowany.


    Wszystko zależy teraz od autora wątku.
    Może wystarczy rozdzielczość 10bitów (LPC2101/2/3, AT91SAM7S, STR91x), może wystarczy też szybkość próbkowania do około 500kSps (AT91SAM7S) lub 400kSps (LPC2101/2/3). A może nie...
  • #6
    play00
    Level 11  
    Dziękuje za podpowiedzi.
    Moze nie do końca precyzyjnie okreslilem o co mi chodzi.
    Wszystko dotyczy odczytywania sygnałów, które sterownik samochodu podaje do wtryskiwaczy wiec odpowiedz na pytanie czy z wszystkich kanałów sygnały muszą być odczytywane jednocześnie brzmi TAK.
    Co do częstotliwości to 20kHz to troszkę przesadziłem. Ta częstotliwość to odczyt samego sygnału czyli przyjmijmy ze to sinusoida. Czyli zliczanie samych impulsów 12v czyli do góra (z lekkim naddatkiem) 10kHz.
    Zbaczając z tematu to czy układem ADC0832 podłączonym do portu LPT da się przetwarzać sygnał ( 12v z 1 wtryskiwacza o częstotliwość wtrysku ok 3kHz) na komputer i jakim programem dało by się to odczytać w formie wykres. Poniżej wykres impulsu do wtryskiwacza.
  • #7
    _Matik_
    Level 19  
    Quote:
    Magistralę SPI kluczować? Po to jest magistralą, żeby nie trzeba było jej sygnałów kluczować. I to jeszcze multiplekserem analogowym.


    Fakt, multiplekser analogowy jest oczywiscie niekonieczny, z tym ze kosztuje paredziesiat groszy i sprawdza sie doskonale. Podalem tylko przyklad ktory ja kiedys tam zastosowalem.
    Wykorzystalem magistrale SPI ktora nie posiada adresowania (a zastosowane przetworniki nie posiadaja sygnalu chip select) w zwiazku z czym kluczowanie sygnalu zegara wydaje sie najodpowiedniejsze (poza tym dziala i jest tanie).


    Quote:
    Projekt nie jest skomplikowany, więc nie jest to kluczowa funkcjonalność mikrokontrolera. Poza tym z opisu wynika, że próbki nie będą przechowywane, a znaleźć się w rejestrach roboczych rdzenia i tak muszą, więc użycie DMA może być tylko sztuką dla sztuki.


    Bycmoze ale, 120 tysiecy przerwan na sekunde moze stanowic problem nawet dla arma jezeli ma on robic jakies bardziej skomplikowane operacje matematyczne na probkach.
    Poza tym kolega chce probkowac 20kprobek/s na kanal i chyba nie chce z taka czestotliwoscia wyrzucac tego na LCD wiec jednak cos wiecej chce z nimi robic (chociazby usredniac czy filtrowac).

    Quote:
    To dużo czasu. Sądząc po opisie, projekt nie jest aż tak skomplikowany.


    Kilkadziesiat - czyli na logike rzecz biorac, conajmniej 50-dziesiat. Po namysle jednak zostalbym przy tej wartosci. Tymbardziej ze szczegoly np. czesci analogowej nie sa znane.

    Quote:
    Wszystko zależy teraz od autora wątku.
    Może wystarczy rozdzielczość 10bitów (LPC2101/2/3, AT91SAM7S, STR91x), może wystarczy też szybkość próbkowania do około 500kSps (AT91SAM7S) lub 400kSps (LPC2101/2/3). A może nie...


    Na podstawie uzyskanych od kolegi danych w tym watku taka predkosc probkowania powinna wystarczyc z zapasem.

    UPDATE:
    Oczywiscie kolega play00 podal w ostatnim poscie nowe dane ktore nieco zmieniaja postac problemu a kwestia zastosowania tego w samochodzie sklania mnie do stwierdzenia ze kilkadziesiat to minimalna ilosc godzin (kwestia bezpieczenstwa, odpowiednich testow i zabezpieczen - w zaleznosci od wykorzystania calego ukladu).
  • #8
    play00
    Level 11  
    Ze względu na brak czasu zmuszony byłem zastosować przetwornik a/c Tlc549 podłączony pod LPT i odczyt tylko 1 sygnału z wtryskiwacza.
    Uważam temat za zamknięty. Dziękuje za pomoc.