Auswahl eines Mikrocontrollers

Ich möchte mich von Arduino entfernen und einige Projekte mit funktionsreicheren Mikrocontrollern starten. Ich habe mir den PIC18F4550 wegen seines Funktionsumfangs angesehen, aber ich scheue mich vor den PIC-Produkten, hauptsächlich weil ich keinen Programmierer habe und das picKIT ein bisschen teuer ist (50 $ für picKIT II, ​​70 $ für picKIT III) . . Ich habe nicht so viel über AVR-Angebote recherchiert, aber ich denke, ich möchte es vielleicht tun. Hier ist, wonach ich suche:

  1. 32+ digitale E/A-Pins
  2. Programmierbar mit minimaler externer Hardware. Bonuspunkte, wenn ich den USB-Chip auf einem Arduino-Entwicklungsboard oder mein ftdi-USB-Kabel nutzen kann , um es billig zu programmieren.
  3. Eingebauter USB. Dies ist einer der Gründe, warum ich mich wirklich für den 18F4550 entschieden habe. Gibt es einen vergleichbaren AVR-Chip mit integrierten USB-Funktionen?
  4. Gute Online-Ressourcen - Ich würde gerne die direkte Montage lernen, und es wäre gut, wenn es online gute Ressourcen zum Erlernen der Montage für meine Plattform gäbe, ohne ein 500-seitiges Datenblatt lesen zu müssen.
  5. Durchsteckmontage.
  6. Minimaler externer Schaltkreis, um in Betrieb zu gehen. Ein interner Oszillator wäre cool für schnelles Prototyping, aber ich habe kein Problem damit, einen Kristall hineinzuwerfen, wenn es sein muss.

Hat jemand eine Empfehlung für die eine oder andere Weise?

Wenn Sie mit leistungsstärkeren Mikrocontrollern beginnen möchten, ist ein picKIT nur ein kleiner Bruchteil Ihrer Investition. Außerdem ist der PIC18 sehr vergleichbar mit dem ATmega auf dem Arduino. Wie viel mehr Leistung willst du? Schließlich schränkt Nr. 5 – Durchgangslochmontage – Ihre Möglichkeiten stark ein. Ich verstehe, dass Sie vielleicht Breadboarding mögen oder sich mit feinem Löten unwohl fühlen, aber leistungsstarke Mikros sind oberflächenmontiert und es ist schwer, das zu umgehen.
Vielleicht ist meine Frage irreführend. Ich bin mit der Rechenleistung des Arduino einverstanden, aber einige Projekte, an die ich denke, benötigen mehr E/A, Peripheriegeräte, Programmspeicher usw. aber wirklich nur die breitesten Stellplätze.
Das macht mehr Sinn. Den Text bearbeitet, um dies widerzuspiegeln. Außerdem sollten Sie die Diatribe/das Mantra unter electronic.stackexchange.com/q/16868/857 über die Bedeutung von Datenblättern lesen; Das Lesen des Datenblatts ist obligatorisch, wenn Sie sich ernsthaft mit Elektrotechnik beschäftigen.
Ich bin nicht unbedingt gegen Datenblätter, es fällt mir nur schwer, daraus als primäre Quelle zu lernen. Es ist viel einfacher, wenn mir zuerst jemand die Funktionen und die grundlegende Verwendung erklärt, damit ich weiß, wonach ich im Datenblatt suche.

Antworten (6)

Obwohl der PIC18F4550 ein anständiger uC ist und es einige Beispiele dafür gibt, ihn für USB zu verwenden, ist er immer noch 8-Bit und wahrscheinlich in der gleichen "Liga" wie Ihr Arduino.

Wenn Sie etwas mehr Leistung wünschen, würde ich mir vielleicht den 16-Bit-PIC24 / dsPIC (viel leistungsstärker und immer noch in Durchgangsbohrung verfügbar) oder sogar den PIC32 ansehen (allerdings nur Oberflächenmontage, und Sie würden im Allgemeinen C zum Programmieren verwenden Es)

Ich dachte, das PicKit3 (ich nehme an, Sie beziehen sich darauf) war preislich für Programmierer nicht allzu schlecht, aber wenn Sie billiger wollen, könnten Sie sich für das PicKit2 entscheiden, das zwar nicht mehr offiziell unterstützt wird, aber immer noch mit 99% nutzbar ist Mikrochip-Sortiment. Es gibt auch viele andere anständige Programmierer für PICs, zum Beispiel die Angebote
von Embed Inc. Wenn Sie sich für die 16-Bit-3,3-V-Teile entscheiden, stelle ich mir vor, dass der 25-Dollar- LProg geeignet wäre.

Obwohl Online-Ressourcen und ein gutes zugehöriges Buch (z. B. Learning to Fly the PIC24 - beachten Sie, dass dies C-basiert ist) den Einstieg erleichtern, würde ich mich daran gewöhnen, die Datenblätter (und das Family Reference Manual im Fall des PIC24/dsPIC) gründlich zu lesen , es ist ein notwendiger Teil der Verwendung eines Mikrocontrollers und der einzige Weg (IMHO), um zu lernen, wie man sie vollständig verwendet, insbesondere die komplizierteren. Sogar das obige Buch (obwohl gut geschrieben) lässt viele Details auf niedrigerer Ebene aus.

Mit 25 US-Dollar ist der Microchip PIC Stick ziemlich günstig microchip.com/stellent/…
Ich habe auch eine von diesen ebay.com/itm/…
@kenny - sie sehen auch nach ziemlich guten Optionen aus. Besonders der zweite, der 3,3 V und 5 V von PIC10F bis PIC24 für ~ 21 US-Dollar inkl. P + P unterstützen soll. @ CMP Es lohnt sich, vor dem Kauf die Liste der unterstützten Geräte (mit einem beliebigen Programmierer) zu überprüfen, um festzustellen, ob die Chips, die Sie verwenden möchten, enthalten sind. Ich habe mich einmal mit einem Wellon-Programmierer verbrannt, weil ich nicht sorgfältig geprüft habe (> 10.000 unterstützte Geräte, leider 95% davon weit über 5 Jahre alt und keine Firmware-Upgrades mehr ...)
Ja, es gibt einige Geräteeinschränkungen bei diesem Programmiergerät, es ist mit dem PicKit2 „kompatibel“.
@kenny - Ich habe das gesehen, aber es sah irgendwie skizzenhaft aus. Wie ist die Qualität? Es sieht aus wie genau das, was ich brauchen würde, aber wenn ich eines kaufe und es kaputt geht, hätte ich genauso gut das Pickit 2 kaufen können.
Das Design ist etwas billig, aber gut verarbeitet. Das USB-Kabel ist kurz, also brauchen Sie wahrscheinlich einen Extender. Anstelle eines Gehäuses hat es die gelbe 'Schrumpffolie'.

Ich persönlich schwöre auf die PIC-Chips.

Ich beschimpfe sie auch oft.

Ja, Sie erhalten viele IO-Pins. Ja, Sie erhalten einen internen Oszillator. Ja, Sie erhalten integrierten USB, CAN, SPI, I²C, ADC, DAC (bei einigen dsPICs), die Küchenspüle und sogar den Mond auf dem Stick.

Leider ist der Online-Support bestenfalls lückenhaft. Es steht eine recht umfangreiche Anwendungsbibliothek zum Download bereit, deren Zusammenstellung jedoch zu wünschen übrig lässt.

Sie sagen, der PIC-Programmierer ist ein bisschen teuer? Es muss nicht sein. Ich benutze einen billigen Klon von ebay. Es hat nicht den ganzen Schnickschnack (kein Debugging), aber es funktioniert gut für mich und alle wichtigen Programmiersoftware funktioniert damit. Die Hardware ist Open Source - Sie können die Schaltpläne und die Firmware von Microchip herunterladen, wenn Sie möchten. Sie können auch die Spezifikationen zur Durchführung der Programmierung herunterladen, wenn Sie Ihren eigenen Programmierer erstellen möchten - es ist nur seriell, daher sollten Sie (abgesehen von +12 V Vpp) in der Lage sein, einen Programmierer mit einem Arduino zu erstellen.

Was andere betrifft ... Ich weiß, dass die neuen Arduino UNO-Boards den FDTI-Chip durch einen Atmel MEGA8U2-Chip mit integriertem USB ersetzt haben. Ich bin mir nicht sicher, ob dies als PDIP verfügbar ist oder nicht.

1 & 5: Es gibt viele Atmel AVR-Modelle, die in einem 40-poligen DIP-Gehäuse geliefert werden, das diese Anforderungen erfüllt. Ein 40-Pin-Modell, das ich jetzt verwende, hat 4 8-Bit-IO-Ports == 32 IO (wenn keine anderen Peripheriegeräte verwendet werden)

2: Das Arduino kann diese Programmiermethode mit seinem Bootloader erreichen - der sich immer im Flash-Speicher des Chips befindet. Das Programmieren über UART (was das Arduino zum Programmieren tut) kann ein wenig Arbeit erfordern. Hier sind einige weitere Informationen über den Bootloader, wenn Sie neugierig sind. Die gute Nachricht ist, dass Sie nichts davon benötigen, wenn Sie einen ICSP-Programmierer verwenden, der keine externen Schaltkreise benötigt.

3: Schauen Sie hier und verwenden Sie Strg+F in Ihrem Browser, um Teile mit USB-Unterstützung zu finden.

4: Sowohl PIC als auch AVR haben eine Menge Ressourcen zum Lernen. Versuchen Sie jedoch nicht, das Lesen eines Datenblatts zu vermeiden - dies ist absolut erforderlich, und ich weiß nicht, wie Sie ohne es auskommen können, wenn Sie Firmware (Assembly oder C) auf einer beliebigen Plattform schreiben möchten.

5: Siehe erster Punkt.

6: Interne Oszillatoren gehören heutzutage fast zum Standard. Konsultieren Sie erneut die Produktbeschreibung oder das Datenblatt, um es sicher zu wissen. Beispiel: Wenn Sie auf der Website von Atmel auf einen zufälligen Teil klicken und durch die Parameter scrollen, wird ein Feld angezeigt, das Ihnen mitteilt, dass Calibrated RC Oscillator: yes<- dies bedeutet, dass es einen internen Oszillator gibt.

Ich würde mir keine großen Gedanken darüber machen, für welches (PIC oder AVR) Sie sich letztendlich entscheiden. In jedem Fall müssen Sie jedoch höchstwahrscheinlich einen ICSP-Programmierer kaufen.

Ich fürchte, wenn Sie sowohl auf USB als auch auf Durchgangsloch bestehen, bleiben Sie wahrscheinlich entweder bei AVR oder PIC hängen. Die meisten "Großen" verwenden QFP oder QFN für Chips mit USB und genügend Pins, um 32 GPIOs zu haben. Die Verwendung eines QFP-Breakout-Boards ist jedoch nicht so schwierig. Wenn Sie bereit sind, das zu versuchen, kann ich Ihnen hier ein paar vorschlagen:

1) MSP430. Eine nette Low-Power-16-Bit-Architektur, vernünftiger Befehlssatz, ziemlich einfache (IMO) Peripheriegeräte. Als risikofreies Intro ist ein Kit für 4,30 USD erhältlich (einschließlich Programmierer und Debugger). DIP-Teile wie auf dem Launchpad sind jedoch ziemlich begrenzt, und Sie müssten zu QFP gehen, wenn Sie etwas für Ihre Anforderungen wollen

2) Ein Cortex-M3- oder Cortex-M0-ARM-Chip. Es gibt mehrere Angebote auf dem Markt, zum Beispiel die LPC-Serie von NXP (siehe LPCXpresso , um die 30 US-Dollar) oder die STM32 von ST (STM32VLDISCOVERY, um die 12 US-Dollar). Diese Schönheiten sind 32-Bit, haben also viel Power, sind aber etwas komplexer als die 8-Bitter.

Warum bleiben Sie nicht bei Arduino, denn Arduino Due wird Atmel SAM3U ARM-basierte MCU verwenden?

Wenn Sie Assembler lernen möchten, empfehle ich Ihnen, sich einen guten Programmierer zu besorgen, der Debugging unterstützt. Diese sind im Allgemeinen teurer ($50-100), aber wenn Sie einen Fehler haben, den Sie einfach nicht herausfinden können, gibt es nichts Besseres, als zu sehen, was im Mikrocontroller vor sich geht. Da Sie aus der Arduino-Welt kommen, sind Sie wahrscheinlich sehr an das Debuggen mit Datenausgabe über eine serielle Schnittstelle gewöhnt, aber besonders wenn Sie die Assemblersprache lernen möchten, nur um eine serielle Schnittstelle ohne Debugger zu aktivieren, ist "Codieren im Dunkeln" erforderlich ".

Der ATXMega hat mir richtig gut gefallen. Viele der Atmel-Chips können in C mit dem Atmel Software Framework programmiert werden, das großartige Beispiele enthält und die Verwendung von Zeigern hervorragend versteckt (was der große Vorteil bei der Arduino-Programmierung ist). Es erfüllt alle Ihre oben genannten Anforderungen, einschließlich einiger mit USB und insbesondere die E/A mit 34-78 in 44- bis 100-Pin-Gehäusen, außer dass es nur als Oberflächenmontage erhältlich ist, aber ich habe es von Hand mit einem Lötkolben, etwas Lötdocht und einer 7-fachen Vergrößerung gelötet, um zu überprüfen, ob es keine gab eventuelle Lötbrücken.

Ich mag Atmel Studio wirklich, ich bin ein wenig voreingenommen, weil mein Job Visual Studio verwendet und Atmel Studio darauf basiert. Das Debuggen in Atmel Studio ist wirklich nett, da alle Konfigurationsregister und ihre Zustände deutlich sichtbar sind. Ich konnte kundenspezifisch hergestellte PCBs nur mit einer main()-Methode und dem Debugger testen.