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

8051 vs AVR

sibislaw 31 May 2008 19:04 7488 30
  • #1
    sibislaw
    Level 12  
    Mnie zastanawia czemu każdy mówi że 8051 jest taki "cudowny" do zastosowan komercyjnych. O ile wiem jedyne co ma lepsze od AVR to instrukcja DIV (dzielenie), mozna go taktowac na wiecej niz 16 Mhz (ale instrukcje wykonuja sie wolniej), itp, itd Czy ktos moze dac jakies argumenty za 8051?
  • #2
    Zaquadnik
    Level 27  
    8051 to nie tylko Atmel. Procki z tym rdzeniem robi jeszcze Intel, Philips (a przynajmniej robiły), Analog Devices, Dallas itp. I nie wszystkie mają wbudowany dzielnik przez 12 (cykl maszynowy to 1/12 zegarowego). Obejrzyj procek DS89C430. Ma spore możliwości, albo AT89C51SND2 ze sprzętowym dekoderem mp3. Procek DS89C430 ma cykl maszynowy równy cyklowi zegarowemu i jest jakieś 8 - 9 razy szybszy niż tak samo taktowany, konwencjonalny 8051 (dodam, że taktowanie tych procków dochodzi do 33 MHz). Analog Devices wyposaża z kolei swoje procki w świetne przetworniki A/C i C/A. TI robi układy transceiverów na pasmo 2,4 GHz ze zintegrowanym prockiem 8051, w którym zaimplementowany jest stos ZigBee. Podsumowując, procki oparte o architekturę 8051 produkowane są od dawien dawna przez wiele firm i są bardzo popularne, nie tylko w starszym sprzęcie. Zaletą jest to, że mając duży wybór producentów ciągle możesz znać tylko jedną architekturę procka. AVR jest bardzo fajny, ale produkuje je tylko Atmel no i ich zabezpieczenia EMC pozostawiają sporo do życzenia.
  • #3
    Michal19881
    User under supervision
    8051 jest łatwy do nauczenia i programowania (vide zestaw uruchomieniowy DSM-51 z µC Philipsa na 8051).
  • #4
    Zaquadnik
    Level 27  
    AVR też nie jest trudny do nauczenia się, a DSM-51 to bubel za kupę kasy. Wybacz, ale za 1600 zł to można zrobić z 10 DSMów. Za tą kasę można kupić 3 fajne zestawy z FPGA. A jeśli chodzi o uC to zestaw uruchomieniowy najlepiej zrobić samemu :]
  • #5
    Alana
    Level 37  
    8051 jest juz jako takim standardem przemyslowym i narzedzia do jego programowania, biblioteki itp sa szeroko dostepne. Pozatym jest tanszy i prostrzy niz AVR co moze wplywac na koszty produkcji urzadzen.
    AVR z tego co widze sa bardzo dobre do zabawy, produkcji maloseryjnej itp.
  • #6
    sibislaw
    Level 12  
    Zaquadnik - 2 razy trafiłeś w sedno. Argument z wieloma producentami mnie w 100% przekonuje. A czy procki na rdzeniu 8051 atmela (z ISP) są równoważne z oryginałem? Alana - to jaki kompilator 8051 polecisz?
  • #7
    tplewa
    Level 39  
    8051 i AVR to tylko kropla w morzu. W projektach komercyjnych uzywa sie tez wielu do niedawna "egzotycznych" dla hobbystow rdzeni.

    Rdzen 8051 ma ta zalete ze jest bardzo dlugo na rynku i jak juz wspomniano implementowany jest w wielu roznych uC.

    Jesli chodzi o wybor procesora do produktu na to wplyw ma wiele wiecej czynnikow. Zaczynajac od posiadanych przez dana firme kompilatorow, programistow itp.
  • #8
    sibislaw
    Level 12  
    Ale prawde mówiąc 8051 ze swoimi peryferiami i architektura jest nieco przestarzały, tak samo trzymamy sie 8051 jak architektury intela dla dużych komputerów, dla kompatybilności.
  • #9
    tplewa
    Level 39  
    sibislaw wrote:
    Ale prawde mówiąc 8051 ze swoimi peryferiami i architektura jest nieco przestarzały


    Troszeczke mylisz pojecia rdzen jest rdzeniem, a peryferia peryferiami tego nie nalezy laczyc.

    Czy jest przestarzaly to tez sprawa wzgledna :)
  • #10
    ZbeeGin
    Level 39  
    Jeden kamyczek do ogródka. 8051 nie ma - a przynajmniej Ja nie znalazłem - takiego fajnego darmowego(!) narzędzia jakim jest AVR Studio, gdzie wszystko masz pod ręką: edytor, kompilator, symulator.

    Co prawda jest MIDE-51 ale te symulatory, które są dołączane to nijak się mają do tego co można znaleźć w AVR Studio. Nie potrzeba ICE, OCD, ale żeby tylko wszystko można było podejrzeć i zmieniać w czasie symulacji w formie kontrolek zwiniętych w drzewo...
  • #11
    Zaquadnik
    Level 27  
    sibislaw wrote:
    A czy procki na rdzeniu 8051 atmela (z ISP) są równoważne z oryginałem?


    Jeśli chodzi o szybkość wykonywania instrukcji i pamięć RAM to tak, wszystkie bazują na oryginalnym 8051/8052. Natomiast posiadają często dodatkową pamięć EEPROM (obsługiwaną rozkazem movx) oraz interfejs SPI.

    ZbeeGin wrote:
    8051 nie ma - a przynajmniej Ja nie znalazłem - takiego fajnego darmowego(!) narzędzia jakim jest AVR Studio, gdzie wszystko masz pod ręką: edytor, kompilator, symulator.


    Tu masz rację, ale każdy producent wspiera własną architekturę. Tak Atmel AVRki, jak Microchip PICe. Dla 8051 sporo jest komercyjnych rozwiązań, na przykład KEIL. MIDE-51 jest bardzo fajnym środowiskiem do tworzenia programów (kompilatory asm + SDCC), niestety, symulator ma taki sobie i to z ograniczeniem do 2kB kodu (wersja ewaluacyjna). Nie wiem co ciekawego do swoich 8051 ma Analog Devices, bo nie sprawdzałem, niemniej jednak trudno zaprzeczyć, że rodzina 8051 (właściwie to MCS-51) jest nadal bardzo popularna. Dodam jeszcze, że procesorki Dallasa mają 2 UARTy i wbudowany bootloader, który umożliwia programowanie przez UART. Natomiast w Atmelowskim AT89C51SND2 programowanie odbywa się przez USB :)

    sibislaw wrote:
    Ale prawde mówiąc 8051 ze swoimi peryferiami i architektura jest nieco przestarzały, tak samo trzymamy sie 8051 jak architektury intela dla dużych komputerów, dla kompatybilności.


    Tu nie masz racji, w tej chwili procesory oparte na rdzeniu MCS-51 są także bardzo wydajne, posiadają sprzętowe dzielenie liczb (rozkaz div A,B), co jest cechą unikatową wśród mikrokontrolerów 8-mio bitowych. Posiadają także dwupoziomowy system przerwań (możliwość zmiany priorytetów przerwań). Dla porównania, AVRki nie mają jednopoziomowy system przerwań (priorytety "na sztywno" oraz brak możliwości przerwania wykonywania procedury obsługi przerwania o niższym priorytecie - flaga I jest zerowana po wejściu w procedurę obsługi przerwania) a także nie mają sprzętowego dzielenia. U PICów jest jeszcze gorzej (przynajmniej w rodzinie PIC16), mają niewiektoryzowany sytem przerwań, co oznacza, że istnieje jedno przerwanie, gdzie po wywołaniu funkcji jego obsługi należy sprawdzić które z urządzeń je zgłosiło, dopiero potem podjąć decyzję co do jego właściwej obsługi. Ponadto nie mają ani sprzętowego mnożenia, ani dzielenia. Ich zaletą jest to, że wszystkie rozkazy wykonują się w jednym cyklu maszynowym.
  • #12
    don diego
    Level 32  
    Zaquadnik wrote:
    (...) Ich zaletą jest to, że wszystkie rozkazy wykonują się w jednym cyklu maszynowym.

    Z tego co mi wiadomo, w PIC16 cykl rozkazowy składa się z czterech cykli maszynowych, natomiast wszystkie rozkazy są wykonywane w jednym cyklu rozkazowym (chociaż właściwie w dwóch). Ale PICi znam jedynie "ze słyszenia":)
  • #13
    Balu
    Level 38  
    A ja powiem od Siebie...że 51 to jest ogólnie rzecz biorąc złoooo!

    Wszystko jest od niej lepsze...(AVR? szybszy. więcej harware ale cena wyższa... czy avr prostszy? Przepraszam bardzo,ale przepchnięcie Matki czy Ojca przez Acc lub dptr to jest drwina!... już nie mówię o dzielniku przez 12...)...
    A w ogóle to pice porównywalne cenowo a o niebo lepsze od 51 (gorsze od avr...[pic16/18/12] ) a np. pic24 napewno tańszy od 51 AD czy maxima a 40Mips... to kosmos...

    Dodano po 1 [minuty]:

    Już nie wspominam o pisaniu programów na DSM'a w 51 gdzie traktujemy go jak bascoma prawie... instrukcje mnożenia wielobajtowego? Obsługi lcd? DRWINA!

    51 do lamusa!

    AVR/PIC darmowe środowisko (PRODUCENTA!)...
  • #14
    tplewa
    Level 39  
    Balu bez obrazy...

    Ale ten rdzen powstal gdy nikt nie wiedzial co to AVR... Na takich prockach sie wychowalem i nie marudzilo sie wtedy ze nie ma pieknego IDE itp.

    Dyskwalifikowanie tych prockow ze wzgledu na jakis wynalazek w stylu DSM jest z twojej strony lekkim nie taktem.

    Nowe rdzenie 51 sa znacznie poprawione i szybko nie pojda do lamusa. Zreszta AVR to wcale nie jest jakies wielkie cudo. Sa wiele ciekawsze rdzenie np. MIPS.

    Inna sprawa to w niektorych zastosowaniach wcale nie potrzeba tak szybkich prockow, szybkie procki z natury rozleniwiaja programiste. Dosc czesto widze w projektach wypasiony procesor gdzie z punktu widzenia projektu spokojnie poradzila by sobie 51-ka...

    Na takiej podstawie jak mowisz nie mozna dyskwalifikowac procesorow...
  • #15
    Balu
    Level 38  
    Ja ich nie dyksfalifikuję, ja po prostu mówię że w/g mnie są dużo lepsze procki w podobnej cenie a o to głównie chodzi.
    Sorry...dla mnie 51 w asmie to męczarnia... na pcb produkuje nie potrzebne części... Ogółem totalna porażka...
    Me się wychowało na AVRach i wcale nie mówi że są U A O de best...
    PICe rządzą cenowo i sprzętowo (każdy znajdzie coś dla Siebie!).

    51 rządziły jakiś czas temu...
    Może i rozleniwiają ale sorry! Do wdrażania oprogramowania procek bez ISP? PORAŻKA!
    Z ISP 51 kosztuje tyle co każdy inny... A... KĄŻDY inny jest szybszy od 51.. Więc co z tego że rozleniwiają lepsze procesory? Po to jest postęp, aby ułatwiać życie i nam! Programistom!
    Anyway! Sądzę mimo wszystko, że jakby nie wypadek z MP3 to 51 byłaby na chwilę obecną do duszy solidnie... ta mp3 troszkę go ratuje....ale z kolei... procek z mp3 (rdzeń 51!) za 40zł.... a jakikolwiek ARM za 20kilka złotych na któym mp3 też pójdzie...
    Pozostawiam bez komentarza. Moim zdaniem era 51 dobiega końca.

    Pozdrawiam Łukasz.
  • #17
    sibislaw
    Level 12  
    Ktoś napisał że szybkość łatwość rozleniwia, ale chyba o to chodzi w postępie? Np, po co sie meczyc piszac programy MS Visual Studio jak ma sie Borland Buildera? Tak samo z ASM i C, lub bascomem. Gdy nie jest wymagana super optymalizacja wystarczy bascom, i to nic złego, zmniejsza czas programowania. Tak samo z pamieciami EPROM w niektorych 8051. Flash lub EEPROM wygodniejsze.
  • #18
    Freddie Chopin
    MCUs specialist
    sibislaw wrote:
    Np, po co sie meczyc piszac programy MS Visual Studio jak ma sie Borland Buildera?

    tutaj chyba przyklad powinien byc odwrotny [; jak dla mnie Borland Builder to jest program nie do przebrniecia, nic tam nie dziala jak trzeba, problemy sa ze wszystkim co sie da, a napisanie prostego programu to masakra. za to w Visualu wszystko idzie gladko, pieknie i wygodenie. moze albo ty od dawna nie widziales Visuala, albo ja od dawna Borlanda <:

    niemniej jednak biorac pod uwage fakt, ze 95% studentow politechnik moze legalnie uzywac pelnej wersji Visuala (program MSDNAA), a borlanda juz nie, to ... po co piracic takie 'cos' jak BB [;

    a wracajac do rozleniwiania i wygody. teraz najprostsza gierka na PCta zajmuje ci z 200mega ramu i potrzebuje procka ze 2GHz. myslisz ze dlaczego tak jest? przeciez pamietam dobrze, ze na 486 gry tez mialy swietna grafike i chodzily bardzo plynnie, a RAMu na calego kompa to ja mialem 4 mega.

    mowisz ze bascom jest ulatwieniem, ale czy aby na pewno? jesli chcesz zrobic cos ciezszego, skomplikowanego, wieloprzerwaniowego, to kazdy bascomowiec z doswiadczeniem powie ci, ze wtedy zaczynaja sie dziac niestworzone rzeczy. i tym sposobem jest tak jak mowi tplewa - proste rzeczy wymagaja coraz bardziej skomplikowanych procesorow. niedlugo juz proste rzeczy beda wymagaly conajmniej ARM9 i RTOSa. potem bez wielu rdzeni to juz w ogole sie nei bedzie dalo nic zrobic.

    0x41 0x56 0x45!!
  • #19
    Balu
    Level 38  
    Co to BB ( BigBrother? ;-) ) to do kosza.. Podziwiam Tych co w tym piszą... (sam kiedyś pisałem ale to se ne wrati bo to złoooooooo!). MSVS z MSDNAA darmowy, full wypas, dokumentacji terabajty, książek dziesiątki...

    Co do rozleniwienia pewnie, że tak Freddie. Ale skoro mogęzrobić odtwarzacz mp3 na 51 za 40zł lub na armie za 20 zł to wybacz, jeśli ma to być projekt komercyjny... :]
    Poza tym do prostych projektów to bez różnicy czy to 51 czy avr czy pic i nie ważne jaki język w każdym się zrobi to samo i też będzie działać i nie braknie miejsca... A wtedy też chodzi jednak o wygodę... jeśli mogę pisać obsługę LCD i klawiatury dwa dni *graficzny* a mogęto zrobić za popołudnie z piwkiem... Wybacz!
  • #20
    Zaquadnik
    Level 27  
    don diego wrote:
    Z tego co mi wiadomo, w PIC16 cykl rozkazowy składa się z czterech cykli maszynowych


    Tak, masz rację. Pisząc o 1 cyklu miałem na myśli AVR. Mój błąd, że tego nie zaznaczyłem.

    Balu wrote:
    Co do rozleniwienia pewnie, że tak Freddie. Ale skoro mogęzrobić odtwarzacz mp3 na 51 za 40zł lub na armie za 20 zł to wybacz, jeśli ma to być projekt komercyjny... :]


    A jeśli masz kupić procek za 20 zł i męczyć się z programowym dekoderem mp3 przez miesiąc, a kupić procek za 40zł i z dekoderem sprzętowym i tylko dopisać obsługę dekodera + jakiejś pamięci i wyświetlacza, no to wybacz... W projektach komercyjnych czas też się liczy.

    Nie rozumiem tych "ataków" na '51. Procesor ten bardzo łatwo programuje się w ASM. Jest to procesorek CISC, co upraszcza programowanie w asemblerze. Może i jest to architektura przestarzała, jednak ma kilka bardzo fajnych rozwiązań, z ktorych dwupoziomowy system przerwań jest tym, czego brakuje mi w AVR. 8051 ma bardzo prosto rozwiązane operacje bitowe z wykorzystaniem znacznika C (przeniesienia). Pisanie wstawek asm w SDCC - po prostu bajka :) No i bardzo duży wybór procków z tym rdzeniem. Niezaprzeczalne zalety ;)[/quote]
  • #21
    Bigfoot
    Level 25  
    Freddie Chopin wrote:
    niemniej jednak biorac pod uwage fakt, ze 95% studentow politechnik moze legalnie uzywac pelnej wersji Visuala (program MSDNAA), a borlanda juz nie, to ... po co piracic takie 'cos' jak BB [;


    :arrow: Freddie Chopin - nie opowiadaj bajek!
    http://www.borland.pl/download/personal.shtml

    :arrow: Balu - piszac, ze cos jest zle, albo, ze do kosza z tym, ze porazka to troche tak jak w jezykow politykow: albo cos jest w stu procentach dobre i biale albo w stu procentach zle i czarne. A prawda jest praktycznie zawsze po srodku. Czasem lepiej uzyc 51' (z roznych powodow), czasem lepiej PICa, czasem AVRa a czasem nawet ma sens sklecic cos w Bascomie. Troche dystansu Panowie w takim czarno-bialym kategoryzowaniu dobrych i zlych mikrokontrolerow czy kompilatorow C++...

    BF
  • #22
    Balu
    Level 38  
    Ależ ja nie mówię czyńcie jak ja czynię.. ;-)
    Ja wyrażam Swoją OPINIĘ co w/g mnie jest baiłe a co czarne... a i owszem udało mi się sklecić kilka układów na 51... jeden nawet niedawno...le bynajmniej nie wynikało to z mojej potrzeby i chęci tylko przymusu (założenie projektanta).

    :)

    Anyway pisząc coś piszę w SWOIM i TYLKO SWOIM imieniu!
    Nie proponuje / nie nakazuję / nie każę nikomu nic takiego robić ani tak uważać.

    WYpowiadam się tylko w tematach w których jako tako się orientuję. No i sorry. BB dla mnie to tragedia! Podobnie 51 w jakiejkolwiek postaci... P O R A Ż K A :]

    Ale to jest moje i tyylko moje zdanie. I nikt mi nie powie, że lepiej używać czegoś czego się już nie produkuje (AFAIK) - BB, czy używać czegoś co jest wolne, niewygodne w programowaniu jak za podobną cenę mogę mieć coś dużo lepszego.
    Takie moje zdanie.
  • #23
    ZbeeGin
    Level 39  
    Zaquadnik wrote:
    Jest to procesorek CISC, co upraszcza programowanie w asemblerze.

    No, niektóre z elementów asemblera AVR przydałaby się w zasobach 8051. Na przykład jasne i czytelne skoki: BRGE, BREQ, BRLT. W 8051 trzeba pamiętać, że odpowiednia kombinacja flag Z i CY to większe, mniejsze, równe. 8051 ma też nieco niezbyt zgrabnie zrobione porównania, a jedynym przedstawicielem jest CJNE. Mogli pozostawić także prostą instrukcję CP (znaną np. z Z80) która ustawi znaczniki. Porównywanie przez odejmowanie stwarza zawsze dodakową instrukcję CLR C, gdyż odejmowanie występuje tylko jako SUBB z uzwględnieniem CY.
    Zatem w kilku przypadkach ten asembler nie jest aż tak prosty.

    Zaquadnik wrote:
    Może i jest to architektura przestarzała, jednak ma kilka bardzo fajnych rozwiązań, z ktorych dwupoziomowy system przerwań jest tym, czego brakuje mi w AVR.

    A coż przeszkadza aby ustawić przez SEI globalną flagę przerwań w procedurze przerwania, która ma mieć niższy priorytet? Wtedy następne przerwanie będzie zgłoszone i obsłużone. Dodatkowo można przyblokowywać zezwolenia na przerwania z danych urządzeń. Co prawda jest to taka programowa proteza i trzeba nieco pomyśleć przy konstruowaniu ISR.
  • #24
    tplewa
    Level 39  
    Bigfoot wrote:
    Freddie Chopin wrote:
    niemniej jednak biorac pod uwage fakt, ze 95% studentow politechnik moze legalnie uzywac pelnej wersji Visuala (program MSDNAA), a borlanda juz nie, to ... po co piracic takie 'cos' jak BB [;


    :arrow: Freddie Chopin - nie opowiadaj bajek!
    http://www.borland.pl/download/personal.shtml



    Owszem ale do celow niekomercyjnych. Visual Studio Express mozna uzywac do komercyjnych projektow.

    Co do BB to tez mi to nie pasi, sam trzymam sie akurat VS. Aktualnie mam 2005 Pro, fakt duzo sie zmienilo i M$ goni w strone C# i .NET. Jakos nie moge sie tez do tego przekonac i dalej klepie w MFC :) Choc kilka programow w C++ .NET naskrobalem :)

    Odnosnie prockow to trudno generalizowac, tak jak wspominalem dobierajac procek do projektu ma sie na uwadze znacznie wiecej czynnikow. Jest wiele ciekawych rdzeni ktore warto brac pod uwage...

    Tak z ciekawosci dodam ze w ECU z mojego samochodu siedzi bidne Hitachi HD6303 i naprawde sporo robi :) mimo braku ogromnej szybkosci :)
  • #25
    sibislaw
    Level 12  
    [quote="Freddie Chopin"]
    sibislaw wrote:

    niemniej jednak biorac pod uwage fakt, ze 95% studentow politechnik moze legalnie uzywac pelnej wersji Visuala (program MSDNAA), a borlanda juz nie, to ... po co piracic takie 'cos' jak BB [;

    a wracajac do rozleniwiania i wygody. teraz najprostsza gierka na PCta zajmuje ci z 200mega ramu i potrzebuje procka ze 2GHz. myslisz ze dlaczego tak jest? przeciez pamietam dobrze, ze na 486 gry tez mialy swietna grafike i chodzily bardzo plynnie, a RAMu na calego kompa to ja mialem 4 mega.


    Borlanda nie trzeba "piracić" bo jest darmowy do nauki, dla wszystkich, nie tylko dla wielkich studentów politechnik, a 2 to prawda, tylko ze sprawdza sie to w przypadku gier, a zazwyczaj w uC zasobow zawsze troche zostaje, nie sa poddane takim wymaganiom, i chodzi na nim jeden watek.
  • #26
    VanThor
    Level 19  
    Balu wrote:
    Podobnie 51 w jakiejkolwiek postaci... P O R A Ż K A :]


    A widziałeś uC z rdzeniem 51 produkowane przez Silicon Laboratories?
    Szybki, jednotaktowy rdzeń w niektórych modelach taktowany do 100MHz plus bogate peryferia.
    Popatrz szczególnie na C8051F060 - dwa przetworniki A/C, każdy o rozdzielczości 16bitów i szybkości próbkowania 1MSps. Widziałeś, żeby jakiś AVR coś takiego miał do tej pory? Ten mikrokontroler jest dostępny już kilka ładnych latek, a rodzina XMEGA z 12bitowymi przetwornikami dopiero wchodzi na rynek. AVR z przetwornikiem lepszym niż 10bitowy (XMEGA - 12bitowy)? -> C51 nawet z 24bitami to nic nadzwyczajnego (przynajmniej 3 różne firmy mają takowe w ofercie). Widziałeś AVR z wbudowaną przetwornicą i napięciem zasilania od 0.9V? -> SiLabs C8051F9xx.
    Fakt, rdzeń C51 jest stary i ma swoje wady. Ale AVR to też przecież nie same zalety :)
  • #27
    Fyszo
    Level 37  
    Jest takie powiedzenie w motoryzacji "co z tego że koni kupa, jak z kierowcy dupa". I to odzwierciedla wszystko. Ani BB nie jest gorszy od M$, ani 51' gorsza od reszty. Ja pamiętam czasy kiedy tylko ten typ istniał na rynku i rzeczywiście jest prosty jak się go pozna. Teraz w tych nowych wielu rzeczy 'brakuje'. Z kolei mają bogatsze wyposarzenie w 'standarcie'. Więc niech sobie każdy używa co chce. Raczej jestem zwolennikiem 51', przez sentyment.
  • #28
    Bigfoot
    Level 25  
    I ja mysle, ze tym slusznym powiedzeniem Fysza mozna zakonczyc ta, tak naprawde nic nie wnoszaca, dyskusje.

    BF
  • #29
    fantom
    Level 31  
    Warto znac i jedno i drugie i trzecie i.... Generalnie nie warto sie ograniczac, nigdy nie wiadomo z czym przyjdzie nam pracowac.