Trabalho com PIC16 e PIC18s há mais de três anos e gostaria de conhecer o AVR também. Não tenho nenhum projeto específico em mente, mas gostaria de experimentar as diferentes arquiteturas. Eu gostaria de obter um relatório de compatibilidade no PIC e AVR.
Software da uC
Estou familiarizado com Assembly e C para PIC16 e PIC18. Como as variantes Assembly e C para microcontroladores AVR variam das variantes PIC? Existem muitas diferenças?
Software do PC
Que software eu precisaria para compilar e montar meus programas para chips AVR? É gratuito e onde posso baixá-lo?
Hardware de programação
Eu usei o Wisp648 da VOTI para programar PICs, mas essa placa não pode programar AVRs. Preciso comprar um programador ou existem circuitos disponíveis na Web que eu possa construir?
Hardware do uC
Para PICs, usei muito o PIC18F4620 . Estou procurando um AVR com recursos semelhantes. Os recursos que eu gosto são:
- Oscilador Interno
- Temporizadores
- Versão 5V e 3.3V
- ADC
- MSSP com suporte I2C e SPI
- (E) USART
- PWM
- Muitos pinos de E / S
- > = 32kB de memória de programa,> = 2kB de RAM
- Pacote DIP
Qual chip AVR teria os mesmos recursos? O pacote é um disjuntor, eu realmente quero DIP, PDIP ou SPDIP. O que seria um AVR com recursos comparáveis?
Variantes SPI e I2C
Foi-me dito que o Microchip possui suas próprias variantes no protocolo SPI e I2C. Costumo usar dispositivos escravos SPI e I2C do microchip em combinação com um PIC. Eu seria capaz de usar esses chips (23K256, RTC, ENC28J60, ...), em combinação com um AVR? Além disso, seria possível vincular um chip AVR e PIC usando I2C ou SPI?
Respostas:
software da uC
Os conjuntos de instruções PIC e AVR são semelhantes, mas eu não começaria a programar um AVR em assembly. Programa em C, com Atmel Studio. Ele é fornecido com a versão AVR do gcc e possui um bom desmontador que mostra a linha de C que você escreveu e, por baixo, as instruções de montagem resultantes, muito úteis. Eu também baixaria o WinAVR .
Software para PC
Use o Atmel Studio . Não se preocupe com o Eclipse, o Bloco de Notas do Programador ou qualquer outro IDE aleatório que as pessoas usem. O Atmel Studio é baseado no Visual Studio, possui todos os tipos de plug-ins disponíveis no Atmel e possui um bom simulador.
Hardware de programação
Existem muitos programadores baratos de AVR, como o Bus Pirate, mas obtenha um ICSP da Atmel . Vale totalmente a pena a despesa extra se você pretende fazer mais de um projeto AVR. Ele usa USB e é controlável a partir do Atmel Studio.
hardware do uC
Existe uma ferramenta seletora , mas, em geral, o hardware típico do AtMega de baixo custo é:
Ir para chips de melhor desempenho comprará mais temporizadores e PWMs. A quantidade de memória flash e SRAM disponíveis depende do chip específico. A maioria das peças de peças da AtMega está disponível no PDIP, com o número realmente alto de pinos sendo QFP.
Variantes SPI e I2C
É possível usar dispositivos MCP I2C (TWI for AVR) e SPI com uRs AVR. Você realmente precisa ler as seções SPI e TWI da folha de dados do AVR com atenção, não pule uma linha. Existem vários registros de controle para ordem de dados, polaridade do relógio, etc. para cada interface. Está tudo disposto nas folhas de dados e é muito legível. Não seria difícil vincular um AVR e PIC. Você precisaria apenas jogar com os modos SPI ou TWI até estabelecer a comunicação.
fonte
C será o mesmo com algumas pequenas diferenças no compilador. A montagem será bem diferente, pois é uma arquitetura diferente. Aconselho ir com C, e talvez pegar montagem suficiente para poder alinhar algumas rotinas importantes.
Para o IDE e o programador, a Atmel oferece ofertas semelhantes ao Microchip, basta dar uma olhada no site, baixar o IDE gratuito e escolher um programador.
Um chip semelhante a um 18F pode ser algo como o ATMega328 (o usado no Arduinos). Acredito que eles tenham versões de pacotes DIP.
Sim, I2C e SPI devem funcionar da mesma maneira. Vincular um AVR e PIC não deve ser problema.
Isenção de responsabilidade - eu não uso um AVR há muito tempo. Atualmente, uso principalmente PICs e ARMs, mas nunca tive problemas ao conectar algo com o SPI / I2C no passado, depois de usar o SPI com frequência para conectar-se entre, por exemplo, PIC / Atmel EEPROM / Cortex-M3 / FPGA. O SPI é um protocolo muito básico do qual praticamente qualquer micro moderno deve ser capaz de hardware.
I2C é um pouco mais complexo. Não me lembro da história do licenciamento / nomeação (por exemplo, 2 fios, I2C, SMBus) no topo da minha cabeça, mas a maioria dos periféricos é compatível no nível básico, tanto quanto eu saiba. Leia as páginas do Wiki para obter mais detalhes.
fonte
Trabalho igualmente bem no PIC e no AVR (e outros também).
Eu gosto de AVRs principalmente por causa do AVR-libc . É uma biblioteca embutida decente, de código aberto e razoavelmente bem documentada ( UNLIKE plib da Microchip, mas plib tem fonte completo, o que eu realmente aprecio). Os AVRs usam gcc e gdb antigos e regulares, o que significa que nenhum IDE idiota fica no meu caminho. As mesmas ferramentas funcionam no Windows, OSX e Linux, e eu não preciso de um IDE de 600 MB + com Java e Netbeans ou Eclipse para tropeçar ou poluir minha árvore de origem com seu próprio lixo.
A programação de AVRs geralmente é feita via ISP ou JTAG (houve uma pergunta recente sobre isso) e, do ponto de vista da programação, não é realmente muito diferente de qualquer outro micro.
De uma perspectiva pessoal, passei a não gostar das folhas de dados e da numeração de peças do Microchip. Eu cortei meus dentes no design incorporado com o Microchip e os adorei por muito, muito tempo, mas quando procuro um micro hoje em dia, começo a usar o Atmel, embora eles também não faltem. (O SAM-BA é lixo para as peças do SAM, e também tive alguns problemas com o suporte da fábrica.)
Quanto a usar ... tente os dois, é como a diferença entre Coca-Cola e Pepsi. Eles são muito, muito parecidos e a escolha geralmente se resume ao preço e às ferramentas que você prefere usar.
fonte