Ich arbeite seit über drei Jahren mit PIC16 und PIC18 und möchte AVR auch kennenlernen. Ich habe kein konkretes Projekt im Sinn, möchte aber die verschiedenen Architekturen ausprobieren. Ich möchte einen Kompatibilitätsbericht zu PIC und AVR erhalten.
uCs Software
Ich kenne Assembly und C für PIC16 und PIC18. Wie unterscheiden sich die Assembly- und C-Varianten für AVR-Mikrocontroller von den PIC-Varianten? Gibt es viele Unterschiede?
PC-Software
Welche Software benötige ich, um meine Programme für AVR-Chips zu kompilieren und zusammenzustellen? Ist es kostenlos und wo kann ich es herunterladen?
Programmierhardware
Ich habe VOTIs Wisp648 zum Programmieren von PICs verwendet , aber dieses Board kann keine AVRs programmieren. Muss ich einen Programmierer kaufen oder gibt es im Internet Schaltungen, die ich selbst bauen kann?
uC's Hardware
Für PICs habe ich den PIC18F4620 viel benutzt. Ich suche einen AVR mit ähnlichen Funktionen. Die Funktionen, die ich mag, sind:
- Interner Oszillator
- Timer
- 5V und 3.3V Version
- ADC
- MSSP mit I2C- und SPI-Unterstützung
- (E) USART
- PWM
- Viele I / O-Pins
- > = 32kB Programmspeicher,> = 2kB RAM
- DIP-Paket
Welcher AVR-Chip hätte die gleichen Eigenschaften? Das Paket ist ein Deal Breaker, ich möchte wirklich DIP, PDIP oder SPDIP. Was wäre ein AVR mit vergleichbaren Funktionen?
SPI- und I2C-Varianten
Mir wurde mitgeteilt, dass Microchip eigene Varianten für das SPI- und I2C-Protokoll hat. Ich verwende oft SPI- und I2C-Slave-Geräte von Microchip in Kombination mit einem PIC. Kann ich diese Chips (23K256, RTC, ENC28J60, ...) in Kombination mit einem AVR verwenden? Wäre es darüber hinaus möglich, einen AVR und einen PIC-Chip über I2C oder SPI zu verbinden?
Antworten:
Software von uC
Die PIC- und AVR-Befehlssätze sind ähnlich, aber ich würde nicht damit beginnen, einen AVR in der Baugruppe zu programmieren. Programmieren Sie in C mit Atmel Studio. Es wird mit der AVR-Version von gcc geliefert und verfügt über einen wirklich guten Disassembler, der Ihnen die von Ihnen geschriebene C-Zeile und die daraus resultierenden Montageanleitungen zeigt. Sehr praktisch. Ich würde auch WinAVR herunterladen .
PC-Software
Verwenden Sie Atmel Studio . Kümmern Sie sich nicht um Eclipse, Programmer's Notepad oder andere zufällige IDEs. Atmel Studio basiert auf Visual Studio, verfügt über alle Arten von Plug-Ins von Atmel und hat einen guten eingebauten Simulator.
Programmierhardware
Es gibt viele billige AVR-Programmierer, wie den Bus Pirate, die sich jedoch eine Atmel ICSP zulegen . Wenn Sie mehr als ein AVR-Projekt durchführen möchten, lohnt sich der Mehraufwand. Es verwendet USB und kann von Atmel Studio aus gesteuert werden.
uC's Hardware
Es gibt ein Auswahlwerkzeug , aber im Allgemeinen, Low - End - AtMega typische Hardware:
Wenn Sie zu leistungsstärkeren Chips wechseln, erhalten Sie mehr Timer und PWMs. Wie viel Flash-Speicher und SRAM Sie zur Verfügung haben, hängt vom jeweiligen Chip ab. Die meisten der AtMega-Teile sind in PDIP erhältlich, wobei die wirklich hohe Pinanzahl QFP ist.
SPI- und I2C-Varianten
Es ist möglich, MCP I2C- (TWI for AVR) und SPI-Geräte mit AVR-uCs zu verwenden. Sie müssen die Abschnitte zu SPI und TWI des AVR-Datenblattes unbedingt sorgfältig lesen. Überspringen Sie keine Zeile. Es gibt mehrere Steuerregister für Datenreihenfolge, Taktpolarität usw. für jede Schnittstelle. Es ist alles in den Datenblättern aufgeführt und sehr gut lesbar. Es wäre nicht schwer, einen AVR und einen PIC zu verbinden. Sie müssen nur mit dem SPI- oder TWI-Modus spielen, bis Sie die Kommunikation hergestellt haben.
quelle
C wird mit einigen kleinen Compiler-Unterschieden gleich sein. Die Montage wird ganz anders sein, da es sich um eine andere Architektur handelt. Ich empfehle, mit C fortzufahren und vielleicht genügend Baugruppen aufzunehmen, um einige wichtige Routinen einarbeiten zu können.
Für die IDE und den Programmierer hat Atmel ähnliche Angebote wie Microchip. Schauen Sie sich einfach die Website an, laden Sie die kostenlose IDE herunter und wählen Sie einen Programmierer aus.
Ein ähnlicher Chip wie ein 18F könnte so etwas wie der ATMega328 sein (der in Arduinos verwendet wird). Ich glaube, sie haben DIP-Paketversionen.
Ja, I2C und SPI sollten genauso funktionieren. Die Verknüpfung von AVR und PIC sollte kein Problem sein.
Haftungsausschluss - Ich habe lange Zeit keinen AVR verwendet. Heutzutage verwende ich hauptsächlich PICs und ARMs, aber ich hatte in der Vergangenheit noch nie ein Problem mit der Verbindung von SPI / I2C, da ich häufig SPI für die Verbindung zwischen z. B. PIC / Atmel EEPROM / Cortex-M3 / FPGA verwendet habe. SPI ist ein sehr einfaches Protokoll, das so ziemlich jedes moderne Mikro in Hardware beherrschen sollte.
I2C ist etwas komplexer. Ich kann mich nicht an die Geschichte der Lizenzierung / Benennung (z. B. 2-Draht, I2C, SMBus) erinnern, aber die meisten Peripheriegeräte sind meines Wissens auf der Basisebene kompatibel. Lesen Sie die Wiki-Seiten für weitere Details.
quelle
Ich arbeite gleich gut mit PIC und AVR (und auch mit anderen).
Ich mag AVRs hauptsächlich wegen AVR-libc . Es ist eine anständige eingebettete Bibliothek, die Open Source ist und recht gut dokumentiert ist ( UNGLEICH Microchips Plib, aber Plib hat Full Source, was ich wirklich schätze). AVRs verwenden normale alte gcc und gdb, was bedeutet, dass mir keine idiotischen IDEs im Weg stehen. Dieselben Tools funktionieren unter Windows, OSX und Linux, und ich benötige keine 600-MB-IDE mit Java und Netbeans oder Eclipse, um meinen Quellbaum mit ihrem eigenen Müll zu überfluten oder zu verschmutzen.
Das Programmieren von AVRs erfolgt normalerweise über ISP oder JTAG (es gab kürzlich eine Frage dazu ), und vom Standpunkt der Programmierung aus unterscheidet es sich nicht wesentlich von jedem anderen Mikro.
Aus persönlicher Sicht mag ich die Datenblätter und Teilenummern von Microchip nicht mehr. Ich habe mich mit Microchip für Embedded-Designs entschieden und habe sie lange geliebt, aber wenn ich heutzutage nach einem Mikro suche, beginne ich meistens mit Atmel, auch wenn sie nicht ohne Mängel sind. (SAM-BA ist Müll für ihre SAM-Teile, und ich hatte auch einige Probleme mit der Werksunterstützung.)
Was die Verwendung angeht ... versuchen Sie beides, es ist wie der Unterschied zwischen Cola und Pepsi. Sie sind sehr, sehr ähnlich und die Wahl hängt normalerweise vom Preis und den Werkzeugen ab, die Sie bevorzugen.
quelle