czwartek, 14 kwietnia 2011

Jaki mikrokontroler wybrać do projektu ?


Autor: Dondu

To jeden z największych problemów początkujących elektroników.

Mottem przewodnim powinno być:

Pawel2420
Projektując jakieś urządzenie powinno się najpierw określić założenia. Następnie zapoznać się z wadami i zaletami różnych rozwiązań jakie można zastosować. Wybrać jedno z nich.

Dopiero na samym końcu określić jakie elementy będą potrzebne.


Zacznijmy od nauki słowa KOMPROMIS

W brew pozorom to baaardzo istotne słowo dla elektroników. Dlaczego?
  • ponieważ na rynku jest wiele tysięcy różnych mikrokontrolerów, a każdy ma inne możliwości,
  • bo jest wielu producentów i trzeba się zapoznać z nową specyfiką budowy, działania i programowania wielu układów,
  • bo każdy Twój projekt można zrobić na tysiące sposobów używając różnych mikrokontrolerów,
  • bo tylko Ty czujesz, co dla Ciebie jest ważniejsze na przykład mniejszy koszt procesora czy mniejszy czas pisania programu,
  • bo czasami warto zrezygnować np. z prędkości na rzecz długiej pracy na baterii, itp.



NIE MA JEDYNEJ SŁUSZNEJ DROGI !

Jak już wspomniałem w projektowaniu układów elektronicznych wszystko można wykonać, na wiele sposobów. Na przykład realizując mruganie diody LED możesz zrobić tak:
  • programowo zmieniając w pętli stan wyjścia mikrokontrolera,
  • sprzętowo wykorzystując wewnętrzny timer i wyjście procesora,
  • zbudować generator na za pomocą bramek logicznych,  tranzystorów czy specjalnych układów,
  • wreszcie możesz po prostu zakupić mrugającą diodę LED. 
  • i pewnie jeszcze wiele innych metod.
Dlatego jeżeli ktoś mówi Ci, że Twój projekt musi być zrobiony na innym procesorze, to zastanów się nad tym, ale jeżeli jesteś przekonany, że masz rację, to rób po swojemu. 


Zestawienie kryteriów technicznych o największym znaczeniu 
dla producentów urządzeń wykorzystujących mikrokontrolery

źródło: elektronikab2b.pl

Poza powyższymi kryteriami firma, która ma już opracowane własne rozwiązania, biblioteki, standardy, licencje, wyszkolonych pracowników, itd. niechętnie przesiądzie się na inną rodzinę, z prozaicznej przyczyny - koszty mogą być zbyt wysokie. Dlatego do dzisiaj tak popularna jest rodzina pochodnych Intel 8051 (w coraz to nowych szybszych wersjach) - kompromis, to dobre słowo :-)


Na forum często powtarzam, że dla hobbystów, czy początkujących, wybór mikrokontrolera to także:

Dondu
KOMPROMIS - tak, to zawsze jest kompromis:
- parametrów urządzenia docelowego,
- ceny mikrokontrolera,
- jego dostępności,
- dostępności wiedzy jego dotyczącej (przykładów, ilości tematów na forum, itp.),
- poziomu znajomości angielskiego,
- czasu na poznanie nowej rodziny,
- technologi montażu,
- poziomu wiedzy z zakresu elektroniki,
- przyzwyczajeń,
- wymogów odbiorcy,
- posiadanych licencji na narzędzia,
- posiadanego zaplecza technicznego danej rodziny mikrokontrolerów,
- ...
- i pewnie jeszcze wielu innych czynników ...


Jak wybrać procesor ?
  • najpierw napisz na kartce w osobnych grupach co procesor ma robić
  • zastanów się, co z tych zadań można wykonać peryferiami procesora (timerami, przetwornikami ADC, itp),
  • zastanów się jakie masz wymogi dot. pamięci (ilość, czy będzie potrzebny EEPROM, itp)
  • z czego będziesz zasilał procesor i jakim napięciem (bardzo ważne!)
Dopiero na tej podstawie można szukać procesora.



Nie strzelaj do muchy z armaty !

Wsród początkujących zaobserwować można tendencję wybierania na początek najlepszych, najszybszych, naj.... koszmar! Te naj... mają także drugą stronę:
  • najdroższe,
  • największe straty, gdy je uszkodzisz, o co łatwo nowicjuszowi,
  • najbardziej skomplikowane peryferia wewnętrzne,
  • najtrudniejsze do nauki,
  • najwięcej pinów, co skutkuje dużymi obudowami albo skomplikowaną technologią lutowania.
  • itd.
Dlatego osobiście radzę:  Zaczynaj od mniejszych stopniowo przesiadając się na większe.




Wyszukiwarki procesorów

Gdy już wiesz czego oczekujesz od procesora możesz go wybrać wykorzystując narzędzia takie jak te:




BRAKUJE MI MOCY OBLICZENIOWEJ !


Początkujący często dochodzą do momentu, w którym uważają, że mają za wolny procesor.
I najczęściej są w błędzie! Po analizie projektu okazuje się, że prawie wszystko realizowane jest bez użycia układów wewnętrznych (tzw. peryferii), które mogą wykonywać za procesor wiele pracy odciążając go i zwalniając moc obliczeniową albo program napisany jest nieoptymalnie.

Zanim podejmiesz decyzję, że musisz zastosować "większy" (z reguły droższy) procesor:
  • zastanów się czy wykorzystujesz wszystkie układy procesora, które mógłbyś wykorzystać,
  • przemyśl projekt jeszcze raz, bo często okazuje się, że można to zrobić łatwiej,
  • zadaj pytania na forum Elektroda.pl opisując dokładnie jaki masz problem,
  • i dopiero gdy już nie ma innej możliwości, zmieniaj mikrokontroler na większy.

6 komentarzy:

  1. Bardzo potrzebowałem tej aplikacji do znajdowania procesorów, super sprawa, dzięki.

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak, są baaaardzo pomocne :-)
      Na szczęście każdy producent ma taką wyszukiwarkę.

      Usuń
  2. krótko i na temat

    OdpowiedzUsuń
  3. A ja mam pytanie, czy warto się jeszcze "grzebać" w starych klasycznych 8051 bo mam sporo płytek do dyspozycji z odzysku (oczywiście trzeba będzie programować EPROMy). Wiem że gotowce z Chin za parę złotych typu Arduino można zakupić ale jakoś tak mi żal utylizowac moje zasoby. Czy koszt odpalenia projektu na staroci oraz kłopot z uruchomieniem nie przewyższają ceny przesiadki na Atmega?

    OdpowiedzUsuń
    Odpowiedzi
    1. Darzę wielkim sentymentem rodzinę 8051 - wiele projektów zrobiłem w latach 80-tych. :-)

      I choć aktualnie rodzina ta żyje jeszcze w wielu firmach, a i w moich zasobach historycznych na dnie piwnicy jeszcze mam ich nieco i różne EPROMy (w rym niektóre z ZSRR), to nie zrobię już na nich żadnego projektu, chyba że na konkurs staroci :D

      Moim zdaniem nie ma sensu 8051 rozpoczynać - bierz AVRy i idź do przodu, a i tak ARM-y także należy poznać.

      Usuń
    2. Cześć,
      Poczytałem drzaskowy pamiętnik, przeszperalem swoje szpeja i znalazłem zakupione kiedyś Atmegi8 :)
      Myślę że masz rację, taniej i lepiej będzie pobawić się od razu czymś rozwojowym.
      Czas zakupić programator i do dzieła!
      Pozdrawiam serdecznie i dziękuję za fantastyczny blog, który mnie mocno zmotywowal...

      Usuń