Das ist wahrscheinlich eine Frage, die nur ich beantworten kann, aber ich fürchte, mir fehlt die Erfahrung. Es ist relativ schwieriger, Atmel-Teile zu beschaffen, wo ich lebe. So musste ich kürzlich den AT Mega 128L aus den USA bestellen, weil er in meinem Land nicht erhältlich war (die 5V-Version Mega 128 war aber da). Die PICs sind breiter verfügbar. Hier scheinen sie auch günstiger zu sein.
Bisher habe ich nur mit AVRs Erfahrungen gemacht. Nicht, weil ich sie bevorzuge oder so, aber ich war/bin ein Anfänger und all die Recherchen, die ich gemacht habe, haben mich zu der Annahme gebracht, dass es nicht wirklich wichtig ist, wann man anfängt. Also kaufte ich mir einen AVR ISP MKII und Mega 168 und lernte darauf zu programmieren.
Die andere Sache, die mich wirklich zu den PICs hinzieht, ist ein massiv billigerer Debugger. Das PICKit 3 scheint In-Circuit-Debugging zu haben und der AVR ISP MKII, den ich besitze, nicht. Ich nehme an, ich könnte den AVR Dragon kaufen, aber ich habe gehört, dass er seine eigenen Probleme hat. Und der AVR JTAG ICE MKII kostet 300 US-Dollar. Ich habe darüber nachgedacht, aber dann habe ich angefangen, über den Kauf eines PICKit 3 nachzudenken.
Schließlich habe ich das Gefühl, dass ich wissen sollte, wie man auf beiden Plattformen programmiert. Ich denke, das wäre sehr vorteilhaft, weil ich in der Lage wäre, einen Controller auszuwählen, der für den Job am besten geeignet ist.
Meine Hauptanforderungen sind im Moment wirklich nur das, was es haben sollte
Würden Sie eher zustimmen, dass ein PIC aufgrund der Verfügbarkeit, des Preises und des billigeren Debuggers die bessere Option wäre?
Ja, Sie müssen guten Code schreiben, der wartbar sein soll und es Ihnen leicht macht, Fehler zu erkennen, bevor Sie ihn ausführen. Das Debuggen ist jedoch immer noch Realität. In einem kleinen eingebetteten System können Sie Druckanweisungen nicht überall platzieren. Es gibt keinen Ort zum Drucken. Auf einem PC kann man den Code auch nicht in der gleichen Sprache testen, weil man es auf einem Mikrocontroller immer mit der Hardware zu tun hat, die auf dem PC nicht vorhanden ist.
Ein Simulator auf einem PC kann ein nützliches Werkzeug sein, aber je mehr Ihr Code mit externer Hardware interagieren muss, desto weniger nützlich wird er. Schließlich müssen Sie auf der realen Zielhardware testen und debuggen. Leute, die Ihnen sagen, dass sie das nicht tun oder dass Sie es nicht brauchen, haben offensichtlich nicht viele echte Mikrocontroller-Projekte durchgeführt.
Ich kenne die Atmel-Debugging-Umgebung nicht, kann sie also nicht mit der von PICs vergleichen. Beide Prozessorfamilien können machen, was Sie wollen. Wenn einer von ihnen in Ihrer Nähe eine bessere Verfügbarkeit hat oder Sie der Meinung sind, dass das Setup einen Kostenvorteil hat, entscheiden Sie sich dafür. Mit PICs werden Sie sicherlich nichts falsch machen, obwohl dies wahrscheinlich auf alle wichtigen Mikrocontroller-Linien zutrifft.
Diese Fragen können das blaue Touch-Papier zum Leuchten bringen, also werde ich versuchen, das PIC vs. Atmel-Zeug zu vermeiden :-)
Es ist leistungsmäßig so wenig drin (ungeachtet dessen, was manche sagen mögen), dass es irrelevant wird, es sei denn, Sie treiben die Dinge an ihre Grenzen (in diesem Fall gehen Sie normalerweise sowieso nur ein Level nach oben) oder benötigen z. B. ein bestimmtes Peripheriegerät nur von einem der beiden bereitgestellt.
Bei den von dir gestellten Anforderungen sollte das kein Problem sein.
Bleiben also nur noch Preis und Verfügbarkeit. Wenn PICs in Ihrer Nähe billiger und leichter verfügbar sind, dann würde ich sagen, dass es eine einfache Wahl ist. Ich denke, im Allgemeinen ist der Preis / die Verfügbarkeit / die Langlebigkeit von PICs sowieso etwas besser als bei Atmel (nur basierend auf dem, was ich höre, nicht auf persönlicher Erfahrung mit Atmel, daher kann ich mich ziemlich irren).
Natürlich spricht nichts dagegen, auf Dauer nicht beides zu nutzen. Es ist gut, Erfahrung mit verschiedenen Teilen zu haben, aber wägen Sie Kosten und Nutzen des Mehraufwands unbedingt ab.
Verlassen Sie sich nicht zu sehr auf den Debugger, es ist die Krücke, die zu Faulheit führt.
Ich habe alle Tools, die für das In-Circuit-Debugging mit AVR (AVR JTAG ICE MKII) erforderlich sind, und ich verwende es nie. Stattdessen mache ich Folgendes:
Die Vorteile, den Code wirklich zu verstehen und testbaren Code zu schreiben, können nicht hoch genug eingeschätzt oder durch einen Debugger ersetzt werden.
Tatsächlich verwende ich selten einen Debugger, selbst auf Plattformen, auf denen es sehr, sehr einfach ist (IDEA für Java oder Perl zum Beispiel).
Das Starten eines Debuggers kann Sie dazu verleiten, die Symptome von Problemen zu beheben, anstatt zu verstehen, was vor sich geht.
Sicher, Debugger haben ihren Nutzen, aber lassen Sie sich nicht davon leiten, es ist nicht so wichtig im Vergleich zu Ihren Fähigkeiten, der Verfügbarkeit von Teilen, der Software oder der Unterstützung durch die Community.
Davon abgesehen, wenn es andere Gründe für die Verwendung eines PIC gibt, machen Sie es, es ist wichtig, Erfahrung mit einer Vielzahl von Teilen zu sammeln.
Kenny
Majenko
Olin Lathrop
Saad
Kevin Vermeer
Markierungen
Saad
Kevin Vermeer