AVR ou PIC para iniciar a programação de microcontroladores? [fechadas]
-
02-07-2019 - |
Pergunta
Qual família que eu deveria começar a aprender? (Nunca fiz qualquer programação no microcontrolador)
Solução
Hoje AVR e PIC são provavelmente os mais microcontroladores comuns entre os aficionados. Ambos têm uma ampla gama de variantes de aparelhos e ambos podem ser utilizados para alcançar resultados semelhantes.
Para um iniciante eu sugiro AVR devido a várias razões:
-
família AVR (minúsculo, mega) é coerente e fácil de entender. A arquitetura é potente e moderna, e é especialmente indicado para compiladores C. AVRs pode, naturalmente, ser programado em assembly também.
-
Devido à sua arquitetura amigável-C, há qualidade compiladores C disponíveis, tanto comerciais como livres. O GCC onipresente é portado para AVR e chamou avr-gcc .
-
Para começar tudo que você realmente precisa é de um punhado de componentes básicos, o próprio chip AVR e uma placa de ensaio . Mesmo o cabo de programação entre o PC eo AVR pode ser construído essencialmente de graça (a chamada wiggler). No entanto, vários kits de desenvolvimento comerciais estão disponíveis, principalmente do Atmel própria STK500 . Um kit de desenvolvimento comercial é muito mais caro para começar, mas não exige praticamente qualquer conhecimento prévio sobre eletrônica. Alguns kits de desenvolvimento de conter por exemplo LCD exibe por isso é fácil de se coisas interessantes feito.
-
Ele tem uma rica hobby comunidade .
PIC é notório por sua arquitetura peculiar. Muitos PIC amor por isso, alguns odeiam. AVR é ??mais simples e não parece causar tanto extremo e opiniões polares.
Ambos AVR e PIC são usados ??em muitas aplicações comerciais graves. No entanto, eles não são as únicas opções de curso. Meu microcontrolador favorito tanto para hobby e trabalho comercial é a família C8051 Silicon Laboratories', mais notavelmente C8051 F530 . Há um excelente compilador C livre e assembler para a família C8051 chamado SDCC .
Resumo: Há muitas opções, mas por favor não deixe que isso oprimi-lo. Basta escolher um e começar a aprender com ele. Os microcontroladores são, realmente, surpreendentemente fácil de dominar uma vez que você simplesmente decidir começar!
Outras dicas
Meu chefe pegou o básico usando AVR dentro de uma semana, sem experiência prévia.
Eu sugeriria AVR. Ele ultrapassou em muito PIC como a plataforma microcontrolador de escolha para projetos gerais amadores. Mais notavelmente, considere o Arduino (e outros * duino) plataforma, que fornece um AVR de ponta em um fácil de interface e fator de forma popular.
I muito preferem o AVR sobre PIC, cuja arquitetura eu encontrar um confuso pouco. Isso pode ser apenas de mim, e ele não vai incomodá-lo se você pode escrever em uma linguagem de alto nível, o mais provável (algum dialeto de) C.
Uma vez que você é novo para microcontroladores I desempenho presume não será o problema, então ao invés eu iria procurar a disponibilidade de ferramentas de desenvolvimento: placas de prototipagem, IDE e simulação / depuração ferramentas. Pessoalmente eu gostei AVR Studio (da Atmel ambiente de desenvolvimento livre) muito.
Jason menciona do MSP430, que é um excelente controlador de fato, especialmente se você estiver em aplicações de potência muito baixa. Mas eu não recomendo para um novato, uma vez configuração é um pouco pesado. (Lembro-me de que a descrição do oscilador cobriu mais de 20 páginas no manual do usuário.)
Algumas pessoas comentaram sobre o estranho (e C hostil) arquitetura do micro PIC. Isto é verdade para os PICs menores, mas os 16 bits fichas (PIC24F, dsPIC30, etc) têm arquiteturas muito claro que o trabalho muito bem com C.
A linha de PIC24F tem a capacidade de pinos atribuir a funções (temporizadores, A / D, serial I / O) em tempo real, tornando-se um pouco mais fácil de projetar com. O ambiente MPLAB para depurar e desenvolvimento é bastante agradável.
Eu fiz alguma programação PIC - principalmente porque eu gostei da idéia do chip foram apenas um dólar ou dois. No entanto, para um iniciante, de tomar uma decisão unicamente no preço é otimização prematura.
Programação em assembler é uma experiência. Você basicamente tem que aprender sobre 100 conceitos antes que você pode piscar um LED. (Watchdog timer, pinos de reset, contadores de 8 bits / overflows, loops de atraso, hex, binário, bit de mascaramento, interrupções, solicitações de serviço de interrupção, portas IO, etc.) É tudo muito educativo - e uma grande sensação de chegar tão perto para a máquina - mas ser capaz de código algo em C irá esconder um pouco dessa complexidade para que você possa se concentrar em resultados. Por esta razão, eu diria que ir com o AVR. (E eu acredito que os preços são agora mais perto de PICs).
Além disso: Se você estiver interessado em fazer as coisas (e não mente gastar ~ US $ 30) verificar o arduino . Um cara vendê-los em minha loja de eletrônicos local estava dizendo que ele está vendendo toneladas deles para estudantes de arte. (Ele usa o IDE do projeto de processamento, e compila código com avr-gcc).
Update: comentário fixo que Arduino é executado código interpretado. Também atualizou o preço aprox Arduino.
Eu não entendo o que o grande negócio com arduino é, ele vai arruinar a sua chance de nunca entender o que está realmente acontecendo. programa de I com AVR de e PIC de regularmente, basicamente, não há muita diferença, eu não consigo ver o que o grande alarido é sobre. No entanto, para uma estadia iniciante longe de arduino, pode ser simples, mas isso é a armadilha, dá-lhe o conceito de arquitetura de hardware, e nenhuma idéia do que está acontecendo nos bastidores, os novatos coisas precisam aprender a ser um programador eficaz. Quando eu era um novato Eu comecei com um ATmega32 US $ 20 USBasp programador, AVR Studio (Free) e avrdude (Vem com WinAVR) e seguiu os tutoriais de introdução em AVR Freaks. Isso é tudo que você precisa, Feito !!!
P.S. Se você quiser realmente aprender a micros do programa e ter o tempo aprender o assembler para o seu micro e você será 20 vezes o programador C do que alguém que começou usando arduino.
Meu voto vai para PIC para a extrema variedade de dispositivos disponíveis. Mas devo dizer que, quando eu comecei a usar PICs, que era quase nada mais. Talvez agora as coisas são alteradas.
Eu voto para de TI MSP430 Series. Eu usei PICs extensivamente (também fichas Atmel um pouco) e de longe a coisa mais importante para mim é uma boa depuração IDE. TI tem feito um trabalho muito bom sobre isso, e seu compilador C ++ funciona muito bem. Você pode ir com uma placa eval por menos de US $ 100 incluindo um IDE + USB-depurador. Os PICs têm melhores e mais diversos periféricos de hardware, mas MPLAB é um pedaço de merda ea única C ++ IDE para PICs é um por IAR que é bastante caro. (Mais de US $ 2K)
I / optamos PIC principalmente porque não é hardware mais periférico para o mesmo preço. E mais importante, você não pode mesmo encontrar AVRs comparáveis. Eu fiz escolher uma das versões legadas livre embora (começou com PIC18, migrou para dsPIC33)
O IDE é livre, o (C) compilador é livre na versão estudante (que desativa otimização após o primeiro mês). programadores de nível de entrada são relativamente baratos também. Se você tem montes de interrupções, contadores e temporizadores, há uma chance de você não vai precisar de otimização em tudo. Um programador em linha reta da Microchip é de R $ 30.
Note-se que as observações acima sobre AVR restauração mais para o desenvolvimento HLL são ligeiramente ultrapassado a menos que você realmente ir para as arquiteturas legadas como pic12 e 16.
Um tipicamente programas do PIC18 mais moderno (8 bits) e as arquiteturas de 16 bits (24F, 30F e dsPIC33 que são baseados no mesmo núcleo de principal) em C. A 16-bitters mesmo usar GCC. Há também MIPS baseado 32-bitters agora, mas eles mais rival com a ARM na cena de processamento de áudio / vídeo. Curiosamente, os modernos são muitas vezes mais barato do que os antigos. Provavelmente eles são produzidos em um processo mais moderno que tem rendimentos mais elevados.
Outra nota:. Enquanto isso Microchip / PIC comprou Atmel / AVR, mas presumo que para os primeiros anos que não afetará os productlines muito
Eu estou realmente ansioso para o ethernet 60MIPs habilitado 16-amarga que vai ser lançado neste verão (afaik streetprice pouco mais de 10 euros)
Se você só quer saber o que é a programação MCU, começar do Arduino é uma boa idéia. É barato, com um IDE amigável-noviço (baseado em processamento de linguagem de programação, que tem uma sintaxe semelhante com C).
Mas isso não responder à sua quesiton, beacuse altough Arduino é baseada em AVR, você não pode sentir que há um MCU AVR atrás daquela IDE moderno. :)
Eu tinha muito mais sucesso com PIC enquanto eu estava apenas começando. Tentei obter um starter kit simples de Arduino e simplesmente não conseguia um bom kit básico sem gastar mais de US $ 100-200 níquel e diming a configuração juntos. Tenho uma grande starter kit pouco do PIC para cerca de US $ 40 e tem tudo: IDE, programador, placa de arranque com construído no circuito de demos e tutoriais. Uma compra. Além disso, o ambiente PIC foi muito fácil de se configurar e trabalhar. Eu estava jogando com ele dentro de uma hora.
A minha primeira experiência com microcontroladores estava com um OOPic-R . Permitiu-me para fazer experimentos robóticos simples, sem se preocupar muito com o código. O objeto orientada fluxo programação faz tudo o trabalho rápido e é fácil de programa.
Recentemente, eu tentei uma outra variedade de PIC de, a sujeira barato PICAXE . A interface de programação está incluída uma brisa para trabalhar. Além disso, a interface física do PICAXE, você só precisa de uma porta RS-232 para programá-lo e dois pinos no chip (não há necessidade de fazer mudança de nível). Eu já incorporado o PICAXE em pequenos recipientes (SMD e chips DIP disponíveis) e tem funcionado muito bem.
Eu não tenho nenhuma experiência com programação de microcontroladores em assembléia. Se você quiser tentar isso, a AVR pode ser mais adequado por causa de sua maior comunidade de usuários.
Tanto quanto eu sei, a forma mais barata para programar um AVR usando ferramentas da Atmel é o ATMEL AVR ISP mkII por 35 $. Você pode encontrar os programadores de terceiros para 10-15 $.
Gostaria de fazer minha escolha com base na disponibilidade de um cross-compilador C. No passado, que faria AVR a escolha. Eu não tenho certeza que o status é agora.
Eu programei um PIC em assembler, e não era muito divertido. C é muito mais agradável de muitas maneiras.
Em um dos melhores características do AVR é ??a comunidade nos fóruns em www.avrfreaks.net. Você tem um monte de engenheiros eletrônicos experientes pendurado para fora, disposto a ajudar os novatos para começar.
Eu diria que eu Fount o microcontrolador 8051 o mais fácil e Atmel surgiu com microcontroladores com tantas funções embutidas .... mas ainda as pessoas estão mais preferivelmente usando o AVR ... minha mão iria subir com o 8051 família (se for encontrado confortável) else do AVR ...
Eu amo AVR. seu fácil de programa e os recursos disponíveis. há poucos comunidade como arduino trabalhos com ele.
Alguns mais dicussion sobre a superioridade da AVR, por outro estouro de pilha: http://embeddedgurus.com/stack-overflow/2009/04 / pic-stack-transbordo /
A popularidade de 8 PICs bit me deixa perplexo. Sua arquitetura é horrível - a pilha de chamada limitada é apenas a primeira coisa terrível. Jogue no necessidade de paginação e bancários juntamente com o vetor de interrupção única e você tem um pesadelo de um modelo de programação. Seria uma coisa Se esta era a norma para 8 dispositivos bit - mas não é. o AVR arquitetura sopra o PIC distância, enquanto o HC05 / HC08 também são ruas à frente da PIC. Dada a escolha que eu acho que eu mesmo tomar uma 8051 sobre o PIC. Eu não vejo quaisquer vantagens de custo, embalagem vantagens (Atmel acaba de lançar um SOT23-6 AVR que é essencialmente conjunto de instruções compatíveis com os seus maiores dispositivos) ou periférico conjunto de vantagens. Em suma, eu não entendo! Aliás, esta não é uma indiciamento de Microchip - eles são uma grande empresa e eu realmente como um muitos de seus outros produtos, o seu web site, suporte técnico e assim por diante (Talvez seja por isso que o PIC é tão amplamente utilizado?)
Eu comecei em um Motorola M68HC11, foi o suficiente simples. Eu acho que você vai ter sobre a mesma experiência com os controladores de 8Bit.