Je travaille avec PIC16 et PIC18 depuis plus de trois ans maintenant et j'aimerais également connaître AVR. Je n'ai pas de projet spécifique en tête, mais j'aimerais essayer avec les différentes architectures. J'aimerais obtenir un rapport de compatibilité sur PIC et AVR.
Logiciel uC
Je connais Assembly et C pour PIC16 et PIC18. En quoi les variantes Assembly et C des microcontrôleurs AVR diffèrent-elles des variantes PIC? Y a-t-il beaucoup de différences?
Logiciel PC
De quel logiciel aurais-je besoin pour compiler et assembler mes programmes pour puces AVR? Est-ce gratuit et où puis-je le télécharger?
Matériel de programmation
J'ai utilisé le Wisp648 de VOTI pour programmer les PIC, mais cette carte ne peut pas programmer les AVR. Dois-je acheter un programmeur ou existe-t-il des circuits disponibles sur le Web que je peux créer moi-même?
Matériel uC
Pour les PIC, j'ai beaucoup utilisé le PIC18F4620 . Je recherche un AVR avec des fonctionnalités similaires. Les fonctionnalités que j'aime sont:
- Oscillateur interne
- Minuteries
- Version 5V et 3,3V
- ADC
- MSSP avec prise en charge I2C et SPI
- (E) USART
- PWM
- Beaucoup de broches d'E / S
- > = 32 Ko de mémoire de programme,> = 2 Ko de RAM
- Forfait DIP
Quelle puce AVR aurait les mêmes fonctionnalités? Le package est un deal breaker, je veux vraiment DIP, PDIP ou SPDIP. Que serait un AVR avec des fonctionnalités comparables?
Variantes SPI et I2C
On m'a dit que Microchip a ses propres variantes sur le protocole SPI et I2C. J'utilise souvent des dispositifs esclaves SPI et I2C à partir de micropuces en combinaison avec un PIC. Serais-je capable d'utiliser ces puces (23K256, RTC, ENC28J60, ...), en combinaison avec un AVR? En plus de cela, serait-il possible de lier un AVR et une puce PIC en utilisant I2C ou SPI?
Réponses:
le logiciel d'uC
Les jeux d'instructions PIC et AVR sont similaires, mais je ne commencerais pas à programmer un AVR en assembleur. Programme en C, avec Atmel Studio. Il est livré avec la version AVR de gcc, et possède un très bon démonteur qui vous montre la ligne de C que vous avez écrite, et en dessous, les instructions d'assemblage résultantes, très pratiques. Je téléchargerais également WinAVR .
Logiciel PC
Utilisez Atmel Studio . Ne vous embêtez pas avec Eclipse, le bloc-notes du programmeur ou tout autre IDE aléatoire utilisé par les gens. Atmel Studio est basé sur Visual Studio, dispose de toutes sortes de plug-ins disponibles auprès d'Atmel et intègre un bon simulateur.
Matériel de programmation
Il y a beaucoup de programmeurs AVR bon marché, comme le Bus Pirate, mais obtenez un Atmel ICSP . Cela vaut vraiment la peine si vous avez l'intention de faire plus d'un projet AVR. Il utilise l'USB et est contrôlable depuis Atmel Studio.
matériel uC
Il existe un outil de sélection , mais en général, le matériel typique AtMega bas de gamme est:
Aller à des puces plus performantes vous permettra d'acheter plus de minuteries et de PWM. La quantité de mémoire flash et de mémoire SRAM dont vous disposez dépend de la puce concernée. La plupart des pièces AtMega sont disponibles en PDIP, le nombre de broches très élevé étant QFP.
Variantes SPI et I2C
Il est possible d'utiliser des appareils MCP I2C (TWI pour AVR) et SPI avec des AVC uC. Vous devez vraiment lire attentivement les sections SPI et TWI de la fiche technique AVR, ne sautez pas une ligne. Il existe plusieurs registres de contrôle pour l'ordre des données, la polarité d'horloge, etc. pour chaque interface. Tout est présenté dans les fiches techniques et est très lisible. Il ne serait pas difficile de lier un AVR et un PIC. Il vous suffirait de jouer avec les modes SPI ou TWI jusqu'à ce que vous établissiez la communication.
la source
C sera le même avec quelques petites différences de compilation. L'assemblage sera assez différent car c'est une architecture différente. Je conseille d'aller avec C, et peut-être de ramasser suffisamment d'assemblage pour pouvoir aligner certaines routines importantes.
Pour l'IDE et le programmeur, Atmel propose des offres similaires à Microchip, il suffit de jeter un œil à leur site Web, de télécharger l'IDE gratuit et de choisir un programmeur.
Une puce similaire à un 18F pourrait être quelque chose comme l'ATMega328 (celui utilisé dans Arduinos), je crois qu'ils ont des versions de package DIP.
Oui, I2C et SPI devraient fonctionner de la même manière. La liaison d'un AVR et d'un PIC ne devrait pas poser de problème.
Avis de non-responsabilité - Je n'ai pas utilisé d'AVR depuis très longtemps. J'utilise principalement des PIC et des ARM de nos jours, mais je n'ai jamais eu de problème de connexion avec SPI / I2C dans le passé, ayant fréquemment utilisé SPI pour se connecter, par exemple, PIC / Atmel EEPROM / Cortex-M3 / FPGA. SPI est un protocole très basique dont tout micro moderne devrait être capable en matériel.
I2C est un peu plus complexe. Je ne me souviens pas de l'histoire des licences / noms (par exemple, 2 fils, I2C, SMBus) du haut de ma tête, mais la plupart des périphériques sont compatibles au niveau de base pour autant que je sache. Lisez les pages Wiki pour plus de détails.
la source
Je travaille aussi bien sur PIC et AVR (et d'autres aussi).
J'aime les AVR en grande partie à cause de l' AVR-libc . Il est une bibliothèque intégrée décent qui est open source et assez bien documenté ( CONTRAIREMENT de plib de Microchip, mais plib n'ont la source complète, que j'apprécie vraiment). Les AVR utilisent régulièrement les anciens gcc et gdb, ce qui signifie qu'aucun IDE idiot ne me gêne. Les mêmes outils fonctionnent sur Windows, OSX et Linux, et je n'ai pas besoin d'un IDE de 600 Mo + avec Java et Netbeans ou Eclipse pour trébucher ou polluer mon arbre source avec leurs propres ordures.
La programmation des AVR se fait généralement via ISP ou JTAG (il y avait une question récente à ce sujet), et du point de vue de la programmation, ce n'est vraiment pas très différent de tout autre micro.
D'un point de vue personnel, j'ai grandi jusqu'à détester les fiches techniques et la numérotation des pièces de Microchip. J'ai coupé mes dents sur la conception intégrée avec Microchip et je les aimais depuis très longtemps, mais quand je cherche un micro ces jours-ci, j'ai tendance à commencer avec Atmel, bien qu'ils ne soient pas sans défauts aussi. (SAM-BA est une ordure pour leurs pièces SAM, et j'ai également eu des problèmes avec leur support d'usine.)
En ce qui concerne l'utilisation ... essayez les deux, c'est comme la différence entre Coke et Pepsi. Ils sont très, très similaires et le choix se résume généralement au prix et aux outils que vous préférez utiliser.
la source