Ich arbeite jetzt seit über drei Jahren mit PIC16 und PIC18s und möchte auch AVR kennenlernen. Ich habe kein konkretes Projekt im Sinn, würde aber gerne mit den verschiedenen Architekturen herumprobieren. Ich möchte einen Kompatibilitätsbericht zu PIC und AVR erhalten.
Die Software von uC ist
mir vertraut mit 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 zum Kompilieren und Zusammenstellen meiner Programme für AVR-Chips? Ist es kostenlos und wo kann ich es herunterladen?
Programmierhardware
Ich habe Wisp648 von VOTI 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?
Die Hardware von uC
Für PICs habe ich häufig den PIC18F4620 verwendet . Ich suche einen AVR mit ähnlichen Features. Die Funktionen, die ich mag, sind:
Welcher AVR-Chip hätte die gleichen Funktionen? Das Paket ist ein Deal Breaker, ich möchte wirklich DIP, PDIP oder SPDIP. Was wäre ein AVR mit vergleichbaren Features?
SPI- und I2C-Varianten
Mir wurde gesagt, dass Microchip seine eigenen Varianten des SPI- und I2C-Protokolls 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?
uCs Software
Die PIC- und AVR-Befehlssätze sind ähnlich, aber ich würde nicht damit beginnen, einen AVR in Assembler zu programmieren. Programm in C, mit Atmel Studio. Es wird mit der AVR-Version von gcc geliefert und hat einen wirklich guten Disassembler, der Ihnen die Zeile von C zeigt, die Sie geschrieben haben, und darunter die resultierenden Assembler-Anweisungen, 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, die Leute verwenden. Atmel Studio basiert auf Visual Studio, verfügt über alle Arten von Plug-Ins von Atmel und hat einen guten Simulator eingebaut.
Programmierhardware
Es gibt viele billige AVR-Programmierer, wie z. B. den Bus Pirate, aber besorgen Sie sich einen Atmel ICSP . Es ist die zusätzlichen Kosten absolut wert, wenn Sie beabsichtigen, mehr als ein AVR-Projekt durchzuführen. Es verwendet USB und ist von Atmel Studio aus steuerbar.
uCs Hardware
Es gibt ein Auswahlwerkzeug, aber im Allgemeinen ist die typische Low-End-AtMega-Hardware :
Internal Oscillator (8 MHz)
3 Timers
2.7-5.5V Supply range
8-channel multiplexed ADC
I2C and SPI support
USART
2 PWMs that work in conjunction with the 8 bit timers
Wenn Sie zu leistungsstärkeren Chips wechseln, erhalten Sie mehr Timer und PWMs. Wie viel Flash-Speicher und SRAM Ihnen zur Verfügung stehen, hängt vom jeweiligen Chip ab. Die meisten AtMega-Teileteile sind in PDIP verfügbar, wobei QFP die Dinge mit der wirklich hohen Pinzahl sind.
SPI- und I2C-Varianten
Es ist möglich, MCP I2C (TWI für AVR) und SPI-Geräte mit AVR uCs zu verwenden. Sie müssen die SPI- und TWI-Abschnitte des AVR-Datenblatts wirklich sorgfältig lesen, überspringen Sie keine Zeile. Für jede Schnittstelle gibt es mehrere Steuerregister für Datenreihenfolge, Taktpolarität usw. Es ist alles in den Datenblättern dargelegt und sehr gut lesbar. Es wäre nicht schwer, einen AVR und PIC zu verbinden. Sie müssten nur mit den SPI- oder TWI-Modi spielen, bis Sie die Kommunikation hergestellt haben.
Ich arbeite gleich gut mit PIC und AVR (und auch mit anderen).
Ich mag AVRs vor allem wegen AVR-libc . Es ist eine anständige eingebettete Bibliothek, die Open Source und einigermaßen gut dokumentiert ist ( im Gegensatz zu Microchips plib, aber plib hat den vollständigen Quellcode, was ich wirklich schätze). AVRs verwenden normales altes gcc und gdb, was bedeutet, dass mir keine idiotischen IDEs im Weg stehen. Die gleichen Tools funktionieren unter Windows, OSX und Linux, und ich brauche keine 600 MB+ IDE mit Java und Netbeans oder Eclipse, um darüber zu stolpern oder meinen Quellbaum mit ihrem eigenen Müll zu verschmutzen.
Die Programmierung von AVRs erfolgt normalerweise über ISP oder JTAG (dazu gab es kürzlich eine Frage ), und vom Programmierstandpunkt aus unterscheidet es sich wirklich nicht wesentlich von jedem anderen Mikro.
Aus persönlicher Sicht mag ich die Datenblätter und die Teilenummerierung von Microchip nicht mehr. Ich habe mit Microchip meine Erfahrungen mit eingebettetem Design gemacht und ich habe sie für eine lange, lange Zeit geliebt, aber wenn ich heutzutage nach einem Mikro suche, beginne ich eher mit Atmel, obwohl sie auch nicht ohne Fehler sind. (SAM-BA ist Müll für ihre SAM-Teile, und ich hatte auch einige Probleme mit ihrer Werksunterstützung.)
Was Sie verwenden sollten ... probieren Sie beides aus, es ist wie der Unterschied zwischen Cola und Pepsi. Sie sind sich sehr, sehr ähnlich und die Wahl hängt normalerweise vom Preis und den Tools ab, die Sie verwenden möchten.
C wird dasselbe sein mit einigen kleinen Compiler-Unterschieden. Die Montage wird ganz anders sein, da es sich um eine andere Architektur handelt. Ich empfehle, mit C zu arbeiten und vielleicht genug Assembler zu sammeln, um einige wichtige Routinen inline zu integrieren.
Für die IDE und den Programmierer hat Atmel ähnliche Angebote wie Microchip, schauen Sie sich einfach ihre 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 verwendete). Ich glaube, sie haben DIP-Paketversionen.
Ja, I2C und SPI sollten genauso funktionieren. Die Verbindung von AVR und PIC sollte kein Problem sein.
Haftungsausschluss - Ich habe lange keinen AVR mehr benutzt. Heutzutage verwende ich hauptsächlich PICs und ARMs, aber ich hatte in der Vergangenheit nie Probleme, irgendetwas mit SPI/I2C zu verbinden, da ich häufig SPI verwendet habe, um z. B. PIC/Atmel EEPROM/Cortex-M3/FPGA zu verbinden. SPI ist ein sehr einfaches Protokoll, zu dem so ziemlich jedes moderne Mikro in der Hardware in der Lage sein sollte.
I2C ist etwas komplexer. Ich kann mich auf Anhieb nicht an die Geschichte der Lizenzierung/Namensgebung (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.
Benutzer17592
Olin Lathrop
Kaz
Jippie
Benutzer17592
Jippie
Benutzer17592
Klatsch
Benutzer17592
Chris Stratton