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

mikrokontroler avr - ile potrzeba pamięci?

16 Cze 2012 18:13 1380 11
  • Poziom 14  
    Zamierzam oprogramować mikrokontroler avr w języku c. Jestem na początku, czyli przy wyborze mikrokontrolera, zastanawiam się nad tym jaka ilość pamięci będzie mi potrzebna. W skrócie, avr-ka ma sterować pracą 24 silników (a raczej silniczków) na podstawie sygnałów z sensorów (ściśle mówiąc dwoma identycznymi układami 12 silników i sensorów), a także włączać/wyłączać diody. Jeśli chodzi o diody to domyślam się że nie ma żadnego problemu, zastanawiam się bardziej jak bardzo pamięciożerne jest sterowanie silnikami (zarówno prędkością jak i kierunkiem obrotu). Czy w ogóle mam się czym przejmować czy mogę dobrać mikrokontroler tylko na podstawie potrzebnych wejść/wyjść (no i oczywiście ceny) ?
  • Poziom 37  
    Prędkość chcesz zadawać atmegą bezpośrednio i do tego osobno dla każdego silnika? Przepraszam, ale tak chyba Ci nie wyjdzie. 2560 chyba ma 16(15?) kanałów z PWM. Jeśli chodzi o pamięciożerność to jest zasadniczo niewielka, tylko wybranie trybu pracy timerów i zadanie wartości więc to łącznie kilka KB zajmie we flashu, a kilkadziesiąt/kilkaset B w pamięci RAM.
  • Poziom 37  
    Cytat:
    tronics, przecież istnieje coś takiego jak PWM programow

    Oczywiście, że tak. Natomiast dochodzi do tego kwestia jak bardzo niezależne mają być te kanały pwm sterowania silnikami, a także jak wygląda czas konwersji sygnału z sensorów (czy też przeliczeń cyfrowych wartości tych sygnałów w ilości 24 może 1B, a może 2...) I dochodzimy do sedna problemu - co kolega głośny tatuś chce robić :)
  • Poziom 38  
    Jest taka nota Atmela 136.
    Jest tam opisane jak zrobić wiele kanałów PWM z pomocą jednego timera 8bit.
    Zrobiłem to na ATMega8- sterowanie sygnałem takim jak dla serw 1-2ms.
    Plik .c
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Plik .h
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Może to coś pomoże.
    Działa- ale sprawdzałem do ośmiu kanałów.
    Potrzebny Ci będzie procesor z dużą ilością pinów.
    Zajrzyj też do noty z orginalnym programem.
    Chwalą się że działa dla bodaj 24 kanałów.
  • VIP Zasłużony dla elektroda
    PWM programowy wcale nie musi mieć za podstawę liczbę 256, może to być dowolna inna liczba, nawet mniejsza, co daje możliwość większej częstotliwości i pomięcie mniej istotnych skoków wypełnienia.
  • Poziom 14  
    Rozumiem w takim razie, że zgodnie z tym co mi się wydawało nie mam co się martwić pamięcią? W takim razie poszukam sobie jakiegoś mikrokontrolera z dużą ilością pinów, kupię, a potem przyjdzie czas na poważniejsze pytania, ale dzięki za cenne uwagi
  • Poziom 14  
    Jeszcze mam jedno pytanie. Nie mam póki co doświadczenia w mikrokontrolerach, ale intuicja mi coś podpowiada. Bo mam tak naprawdę dwa identyczne zestawy wejść i wyjść. Moje pytanie brzmi czy jest taka możliwość, żeby mikrokontroler przełączał się pomiędzy nimi? Nie wiem, czy to jest jasne co piszę... Przykładowo, jeśli mam jakiś sensor, który ma w odpowiedni sposób sterować matrycą diodową i drugi sensor, który ma w identyczny sposób sterować drugą taką samą matrycą, to czy mogę podpiąć oba sensory pod jeden pin i jeden pin pod obie matryce i przełączać się pomiędzy nimi w zależności od tego który z sensorów ma być wysterowany? To jest oczywiście sprawa wejść/wyjść cyfrowych, czy tak samo będzie dla kanałów PWM? Docelowo chodzi o to, czy zamiast uC z 2n pinów wystarczy mi tylko n?
  • Moderator Mikrokontrolery Projektowanie
    Jeżeli do jednego patyczka przywiążesz dwa sznurki i będziesz ciągnął za patyczek, to poruszysz obydwoma sznurkami :)

    Narysuj jak to widzisz blokowo, to ułatwi nam odpowiedź na Twoje pytania.
    Są pewne możliwości podłączania na wspólnych liniach, ale to zależy co podłączasz. Napisz także co to za sensory - od tego wiele zależy.
  • Poziom 38  
    Spróbuj jasno przedstawić założenia.
    Bo na razie to jest tak- 24 silniki z PWM i kierunkiem.
    To oznacza 48 pinów na sygnały wyjściowe.
    No i dodatkowe wejścia na sensory.
    Multiplekser na kierunek- no chyba się da.
    Na PWM- no nie wiem- może jakiś rejestr z zatrzaskiem dość często odświeżany?
    Az się prosi o jakiś CPLD.
  • Poziom 14  
    Cytat:
    Możesz podłączyć zewnętrzny multiplekser.

    I chyba na multi/demultiplekserach to pójdzie najłatwiej.
    Cytat:
    Napisz także co to za sensory - od tego wiele zależy.

    Po pierwsze, sterować będę diodami LED na matrycy przy pomocy sensorów dotyku. Jeśli chodzi o silniki to sorry pomyłka będzie 8x2, sterowanie czujnikiem indukcyjnym.