Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[PIC]Popularność mikrokontrolerów PIC

marcin w 23 Dec 2018 16:29 2991 41
  • #31
    Urgon
    Editor
    AVE...

    Kompilatory XC faktycznie celowo psują kod w wersji Free, widać to szczególnie jak się włączy zapisywanie kodu pośredniego w ASM. Ponieważ uważam to za cokolwiek chamskie i nieuczciwe zachowanie ze strony Microchip, to sam używam "alternatywnej" wersji PRO kompilatora...



    Największe zalety PICów to:
    1. Bogactwo.
    Modeli jest od metra, peryferiów i opcji też. Niezależnie od projektu, gdzieś w katalogu kryje się PIC doń stosowny.
    2. XLP.
    PICe są naprawdę, NAPRAWDĘ energooszczędne, gdy to jest potrzebne. Ale zdecydowana większość projektów i projektantów z tego nie korzysta, więc to nie jest kluczowy "ficzer" dla większości.
    3. Dokumentacja.
    Głównie noty aplikacyjne, które zawierają naprawdę sporo dobrych informacji i przykładów. Noty katalogowe i erraty są p[oprawne, i raczej nie wyróżniają się niczym na tle konkurencji.
    4. Nie tylko mikrokontrolery.
    Nie wiem, czy ktoś z Was zwrócił uwagę, ale Microchip ma całą masę innych, użytecznych układów poza mikrokontrolerami.
    5. Ceny i dostępność.
    PICe i inne rzeczy od Microchipa są tanie. No i są dość łatwo dostępne u dużych dystrybutorów.
    6. Jedno środowisko i jeden programator.
    Wszystkie trzy rodziny PICów są programowalne z użyciem jednego środowiska i jednego programatora. Moim zdaniem to spora zaleta.

    Wady:
    1. Erraty.
    Prawie każdy układ ma nierozwiązane problemy, przy czym rodzina PIC24/dsPIC to wręcz legendy pod względem zabugowania. Wiele problemów nie doczeka nigdy rozwiązania.
    2. Darmowe kompilatory.
    Psują kod i zachęcają tym do piractwa. Wina marketingowców. XC32 to klon GCC zepsuty celowo by deoptymalizować kod. Mże Microchip się w końcu ogarnie, ale w to wątpię.
    3. Płatne kompilatory.
    Ceny absurdalnie wysokie. Za wysokie dla start-upów.

    Co do samych dziwactw architektur i innych rzeczy, to to są "wady" dla dinozaurów tworzących w gołym assemblerze. W normalnym świecie w ASM robi się wstawki w krytycznych miejscach, a nie całe programy. Programy robi się w języku wysokopoziomowym, takim jak C...

    W Polsce AVRy mają taką przewagę głównie dlatego, że EdW wydało kurs Bascoma wiele lat temu. No i Arduino robi też swoje...
  • #32
    atom1477
    Level 43  
    Urgon wrote:
    1. Bogactwo.
    Modeli jest od metra, peryferiów i opcji też. Niezależnie od projektu, gdzieś w katalogu kryje się PIC doń stosowny.

    To pozorna zaleta.
    Taki dostosowany do projektu PIC ma wadę w postaci tego że różni się od innych PICów.
    A więc robienie projektu na dostosowanym do niego PICu dokłada tylko roboty.
    Bo w PICach różni się praktyczni wszystko. Nawet listy rozkazów.
    W bardzo szerokim zakresie AVRów nie ma takich różnic. Jedynie brak niektórych rozkazów (mnożenia i jeszcze kilku innych) w słabszych wersjach (ATTINY).
    W PICu różnice są o wiele większe.
    Do tego mogą się różnić peryferia.
    A więc zastosowanie dopasowanego PICa opłaci się dopiero przy produkcji powiedzmy ponad 10 000 sztuk. A nawet wtedy producentowi może być lepiej kupić 50 000 tyś takich samych procesorów niż 10 000 takich a 40 000 innych bo się załapie na inne progi cenowe w sklepie (często progi sięgają 100 000 sztuk).

    Urgon wrote:
    4. Nie tylko mikrokontrolery.
    Nie wiem, czy ktoś z Was zwrócił uwagę, ale Microchip ma całą masę innych, użytecznych układów poza mikrokontrolerami.

    Inne układy w ofercie producenta PICów nie są zaletą PICów. Nie ma to po prostu związku tematem.

    Urgon wrote:
    W Polsce AVRy mają taką przewagę głównie dlatego, że EdW wydało kurs Bascoma wiele lat temu.

    Kurs był też dla Bascoma 8051.
    I ja od niego zaczynałem. Z tego powodu nie używałem AVRów mimo że były na rynku już z 8 lat.
    Dlatego też uważam że branża ma dużą bezwładność :D (bo widzę na sobie)
  • #33
    User removed account
    Level 1  
  • #34
    tronics
    Level 38  
    @stmx - NXP znów aż tak dużo nie ma. ST ma ogrom, od dyskretnych (półprzewodniki mocy) poprzez różnego rodzaju regulatory napięcia, sterowniki led, sterowniki serwomechanizmów, sterowniki silników krokowych, czujniki, liczniki energii itp. aż po coraz bogatszą ofertę mikrokontrolerów (tylko jest trochę wtórności i nie do końca wiadomo jaka konkretnie jest różnica między F0, L0 a G0 ;) )
    Cypress też ma dużo różnych rzeczy, nie tylko PSoC. Produkuje też m.in. pamięci, CPLD, huby usb, itp. itd. Infineon również. Także Atmel miał i CPLD, i pamięci oprócz at89, avr i sam. To nie tak, że tylko Microchip ma różne inne ciekawe układy.

    Quote:
    Nie zrozumiałeś. Chodziłoby mi o to

    Ależ zrozumiałem, to że NXP to wydzielony dział Philipsa i produkuje ogrom cyfrówek (ST też, TI też, atmel nie) to akurat ma znacznie mniejsze znaczenie. Bramki, przerzutniki itp. produkuje bardzo wiele podmiotów. Co do autorskich rozwiązań ciut innych to najwięcej ma ST i TI właśnie. NXP ma niby też bogate portfolio, ale popularnych układów zdecydowanie mniej. W przypadku analogówki nie powinno nikogo dziwić, że najpopularniejsze są AD, a producent na dokładkę ma też linię mikrokontrolerów (kiedyś na 51 teraz na ARM). Microchip niczym szczególnym pod tym kątem się nie wyróżnia, a nawet - biorąc pod uwagę ogrom urządzeń z logiem ST, TI - śmiem twierdzić, że tym producentom ustępuje. Zatem jak najbardziej poparłem Twoją argumentację, aczkolwiek nie jestem przekonany co do NXP.
  • #35
    Urgon
    Editor
    AVE...
    atom1477 wrote:
    Urgon wrote:
    1. Bogactwo.
    Modeli jest od metra, peryferiów i opcji też. Niezależnie od projektu, gdzieś w katalogu kryje się PIC doń stosowny.

    To pozorna zaleta.
    Taki dostosowany do projektu PIC ma wadę w postaci tego że różni się od innych PICów.
    A więc robienie projektu na dostosowanym do niego PICu dokłada tylko roboty.
    Bo w PICach różni się praktyczni wszystko. Nawet listy rozkazów.
    W bardzo szerokim zakresie AVRów nie ma takich różnic. Jedynie brak niektórych rozkazów (mnożenia i jeszcze kilku innych) w słabszych wersjach (ATTINY).
    W PICu różnice są o wiele większe.
    Do tego mogą się różnić peryferia.

    W obrębie jednej rodziny lub generacji listy rozkazów generalnie się nie różnią niczym. Zresztą jakie to ma znaczenie, jak się programuje w C? Podobnie peryferia generalnie mają tę samą strukturę rejestrów w różnych mikrokontrolerach, a czasem i rodzinach. To może być pewną wadą, bo te same bugi w peryferiach mogą występować w różnych mikrokontrolerach lub/i rodzinach...

    Microchip generalnie jest nastawiony na producentów o produkcji liczonej w tysiącach i dziesiątkach tysięcy sztuk. Dlatego oferuje zarówno tak szeroką gamę mikrokontrolerów, jak i wsparcie liczone w dziesiątkach lat. Nadal produkują układy, z którymi zaczynali cały biznes mikrokontrolerów. To jest też przyczyna wysokich kosztów ichnich kompilatorów - duża korporacja nie ma problemów z zapłaceniem nawet kilkudziesięciu tysięcy dolarów za licencje dla swoich pracowników...

    Co do argumentu o produkcji innych rzeczy przez Microchip, to faktycznie to nie jest żaden argument. Ale jedną z rzeczy, które microchip produkuje są mikrokontrolery AVR...
  • #36
    User removed account
    Level 1  
  • #37
    LChucki
    Level 31  
    Może PIC nie są popularne bo https://www.elektroda.pl/rtvforum/topic3530675.html

    Współczesnych PIC nie znam te wcześniejsze z czasów PIC16F84 i podobne wspominam źle. Miałem emulator PIC, czasu MOCNO nierzeczywistego. Nie dało się na tym pracować. W tym czasie AVR był już popularny. Wybrałem więc AVR.

    Wiedziałem, że prędzej czy później trzeba porzucić AVR na rzecz, czegoś mocniejszego. Do wyboru miałem ARM albo ARM, ewentualnie ARM, dokładniej ARM STM, ARM NXP itd. PIC32 ze względu na to co poczytałem o erratach do nich i psuciu kodu przez kompilator odrzuciłem. Jak do projektu bardziej pasuje 8-bit (np obudowa o 14 wyprowadzeniach) to wybieram AVR bo je znam a ponadto użycie PIC wiąże się z psuciem kodu przez kompilator, tachlowaniu bankami co niepotrzebnie spowalnia CPU.

    Zanim Microchip kupił Atmela, promował PIC32, wykazywał jakie to one sa dobre, lepsze od ARM. Po przejęciu Atmela, jakoś nie promują już PIC32. Dlaczego? PIC32 się zepsuły? ARM sie polepszyły?
  • #38
    Urgon
    Editor
    AVE...

    Jakoś mimo bugów w krzemie ludzie używają zarówno układów PIC24/dsPIC jak i PIC32. Na przykład ta laserowa harfa szczyci się realistycznym dźwiękiem z pomocą algorytmu Karplusa-Stronga na PIC32...
  • #39
    Freddie Chopin
    MCUs specialist
    Urgon wrote:
    Na przykład ta laserowa harfa szczyci się realistycznym dźwiękiem z pomocą algorytmu Karplusa-Stronga na PIC32...

    Abstrahując kompletnie od PIC32, to pomysł laserowej harfy jest kompletnie poroniony, bo jednak fizyczna struna ma więcej funkcjonalności niż wydawanie dźwięku - np. można na niej oprzeć palce, dzięki czemu nie trzeba się patrzeć non-stop na instrument. Już to widzę jak ktoś będzie grał na czymś takim trzymając ręce ciągle w powietrzu, bez żadnego mechaniczno-czuciowego feedbacku co do ułożenia dłoni i palców.

    Jeśli celem jest modelowanie dźwięku wibrującej struny, to trzeba było zrobić lepszy syntezator klawiszowy, mogłoby to być laserowe pianino, choć laser tutaj też byłoby kompletnie zbędny. Albo laserowe cymbałki, ale to już nie wibrująca struna, choć też mogłoby być ciekawe, a już na pewno bardziej praktyczne.
  • #40
    Urgon
    Editor
    AVE...

    To jest lepsza wersja harfy laserowej, ale ten system na PIC32 ma ładniejszy dźwięk...


    Zaprojektowałem inny syntezator, na PIC10F, gdzie sensorem miała być struna nad taśmą oporową zawieszona. Niestety, miałem drobne problemy techniczne, głównie mechaniczne, no a potem dziecko dość mocno ograniczyło moje możliwości pracy. Ale zamierzam do tego projektu wrócić...
  • #41
    figa_miga
    Level 19  
    Jako kilkuletni męczennik PICa, stukający kilka tyś urządzeń rocznie powiem że gdybym dziś miał decydować i chodziło by o jakieś wersje 32bit to brał bym się za wszelkie inne ARMy. Dziś są one dobrze poznane i jest w czym wybierać. Przed kilku laty były trochę abstrakcyjne, a PIC32 dysponował jakimś tam zapleczem. Ich totalna porażka to najnowsze PIC32 z serii MZ, to jest dziurawe jak ser i nawet się nie ma co zastanawiać. Robię na tym tylko jedną rzecz gdzie przyczyną jest czas, ciekawość i chęć porównania problemów z ARM na którego się będę przesiadać.
    Jakieś małe PICe nie są złe, dodają do nich sprzęt który się przydaje i cenowo są ok. Pamiętam że byłem pod wrażeniem stabilności wewnętrznego RC i w zasadzie nigdy nie dawałem im kwarca. Producent daje kupe przydatnych przykładów i bibliotek ale dziś to już chyba wszyscy tak idą. A to że free kompilator dodaje śmieci to nie jest jakiś problem bo minęły czasy że kod się udeptuje. Tak po prawdzie to inni producenci też by chcieli hajs za środowisko oferując w zamian coś innego. Czyli jest to tak naprawdę sprawa wymagań. W kwestii programatora to do mniejszych PICów wystarczy PICkit2 albo ich nowy SNAP, to jest koszt ok 50zł. PICkit ma fajną funkcję polegającą na ładowaniu do niego softu, gdzie potem możesz sobie iść na łąkę z powerbankiem i hurtowo programować urządzenia wciskając na nim guziczek.
    Z huczną funkcja PPS to bym uważał bo często było tak że na etapie schematu ślęczałem na kilku monitorach i kombinowałem gdzie co wyciągnąć żeby nie pozbyć się innej funkcjonalności. To nie jest tak że wyciągniesz co chcesz gdzie chcesz.

    Ogólnie, z przykrością stwierdzam że MCP idzie w złym kierunku jeśli chodzi o jakieś mocniejsze jednostki.
  • #42
    User removed account
    Level 1