Ogłoszenie

Collapse
No announcement yet.

Mikrokontrolery AVR - jak się z nimi zaprzyjaźnić ?

Collapse
X
 
  • Filtr
  • Czas
  • Pokaż
Clear All
new posts

    Mikrokontrolery AVR - jak się z nimi zaprzyjaźnić ?

    Siema.

    Chciałem zacząć drążyć temat mikrokontrolerów, na początek może AVR. Nigdy nie miałem styczności z tym tematem i nie wiem jaką drogę obrać. Nie wiem od czego zacząć.
    Zrobić sobie jakąś płytkę do testowania to nie problem (raczej sobie z tym poradzę). ''Hardware'' ogarne bez większych problemów.
    Pytanie jednak dotyczy strony ''softłerowej''.
    Zaczynać np od bascoma czy może od razu zapoznawać się z C i jakims innym środowiskiem programistycznym ?

    Za wszelakie info będę bardzo wdzięczny.

    Pozdr
    i-AMP ,i-PSU, i-SMPS, i-KTO TAM WIE CO JESZCZE
    https://www.facebook.com/IAMP-260036317687611/

    #2
    BASCOM jest prosty, bazuje na basicu. Dużo rzeczy zrobi za Cebie kosztem miejsca na uC.

    Do C potrzeba nieco większej wiedzy, lecz jak nauczysz się w C to będziesz bardziej rozumiał działanie uC i będziesz mógł pisać optymalniejszy kod.

    Skomentuj


      #3
      Może na początek Arduino UNO. To nic innego jak płytka AVR, ze zgrabną otoczką jak nakładki i przyjazne środowisko programistyczne wraz z przykładami i wbudowanym kompilatorem. Poza tym nie trzeba się bawić w programatory. Co do języka to tylko C. Może na początku być ciężko, ale wiedza zwróci się z nawiązką, np. gdy przesiądziesz się na jakieś płytki z ARM.

      Skomentuj


        #4
        Zamieszczone przez johans23 Zobacz posta
        Może na początek Arduino UNO. To nic innego jak płytka AVR, ze zgrabną otoczką jak nakładki i przyjazne środowisko programistyczne wraz z przykładami i wbudowanym kompilatorem.
        A jak chcesz wykorzystać coś więcej niż daje biblioteka Arduino to i tak musisz grzebać w rejestrach, włączać przerwania itp. To może lepiej od razu w normalny sposób się nauczyć?

        Zamieszczone przez johans23 Zobacz posta
        Poza tym nie trzeba się bawić w programatory.
        A jak potrzebujesz zrobić coś w jakimś docelowym układzie to jesteś uzmieniony.

        Ja ze swojej strony proponuję olać AVRy :) To kapryśne procki i w zasadzie do dupy :P
        Jeśli i tak się uczysz od zera to lepiej zabrać się za STM32, małe procki z rdzeniem M0 są bardzo OK. Biblioteki STMa są czasem denerwujące ale jak się nauczysz z nimi pracować to naprawdę szybko to idzie a dzięki swojej specyfice fajnie dokumentują kod i później wiesz co się dzieje :)
        Asustor AS-5002T z MPD + konwerter USB .3lite + DAC PCM1704 by olog + autorskie PRE z PVC + Monobloki Ravlus Amplifilo + kolumny Tatami Audio Hudba

        Skomentuj


          #5
          Dawno temu też planowałem zgłębić tematykę AVR. Do dziś leży w szufladzie taki zestaw: http://and-tech.pl/produk-testowy/ . Nie wiem jak teraz ale kilka lat temu oferował raczej najlepszy stosunek ceny do możliwości czyli tego co masz na płytce.

          Skomentuj


            #6
            Wszystko zależy do czego potrzebujesz, ja osobiście bym nie przekreślał AVR, ciekawe rzeczy na nich można zrobić, od prostych aż po zaawansowane sterowniki, regulatory itp. Bascoma też nie przekreślał, sam korzystam z niego od ładnych paru lat, można wstawić też wstawki asemblerowe, jeśli program się powiększa. Bawiłem sie też STM32, ale to już inna półka, choć nie mówię że nie do ogarnięcia. Ja osobiście polecałbym Ci bascoma i AVR, ale pewnie zostanę zakrzyczany, że to badziewie, ale ja mam swoje zdanie na ten temat.
            Last edited by dario67; 17.03.2016, 13:00.

            Skomentuj


              #7
              Dzieki chlopaki!
              Nauke trzeba zaczac od prostych rzeczy i srodowiska, ktore tez bedzie proste jak na poczatek. Kupie sobie jakiegos avra i zrobie plytke do testowania.
              STM na poczatek moze byc zbyt duzym wyzwaniem. Jak mnie temat wciagnie to sie moze i za ST wezme.
              i-AMP ,i-PSU, i-SMPS, i-KTO TAM WIE CO JESZCZE
              https://www.facebook.com/IAMP-260036317687611/

              Skomentuj


                #8
                Zamieszczone przez LuSzTi Zobacz posta
                A jak chcesz wykorzystać coś więcej niż daje biblioteka Arduino to i tak musisz grzebać w rejestrach, włączać przerwania itp. To może lepiej od razu w normalny sposób się nauczyć?
                Może z dydaktycznego punku widzenia Arduino nie jest to wskazane, ale może czasem lepiej odwrócić logikę i pobawić się czymś, a później zgłębiać dokumentację, rejestry itd. Na Arduino w normalny sposób można nauczyć się języka programowania.
                Jakbyś nie wiedział to te biblioteki ktoś napisał i nic nie stoi na przeszkodzie by napisać własną. Kolejny plus to bardzo dużo informacji w sieci.

                Zamieszczone przez LuSzTi Zobacz posta
                A jak potrzebujesz zrobić coś w jakimś docelowym układzie to jesteś uzmieniony.
                Myślisz, że kolega od razu będzie projektował docelowy układ. Do nauki tylko zestawy ewaluacyjne.

                Zamieszczone przez LuSzTi Zobacz posta
                Jeśli i tak się uczysz od zera to lepiej zabrać się za STM32
                Na pewno ma większe możliwości, ale ja bym zaczął od 8-bitowca.

                Skomentuj


                  #9
                  Wydaje mi się, że to dobra droga, a na początek masz kilka przykładów http://www.mcselec.com/index.php?opt...d=79&Itemid=57

                  Skomentuj


                    #10
                    Jeżeli zamierzasz zrobić jakiś jeden prosty projekt, i zostawić programowanie to polecam BASCOM'a. Jeżeli myślisz przyszłościowo, to język C. W trudności kodu nie ma znacząco dużej różnicy, a C jest bardziej zoptymalizowany i daje większe możliwości.

                    Na temat typów procesorów się nie wypowiadam, bo puki co bawię się jedynie AVR'kami. Myślę że to dobry wstęp, bo zabawa jest tania- najprostszy programator USBasp można kupić za 20zł, a uC +-10zł. Jednak USBasp nie jest wspierane przez najnowsze Atmel Studio(trzeba pisać program w innym środowisku, lub kompilować w Atmelu i wygrywać np. poprzez program MkAvrCalculator). Można zrobić DIY programator który jest wspierany przez najnowsze wersje Atmel Studio: http://mdiy.pl/programator-usbtiny-mkii-slim/ - od dłuższego czasu za mną chodzi, ale nie ma czasu się za niego wziąć. Są gotowe programatory AVRISP-MKII, JTAGICE-MKII i inne droższe...

                    Jeżeli mamy już środowisko i programator, to czas przejść do samego uC. Tutaj przydają się płytki stykowe, kabelki goldpin-goldpin, i jakieś peryferia typu przyciski, diody led, wyświetlacze, buzzery itp. itd Na takim zestawie spokojnie możemy trenować konfiguracje portów IO, podstawowe operacje bitowe/bajtowe, pętle, konfiguracje timerów/PWM itd....

                    Ciekawą alternatywą może się okazać moduł avr xplained mini, jest tam zintegrowany programator i układ AVR. Podpinamy do kompa poprzez USB i lutujemy peryferia do płytki. Wszystko zależy co zamierzasz robić.

                    Na pewno nie obejdzie się bez jakieś lektury, omawiającej kolejno polecenia i konfiguracje. Można znaleźć informacje na internecie, pliki pdf. - sam tak zaczynałem. Jednak później i tak musiałem przesiąść się na książki. Dlatego dobra książka na start może okazać się dobrą inwestycją.
                    Last edited by DiGiCo; 17.03.2016, 13:52.

                    Skomentuj


                      #11
                      Ja napiszę tylko tyle, że nie jest wyczynem wziąć mocny 32-bitowy mikrokontroler i wykonać na nim dany projekt. W dzisiejszych czasach zapomina się o optymalizacji i generalnie o programowaniu niskopoziomowym, więc prawda jest taka, że prawdziwym wyczynem jest wziąć najprostszy 8-bitowy mikrokontroler i wycisnąć z niego takie rzeczy, że się ludziom w głowie nie mieści :)

                      W takim wypadku polecam tego AVR'a i młócić go do czasu, aż faktycznie braknie mocy obliczeniowej na poważniejsze projekty. Prawda jest taka, że 90% projektów może być wykonana na prostych 8-bitowych AVR'ach. Pozostałe 10% to trochę inny poziom.

                      Skomentuj


                        #12
                        Myślę, że STM na początek to trochę wysoko postawiona poprzeczka i będziesz mieć kłopoty z ogarnięciem. A w większości amatorskich rozwiązań atmel AVR jest wystarczający, więc strzelanie z armaty w komara tez nie ma sensu.

                        Zakup płytki Arduino nie jest złym pomysłem. Mówię tu o samej gotowej płytce bo po co rzeźbić jak za kilkadziesiat zł masz gotowca ! Wcale nie musisz programować tego w arduino IDE, które moim zdaniem nakłada pewne ograniczenia i jest dość dziwne.

                        Do tego zakup sobie programator. Bo o ile płytka arduino ze złączem USB jest wyposażona w bootloader i nie trzeba mieć programatora, to o tyle skorzystanie z niego spoza poziomu adruino IDE okazuje się być trudne. Program skompliowany w innym środowisku będzie Ci ciężko załadować z poziomu arduino ide. Próbowaliśmy z kolega i sie udało ale chwilę "móżdżenia" przy tym było. Poza tym programator przyda się na potem, przecież wszystkiego nie będziesz opierać o gotowe płytki arduino. A tak programator wpinasz do złącza ISP na płytce i możesz programować czy z arduino, czy z avr studio czy z bascoma. Oczywiście płytka musi mieć wyprowadzone takie złącze ale chyba większość ma ;-).

                        Czy Bascom czy C . Osobiście zaczynałem z bascomem i pisałem w nim dość spore programy. Potem przesiadłem sie na C. Bascom jest językiem prostszym ale na pewnym etapie okazuje się być mało elastyczny. Do najprostszych zadań jest idealny, program robi się szybko. Do tego był swojego czasy kurs publikowany w EdW co ułatwi start. Fajne było np to, że podłączasz sobie standardowy wyświetlacz i podajesz tylko do jakich portów procesora jest on podłączony a środowisko samo załadowało odpowiedni kod a Twoja rola ogranicza się do wysyłania tego co ma być wyświetlone. W C jest to trudniejsze bo musisz mieć plik z kodem sterującym wyświetlaczem a konfiguracje należy przeprowadzić ręcznie w definicjach a nie za pomocą klikania w menu.
                        Z drugiej strony jak poznasz C to poznasz uniwersalny język którym będziesz mógł programować dowolny mikrokontroler a w tym bascomie/basicu w zasadzie to chyba tylko te AVRy.

                        Dlatego lepszym rozwiązaniem jest jednak C. Przykładów w sieci znajdziesz sporo, z pomocą na forach też jest nieźle. AVR studio moim zdaniem jest genialne. Ma jedna wadę, jest dość ciężkie, duzo zajmuje, wolno sie odpala ale praca z tym środowiskiem jest przyjemna. Do tego masz możliwość korzystania z dobrodziejstw języka C++ . O ile na początek na pewno z tego nie skorzystasz to z czasem i postępami okaże sie że pisanie za pomocą klas jest w niektórych wypadkach dużo wygodniejsze. Zaletą C jest również to że w dokumentacji procesora masz przykłady na wykorzystanie jego peryferiów własnie napisane w C lub assemblerze. Zwykle wystarczy zamieszczony tam kod skopiować i wszystko działa elegancko .

                        Jedyny mankament jaki mam z obecnym AVR studio to taki, że nie chce współpracować z moim programatorem (jakas allegrowa podróbka) i żeby zaprogramować muszę korzystać z leciwej wersji 4.0.

                        Skomentuj


                          #13
                          Zamieszczone przez Yoshi_80 Zobacz posta
                          Do tego masz możliwość korzystania z dobrodziejstw języka C++
                          Z pewnym trikiem to i można na C++11 jechać :) Robiłem tak lambdy i różne wyrażenia dostępne w C++11 gdzie kompilator spokojnie generował kod dla ATMega8. Z tego co pamiętam, to chyba standardowe biblioteki STL trzeba było rozszerzyć, ponieważ generalnie tam nic nie ma, ale dla chcącego nic trudnego.

                          Zamieszczone przez Yoshi_80 Zobacz posta
                          Jedyny mankament jaki mam z obecnym AVR studio to taki, że nie chce współpracować z moim programatorem (jakas allegrowa podróbka) i żeby zaprogramować muszę korzystać z leciwej wersji 4.0.
                          Kupić raz a porządnie :)

                          Skomentuj


                            #14
                            Zamieszczone przez Yoshi_80 Zobacz posta
                            AVR studio moim zdaniem jest genialne.
                            Ja do zalet dodam, że posiada znakomity debbuger. Zatrzymanie programu i podgląd rejestrów to super sprawa.
                            Zamieszczone przez Yoshi_80 Zobacz posta
                            Jedyny mankament jaki mam z obecnym AVR studio to taki, że nie chce współpracować z moim programatorem (jakas allegrowa podróbka) i żeby zaprogramować muszę korzystać z leciwej wersji 4.0.
                            Ja zawsze wgrywałem osobnym programem typu AVR dude.

                            Skomentuj


                              #15
                              Zamieszczone przez borys Zobacz posta
                              Nauke trzeba zaczac od prostych rzeczy i srodowiska
                              Tak ale potem musisz się znowu uczyć na nowo :)
                              Lepiej raz a uniwersalnie, jak opanujesz C i te stm32 to praktycznie zaprogramujesz potem wszystko bo środowiska są wspólne jak i język .
                              STM ma sporo płytek z serii STM32Discovery (jam mam już 3 :) ) , są tanie jak na możliwości mają programator którym możesz programować proca w systemie .
                              Paradoksanie też proca 32b programuje się czasami prościej niż 8b

                              Zamieszczone przez .3lite Zobacz posta
                              Ja napiszę tylko tyle, że nie jest wyczynem wziąć mocny 32-bitowy mikrokontroler i wykonać na nim dany projekt.
                              Wolę zająć się sednem problemu a krecią robotę zostawić procowi tym bardziej, że za 32bity zapłacę tyle samo co za 8b :)
                              Czasu procesora nie liczę ale swój już tak .
                              (Najwięcej czasu i tak zajmuje szukanie jakiś głupoty )

                              Skomentuj


                                #16
                                Zamieszczone przez raven1985 Zobacz posta
                                Wolę zająć się sednem problemu a krecią robotę zostawić procowi tym bardziej, że za 32bity zapłacę tyle samo co za 8b
                                Czasu procesora nie liczę ale swój już tak .
                                (Najwięcej czasu i tak zajmuje szukanie jakiś głupoty )
                                To fakt, ale ja mam manie optymalizacji Taka branża, co poradzisz :)

                                Skomentuj


                                  #17
                                  i jeszcze jedno odnośnie AVR .
                                  Są tam głupie "bitfusy" do konfiguracji różnych rzeczy .
                                  Błąd konfiguracji potrafi skutecznie unieruchomić praca .
                                  Ból dupy tylko z tym . Zamordował bym gościa który to wymyślił
                                  Mam cały woreczek Mega32 i Mega8 takich :)

                                  Skomentuj


                                    #18
                                    AVR w c, znajomość języka c może się przydać i do innych rzeczy.

                                    Fusy są okropne, co gorsza modele różnią się nimi między sobą, więc jakby się chciało jechać z głowy, to szansa uwalenia uC rośnie znacząco.

                                    Skomentuj


                                      #19
                                      Czyli wychodzi na to ze lepiej zapoznac sie z jezykiem C bo bedzie to bardziej przyszlosciowe.

                                      To teraz srodowisko i kompilator, na necie jest tez cos takiego jak eclipse (pan mirekk poleca ).

                                      Na poczatek i tak bede chcial zrobic programik typu zapal diode, biegajaca jedynka albo cos z przelacznikiem i dioda.

                                      Odnoscnie arduino --> czy to jest odrebny jezyk z bibliotekami czy tez ma jakies wspolne cechy np z C ??

                                      A seria od ST --> czy do tego tez jest odrebne srodowisko do programowania ??
                                      i-AMP ,i-PSU, i-SMPS, i-KTO TAM WIE CO JESZCZE
                                      https://www.facebook.com/IAMP-260036317687611/

                                      Skomentuj


                                        #20
                                        A te książki do nauki C jakie polecacie ?

                                        Skomentuj

                                        Czaruję...
                                        X