PIC's ou FPGA?

Responder
BLima
Técnico Dedicado
Técnico Dedicado
Mensagens: 754
Registado: 12 jan 2008, 00:53
Localização: Funchal
Has thanked: 17 times
Been thanked: 14 times
Contacto:

PIC's ou FPGA?

Mensagem por BLima »

Bom dia a todos,

Gostaria de saber em que tipo de projectos é que são usados os dispositivos FPGA?

Podem ser usados em lugar dos pic's? São mais evoluídos ou vale a pena ficar pelos pic's?

E entre o 8051 e os pic's, qual o mais fácil de trabalhar e aprender?

Abraço,
Atentamente,
Bruno
-------------------------------------------------------------------------------------------------------------------
M4I - Manutenção Industrial
e-mail: geral@m4i.pt
Guilherme
Curioso
Curioso
Mensagens: 61
Registado: 18 set 2007, 18:01
Localização: Santiago do Cacém
Contacto:

Re: PIC's ou FPGA?

Mensagem por Guilherme »

epah .. eu conheço os PIC, mais concretamente PIC16FXX e gosto bastante.
No entanto, tenho lido umas coisas sobre 8081 e sinceramente, por não ter tanta capacidade e em principio também pelo preço, julgo-o, para algumas tarefas mais prático ...

Sinceramente acho que é mais "Ao gosto do freguez" que outra coisa...
jorgegti
Faça a sua apresentação
Faça a sua apresentação
Mensagens: 3
Registado: 01 abr 2008, 23:57

Re: PIC's ou FPGA?

Mensagem por jorgegti »

Os FPGA , são dispositivos mais básicos de lógica programavel. Os pics sao microcontrooladores da microchip que dependendo da familia vai ter mais ou menos funcionalidades (perifericos). Um FPGA é apenas um dispositivo que agrega vários circuitos combinatórios. No entanto para a maior parte das aplicacoes em que as saidas só dependem do valor colocado à entrada estes dispositivos são bastante mais rapidos , pois não é necessário processar os dados...
hamn
Curioso
Curioso
Mensagens: 34
Registado: 18 mar 2008, 12:54
Localização: Figueira da Foz, Portugal

Re: PIC's ou FPGA?

Mensagem por hamn »

Como sempre, depende do que exactamente se quer e for preciso fazer!
Como o jorgegti disse, um FPGA, como o nome indica, e' um pacote de logica combinacional integrada e com memoria ( afinal de contas, uma celula de memoria nao e' mais que logica cobinacional realimentada! )
Se o trabalho tocar apenas em sistemas digitais, provavelmente sera' a melhor opcao ( nao estou a olhar para os $$ ).
Mas se for necessario "ler" algum sinal de natureza continua, entao nao ha' duvidas, usa um PIC ( a microchip ate' os oferece e tudo! apesar do nosso pais nao estar contemplado para uns quantos modelos :( )
Eu costumo dizer que os microcontroladores juntam o melhor de dois mundos: o processamento e a traducao de sinal...
justme
Velha Guarda
Velha Guarda
Mensagens: 706
Registado: 26 mai 2007, 21:17
Been thanked: 24 times

Re: PIC's ou FPGA?

Mensagem por justme »

FPGA, CPLD ou PLD pertencem à classe dos chamados dispositivos lógicos programáveis.
PIC e 8051 são dispositivos microprocessados, isto é cujo modulo principal é um microprocessador. Receberam o nome generico de microcontroladores uma vez que têm outros modulos integrados na mesma pastilha. Exemplos desses modulos são memoria de dados, memoria de programa, comunicação serie, etc.

A principal diferença entre microcontroladores e os dispositivos logicos programáveis reside em que os primeiros processam a informação em serie enquanto que os segundos o fazem em paralelo. Portanto, estes ultimos têm um processamento mais rápido.

Os FPGA tendem a ser usados em sistemas mais complexos e em pastilha unica, uma vez que permitem a programaçao de qualquer dispositivo logico na sua pastilha, inclusive microprocessadores ou microcontroladores.
Por outro lado diversos fabricantes de microcontroladores integram nos seus chips modulos de logica programável aproximando-se desta forma do desenvolvimento em pastilha unica tambem com microcontroladores.

Entre PIC e 8051, provavelmente o PIC é mais facil de aprender, uma vez que o seu conjunto de instruçoes é bem menor, no entanto o 8051 tendo um conjunto de instruções maior permite tambem uma maior escolha tendendo ainda o seu codigo fonte a ser mais compacto. Portanto pode haver alguma vantagem na programação.

Um abraço
Njay
Curioso
Curioso
Mensagens: 38
Registado: 18 abr 2008, 19:16
Localização: Amadora

Re: PIC's ou FPGA?

Mensagem por Njay »

Já agora, esquece os PICs, aprende linguagem C e usa AVRs.
justme
Velha Guarda
Velha Guarda
Mensagens: 706
Registado: 26 mai 2007, 21:17
Been thanked: 24 times

Re: PIC's ou FPGA?

Mensagem por justme »

Njay Escreveu:Já agora, esquece os PICs, aprende linguagem C e usa AVRs.
Porquê?

Porque não os PIC's e sim os AVR's?
E acerca da familia 8051?

Um abraço
Njay
Curioso
Curioso
Mensagens: 38
Registado: 18 abr 2008, 19:16
Localização: Amadora

Re: PIC's ou FPGA?

Mensagem por Njay »

Na última vez que olhei, eram assim:

Um AVR é 4 vezes mais rápido que um PIC, à mesma frequência de relógio.
A architectura do CPU dos vários modelos no AVR é sempre a mesma, nos PICs não (o tamanho das instruçoes varia).
O fabricante dos AVR disponibiliza gratuitamente um ambiente de programação em Assembly e um simulador, o dos PICs não.
Existe um excelente compilador gratuito para os AVR (e GCC) e um pacote de software para Windows com tudo o que é necessário (compilador + simulador + sw-programador + ...), para os PICs não.
A arquitectura dos AVRs é baseada em RISC (muitos registos, basicamente iguais) e foi optimizada de raíz para facilitar a vida aos compiladores de C o que leva que, em Assembly, seja muito mais fácil de programar do que um PIC, em C o código é mais pequeno do que o de um PIC. A arquitectura dos PICs é baseada em acumulador, antiga e muito mais dificil de programar em assembly.
Nos AVR o espaço de memória é "flat", nos PICs é segmentado. Isto faz com que seja muito mais fácil de programar um AVR em assembly e em C torna o código ainda mais pequeno.
O fabricante dos AVR fornece placas de desenvolvimento a preços bastante razoáveis.
Existe uma comunidade excelente de suporte aos AVR (e outras questões relacionadas) em http://www.avrfreaks.net. O site é patrocinado pelo fabricante mas ele não interfere em nada no seu conteúdo. De vez em quando até lá oferece algum hardware, tipicamente quando há novos produtos (sim, já me calhou um desses).
No AVR tens vectores de interrupção que te indicam de imediato qual a origem da interrupção, nos PICs tens apenas um vector e depois consultas uns registos para saber a origem da mesma.
E provavelmente outras coisas que não me lembro agora... a questão é que, perante um AVR, um PIC é lento, guarda menos código e tem uma arquitectura dificil de programar. A única razão que há para alguém se manter com PICs é se já fez algum investimento razoável em ferramentas de desenvolvimento e bibliotecas. Para quem está a começar agora, o melhor é o AVR. Não é mais caro do que um PIC.

O 8051 também é bastante antigo. Tal como no caso do PIC, só vale a pena usá-lo quem já tiver algum investimento razoável em ferramentas de desenvolvimento para o mesmo. É uma arquitectura antiguíssima e só continuam a fabricá-los porque, como já surgiu à bastante tempo, muita gente está muito habituada a eles. Mais uma vez, para quem está a começar, o melhor é pegar logo nos AVR.
justme
Velha Guarda
Velha Guarda
Mensagens: 706
Registado: 26 mai 2007, 21:17
Been thanked: 24 times

Re: PIC's ou FPGA?

Mensagem por justme »

Ola Njay,
antes de mais obrigado pela resposta.

Apresento de seguida a minha opinião:

Pessoalmente nunca indicaria a alguem que fosse ganhar a vida desenvolvendo circuitos electrónicos com base em microcontroladores a aprendizagem de PIC ou AVR.
Não por não os considerar bons microcontroladores, mas porque têm uma unica fonte.

Não me parece inteligente estar completamente dependente de um unico fabricante.
Havendo rotura de stocks por qualquer razão relaccionada com o fabricante fica-se sem alternativa.
Caso o fabricante feche a fabrica, tem que se jogar fora todo o investimento feito na aprendizagem desse micro, tendo que reinvestir na apredizagem de outro.

No caso de profissionais não é a maior ou menor dificuldade na aprendizagem de um micro nem mesmo o investimento nas ferramentas de desenvolvimento que é mais importante.
Mas sim a disponibilidade dos micros quando os mesmos são necessários.
Assim sendo, eu aconselheraria para micros de 8 bits, um micro que se tornou um padrão industrial, o 8051. Ou melhor a sua familia.

Isso mesmo esse "velhinho" que é fabricado por quase todos os fabricantes de microcontroladores, incluindo a Atmel. Ora é obvio que havendo problemas com um qualquer fabricante ainda se tem uma infinidade de outros com o core compativel. Da ultima vez ouvia falar em cerca de 600 fabricantes de variantes da familia do 8051.

Essa tão grande quantidade de terceiras fontes não tem apenas como vantagem a inexistência do risco de rotura de stocks -o que por si só seria suficiente para a sua escolha- mas tambem o facto de o ter disponivel em praticamente qualquer combinação de periféricos, velocidades, tamanhos, formatos, preços, etc. Basta escolher o variante adequada.
Outra consequencia dessa enorme quantidade de fornecedores é a sua longevidade no mercado. Ora, nenhum single source pode competir com isso.

Por outro lado fala-se do 8051 como se desde a data da sua criação (por volda de 1980) tivesse ficado parado no tempo sem qualquer evoluçao. Ora isso é completamente errado!
Para alem da evolução que se pode depreender pelo paragrafo anterior em termos de adição de outros modulos á volta do seu core, tambem houve evolução do proprio core.
Pode encontrar-se hoje em dia, 8051´s com cores a executar uma instrucão em 12 , 6, 4, 2 ou mesmo 1 clock como os AVR. Portanto um cisc a funcionar com uma caracteristica atribuida aos risc. No entanto o conjunto de instruções é sempre o mesmo.

Fica aqui este link para ilustrar o que estou defendendo:
https://www.mysilabs.com/tgwWebApp/publ ... /index.htm

Um abraço
Njay
Curioso
Curioso
Mensagens: 38
Registado: 18 abr 2008, 19:16
Localização: Amadora

Re: PIC's ou FPGA?

Mensagem por Njay »

É um bom ponto de vista. Contudo a vida também não é assim tão fácil, se ficares sem a tua "variante habitual", vais à mesma ter que proceder a alterações de software e hardware. Mudar de fabricante, mesmo para um modelo semelhante com um core 8051 não é assim tão directo, pois para todos os efeitos é hardware novo e vai ter que passar outra vez por todos os testes (inclusivé os de EMI, caso se aplique). O que vais encontrar mais comum às dezenas ou centenas de variantes do 8051 é o core, e facilmente te abstrais do core usando uma linguagem de alto nível (isto é, que não seja assembly). O que tens realmente é uma maior escolha inicial no que toca a fontes do microcontrolador, mas uma vez escolhida uma fonte, qualquer mudança terá impactos não tão pequenos assim.
Eu em geral não troco um AVR por qualquer um dos outros, pois a arquitectura é francamente superior, e eu gosto de andar para a frente. Facilidade de desenvolvimento também conta muito (cada vez mais), excepto se fores vender um produto aos milhares. Tecnicamente não vejo nenhuma vantagem em nenhuma das outras soluções. Não tecnicamente pode haver como referiste, mas acho que se aplica mais a casos de grande escala, da dimensão que normalmente não temos por cá.
Responder

Voltar para “Microcontroladores”