Sari la conținut

pic24 inlocuitorul de succes al familiei de 8 bit


shiramoo

Postări Recomandate

Salut

De vreo un an am ?nceput sa folosesc familia PIC24 at?t H cit si J si pot spune astăzi ca sunt net superioare PIC 8bit atit la capitolul CPU cit si la cel de periferice.

Pentru cei ce nu sunt familiarizați cu aceasta familie de 16 bit pot spune pe scurt ca :

CPU

- instrucțiunea se executa in 2 clk (4clk pentru 8 bit)

- are un set mai consistent de instrucțiuni scrise pentru optimizare limbaj C,

- 16 registre W de asemenea eficiente pentru limbaju C

- ?nmulțiri/?mpărțiri pe 16 bit cu rezultat pe 16 rapide și eficiente

 

Periferice

- timere 16Bit cel putin 5 / core

- PWM/DCM

- RTC

- DMA (seria H)

- CRC16

- ADC 1.1M sample (nu toate modelele)

- SPI cu pina la 10MBs

- Port paralel cei drept cu prea putine adrese pentru a lucra cu memorii mai mari dar nu cred ca pentru asta l-au g?ndit cei de la Microchip

 

Folosesc compilatorul free de la Microchip (C30 si Hightec) (cei drept cu full optimizare doar pentru 40 zile) suficient pentru aplicații mici și medii dacă nu sunteți interesați de optimizarea riguroasa a codului.

Seria H ajunge la 40Mips iar seria F ajunge la 16Mips diferența de preț nefiind mare.

Timpul de pornire cu seria PIC24 pentru mine a fost de citeva zile pentru a avea un miniOS , control LCD, taste, funcționale.

 

Scopul pentru care ma scris acet topic este sa schimbam idei bazate pe PIC24 si nu sa fac reclama unui produs care este deja popular.

Link spre comentariu
Distribuie pe alte site-uri

4clk pentru 8 bit

 

esti sigur de asta?

 

chiar si atmega8 executa pe 1 clk (cu exceptia a cateva instructiuni pe 2 clk), m-as mira ca PIC-urile de 8 biti sa execute pe 4 clk-uri (nu s-ar mai incadra in caregoria RISC)

poate vrei sa zici ca au pipeline-ul de 4 clk-uri.

RR

Link spre comentariu
Distribuie pe alte site-uri

pentru PIC24FJ pentru un clock intern de 32MHz avem 16MIPS in timp ce ce la 8bit pentru un clock intern de 32MHz avem max 8MIPS.

Se poate verifica foaia de catalog:

 

Up to 16 MIPS Operation @ 32 MHz

Nu toate instrunctiuneile sunt executate pe acelasi numar de clock vezi catalog:

 

All instructions execute in a single cycle, with the exception of instructions that change the program flow, the double-word move (MOV.D) instruction and the table instructions. Overhead-free program loop constructs are supported using the REPEAT instructions, which are interruptible at any point.

 

Pipeline-ul doar "paralelizeaza" in mare mai multe instructiuni dar un ciclu de executie a unei instructii este Fetch 1 + Execute 1 care fiecare ia de fapt 2xciclii (2x2xclock). Risc apare ca executa 1 instructie /ciclu(2clock) datorita pipeline dar de fapt ia dublu (daca este mai complexa ia mai mult).

La Atmel mechanismul este la fel cu diferenta ca un ciclu este 1clock. Dar mai trebuie luat in calcul si acesul in flash, viteza de bus etc, nu se reduce totul la in cit timp se executa o intructie.

Link spre comentariu
Distribuie pe alte site-uri

la atmega e aproape Mhz/MIPS

la 16 Mhz ~ 16 Mips.

 

• Advanced RISC Architecture

– 131 Powerful Instructions – Most Single Clock Cycle Execution

– 32 x 8 General Purpose Working Registers

– Fully Static Operation

– Up to 20 MIPS Throughput at 20 MHz

– On-chip 2-cycle Multiplier

 

mega88 poate accesa flash-ul cu 20 Mhz (alimentat corespunzator)

 

 

sa inteleg ca PIC e asa de slab (~ 0.5) fata de ATmega?

evident ca daca ai jump conditional trebuie sa faci flush la pipeline si nu mai e 1Mhz/1MIPS, dar rutina care calculeaza mips nu face salturi si nici access in memoria externa (deci nu prea executa intructiunile pe 2 clk-uri)

RR

 

 

RR

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

da un PIC24 este ~0.5 fata de ATMEGA dar este un core de 16 bit superior la manipularea datelor pe 16 bit respectiv a calculelor pe 16 bit.

PIC24H ruleaza la max 40Mips (freq intern 80MHz) Atmel fiind limitat la max 32Mips(intern 32MHz) la familia Xmega din cite știu.

Pentru mine este important citi MIPS ?mi ofera respectivul chip și nu cum. La fel de importan este daca micro respectiv iti ofera periferice-le de care ai nevoie

pentru aplicația ta si un compilator cit mai ieftin daca nu chiar gratis garantat de firma producatoare a micro-ului, si nu in ultimul r?nd prețul....poate fii un micro Atmel sau unul Microchip.

Eu lucrez pe uC microchip pentru ca am toate instrumentele la ?ndem?na ?n care nu am investit prea mult si sunt foarte mulțumit de fiabilitatea recunoscuta a produselor.

Competiția Atmel -- Microchip o sa răm?nă p?nă c?nd unul din cei doi va dispărea. Au am?ndoi produse cu bune cu rele. Nu este ușor sa faci un micro sa fie si ieftin si bun. Daca ai o arhitectura mai buna mai tai la capitolul fiabilitate și viceversa dar paritatea va răm?ne cam 1:1 ca doar se urmăresc unul pe celalalt și iau măsuri.

 

 

la atmega e aproape Mhz/MIPS

la 16 Mhz ~ 16 Mips.

 

? Advanced RISC Architecture

? 131 Powerful Instructions ? Most Single Clock Cycle Execution

? 32 x 8 General Purpose Working Registers

? Fully Static Operation

? Up to 20 MIPS Throughput at 20 MHz

? On-chip 2-cycle Multiplier

 

mega88 poate accesa flash-ul cu 20 Mhz (alimentat corespunzator)

 

 

sa inteleg ca PIC e asa de slab (~ 0.5) fata de ATmega?

evident ca daca ai jump conditional trebuie sa faci flush la pipeline si nu mai e 1Mhz/1MIPS, dar rutina care calculeaza mips nu face salturi si nici access in memoria externa (deci nu prea executa intructiunile pe 2 clk-uri)

RR

 

 

RR

Link spre comentariu
Distribuie pe alte site-uri

nu-mi propusesem sa devin avocatul Atmel, eram umai surprins ca PIC-ul nu executa 1 instructiune pe tact.

Nu sunt un mare fan AVR (cu totate ca am facut ceva proiecte cu el) eu sunt cu procesoare soft (realizate pe FPGA) si hard PowerPC, si DSP-uri video pe FPGA

 

(si vin din negura timpurilor de la Intel 8080 si Z80)

RR

Link spre comentariu
Distribuie pe alte site-uri

Respect pentru ce faci...pe un segment dedicat inginerilor adevarati...mi se pare fabulos..si respect pentru longevitatea pasiuni pentru lucruri avansate

Eu am inceput cu 80552 deci pot spune sarut mana :-)

 

nu-mi propusesem sa devin avocatul Atmel, eram umai surprins ca PIC-ul nu executa 1 instructiune pe tact.

Nu sunt un mare fan AVR (cu totate ca am facut ceva proiecte cu el) eu sunt cu procesoare soft (realizate pe FPGA) si hard PowerPC, si DSP-uri video pe FPGA

 

(si vin din negura timpurilor de la Intel 8080 si Z80)

RR

Link spre comentariu
Distribuie pe alte site-uri

  • 2 weeks later...

si inca ceva seminificativ diferit de PIC8 ... tabel multiplu de vectori de intrruperi..care clar inbunatateste timpul de tratare a unei intreruperi si per ansamblu executia sistemului in timp real.

Cam fiecare periferic are un numar de vectori predefiniti.

Link spre comentariu
Distribuie pe alte site-uri

shiramoo

 

hmm, m-ai facut curios si m-am uitat peste un datasheet de la Microchip, cam primitiv sistemul de intreruperi (sunt un pic dezamagit)

cam de casa pionierilor si soimilor patriei...

dar pana la urma se poate lucra si cu asa ceva dar te mai costa cateva tacturi sa determini sursa intreruperii, si cred ca trebuie sa stergi flagurile manual la iesire (alta chestie enervanta)

RR

Link spre comentariu
Distribuie pe alte site-uri

cred ca te referi la familia de 8 bit care are un singur vector cel mult doi pe PIC18 dar este cam greoi cind vrei real-time. Pentru familia de 16 bit (PIC24) sistemul de intreruperi este mult mai modern si iti ofera cam tot ce iti ofera orice micro de real timp-real. Am test acest sistem de intreruperi pe PIC24HJ128G004 is merge foarte bine.Cum am mai spus ai o gramada de vectori de intreruperi pentru fiecare periferic. Iti recomand sa folosesti si DMA pe familia PIC24H si nu o sa fi prea dezamagit. Pe mine m-a prins

shiramoo

 

hmm, m-ai facut curios si m-am uitat peste un datasheet de la Microchip, cam primitiv sistemul de intreruperi (sunt un pic dezamagit)

cam de casa pionierilor si soimilor patriei...

dar pana la urma se poate lucra si cu asa ceva dar te mai costa cateva tacturi sa determini sursa intreruperii, si cred ca trebuie sa stergi flagurile manual la iesire (alta chestie enervanta)

RR

Link spre comentariu
Distribuie pe alte site-uri

shiramoo,

eu comparam mere cu mere (nu mere cu portocale) - mai uitam la PIC8 versus Mega8.

acum toti au DMA si alte brizbrizuri mai ales pe familiile de la 16 biti in sus, dar cu microcontrolerele e ca si cu religiile (nu le schimbi prea des) nu prea iti vine sa arunci la gunoi timpul care l-ai cheltuit invatandu-le (+ tool chain-ul)

De aceea cand aleg un micro nou nu fac alegerea doar dupa ce are microcontroller-ul ci si dupa ce compilator de C exista pentru el ( daca nu e suportat GNU nu prea ma ating de el)

S-au dus vremurile cand costa 1000 USD compilatorul de C de la 8051 (Keil sau IAR) iar de assembly language sa nu mai aud, sunt prea batran pentru asta.

RR

 

 

PS - revenind la titlul topicului, pic24 poate fi considerat inlocuitorul de success al PIC8, cel putin asta am desprins eu din discutia de mai sus. Totusi nu e o idee buna sa treci la un uC 16 biti cand ai nevoie de unul de 8 biti (si sunt destule uC care sa faca treaba buna pe 8 biti) - pana la urma depinde de aplicatie, de utilizator si experinata anterioara.

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

shiramoo,

eu comparam mere cu mere (nu mere cu portocale) - mai uitam la PIC8 versus Mega8.

acum toti au DMA si alte brizbrizuri mai ales pe familiile de la 16 biti in sus, dar cu microcontrolerele e ca si cu religiile (nu le schimbi prea des) nu prea iti vine sa arunci la gunoi timpul care l-ai cheltuit invatandu-le (+ tool chain-ul)

foarte adevarat....un lucru care m-a dezamagit foarte tare la pic-uri a fost ca nu toate stiu sa faca inmultiri si impartiri...diferenta fata de avr-uri...si cand a trebuit sa aleg un procesor cu arhitectura redusa (8 pini) nu am putut face calcule matematice mai complexe...
Link spre comentariu
Distribuie pe alte site-uri

Este adevarat ca Microchip nu are micro cu 8 pini care sa aiba inmultiri si impartiri...dar poti avea unul care sa aiba la 14 pini si pe 16 bit la vreo 6-7ron: PIC24F04KA200

 

foarte adevarat....un lucru care m-a dezamagit foarte tare la pic-uri a fost ca nu toate stiu sa faca inmultiri si impartiri...diferenta fata de avr-uri...si cand a trebuit sa aleg un procesor cu arhitectura redusa (8 pini) nu am putut face calcule matematice mai complexe...
Link spre comentariu
Distribuie pe alte site-uri

shiramoo,

eu comparam mere cu mere (nu mere cu portocale) - mai uitam la PIC8 versus Mega8.

Am inceput sa renunt la 8 bit atita vreme cit cele de 16bit ce sunt la fel de ieftine si mai performante din toate punctele de vedere.Tehnologia avanseaza cu o viteza ametitoare iar micro realizate in 90nm nu mai mira pe nimeni. ARM Cortex M0 pe un core de 32 bit va bate 8/16bit la pret in ani urmatori.

Pretul se face pe numar de chipuri realizate pe un wafer. Vechile core de 8/16bit sunt scump de migrat la noile procese de fabricatie (xxnm) asa ca sunt produse cele noi...per wafer aceleasi sau mai multe ca si cele 8/16bit.

Stiu ca 8 bit nu va dispare prea curind dar din pacate asta este tendinta...

acum toti au DMA si alte brizbrizuri mai ales pe familiile de la 16 biti in sus, dar cu microcontrolerele e ca si cu religiile (nu le schimbi prea des) nu prea iti vine sa arunci la gunoi timpul care l-ai cheltuit invatandu-le (+ tool chain-ul)

Parerea mea ca daca sti unul 8/16/32 si sti C nu prea iti rezista nimic.

De aceea cand aleg un micro nou nu fac alegerea doar dupa ce are microcontroller-ul ci si dupa ce compilator de C exista pentru el ( daca nu e suportat GNU nu prea ma ating de el)

In general firmele producatoare de micro iti cam ofera versiuni mai limitate la optimizarea de cod cu care pentru hobby sau mici afaceri iti faci treaba...o spun din propria experienta. ARM, PIC, AVR, MSP430, ...ofera suport.

S-au dus vremurile cand costa 1000 USD compilatorul de C de la 8051 (Keil sau IAR) iar de assembly language sa nu mai aud, sunt prea batran pentru asta.

RR

Dupa o vacanta de asmblare am incercat din nou si am avut aceeasi senzatie ca sunt prea batrin...C este stapinul...

 

 

PS - revenind la titlul topicului, pic24 poate fi considerat inlocuitorul de success al PIC8, cel putin asta am desprins eu din discutia de mai sus. Totusi nu e o idee buna sa treci la un uC 16 biti cand ai nevoie de unul de 8 biti (si sunt destule uC care sa faca treaba buna pe 8 biti) - pana la urma depinde de aplicatie, de utilizator si experinata anterioara.

Ai dreptate depinde de aplicatie iar daca ai deja un produs care merge ii cam costisitor sa il modernizez daca nu este neaparata nevoie.

Eu ma joc cu 8/16bit pentru Hobby...la servici ma lupt cu 32bit.

Link spre comentariu
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock